نرم افزارها در دنیای امروز به سرعت در حال گسترش و توسعه و پیشرفت هستند آنقدر سرعت توسعه و گسترش نرم افزارها زیاد است که محصولات به صورت هفتگی، روزانه و حتی ساعتی عرضه می شوند. سرعت بالا در انتشار نرم افزار ها امکان دسترسی به انواع نرم افزارها را آسان کرده است اما این سرعت بالا موجب شده است که نرم افزارهایی که وارد بازار می شوند از کیفیت لازم برخوردار نباشند. سرعتی که در بحث تولید و انتشار نرم افزارها وجود دارد احتمال آلوده شدن نرم افزارها را افزایش می دهد. البته باید گفت این موضوع سرعت بالا در تولید نرم افزارها و انتشار آنها شامل تمام شرکت های تولید کننده نرم افزار نمی شود چرا که شرکت هایی وجود دارند که نرم افزارهایی با کیفیت بسیار بالا تولید و روانه بازار می کنند و ممکن است بارها در تولید نرم افزار مورد نظر خود شکست بخورند ولی می خواهند نرم افزاری راهی بازار کنند که باکیفیت باشد و آلوده نباشد و یا دارای حفره های امنیتی و باگ نباشند از این رو شرکت های مطرح به دنبال نرم افزارهای با کیفیت می روند و از نظر آنها نرم افزاری می تواند در خط مقدم بازار قرار و دارای فروش بالا داشته باشد همان نرم افزار با کیفیت است. ولی به راستی از کجا باید بدانیم که یک نرم افزاری تولید شده است باکیفیت است؟ از کجا باید بدانیم که نرم افزاری که خریداری شده و یا خواهد شد دارای آلودگی و حفرهای امنیتی و … نیست؟ در پاسخ باید گفت که باید به دنبال معیارهای سنجش کیفیت نرم افزار برویم و با آن معیارها کیفیت یک نرم افزار را بسنجیم. الزام ها و نیازهای یک نرم افزار به دو دسته کاربردی و غیر کاربردی طبقه بندی می شود. الزامات کاربردی نرم افزار مشخص می کند که نرم افزار چه کاری قرار است انجام دهد و به عبارتی اینکه این نرم افزار کاربردش چیست؟ می خواهد کار محاسباتی انجام دهد. می خواهد اطلاعات پردازش کند و … . الزامات غیرکاربردی یک نرم افزار هم مشخص می کند چگونه سیستم باید کار کند. آیا اگر خراب شد و فاجعه ای رخ داد امکان بازیابی نرم افزار وجود دارد. آیا قابلیت حفظ حریم خصوصی در آن لحاظ شده است. آیا بحث امنیت در آن رعایت شده است؟ امکان پشتیبانی وجود دارد و …
بررسی کیفیت نرم افزار
برای بررسی کیفیت نرم افزار باید به چند نکته توجه کرد که آیا نرم افزار قابلیت اطمینان ، کارایی عملکرد، امنیت و قابلیت نگهداری در آن لحاظ شده است.
قابلیت اطمینان (Reliability):
یعنی اینکه می تواند در برابر شرایط غیرمنتظره و ریسک به این نرم افزار اطمینان کرد. نرم افزاری قابل اطمینان است که که دارای حداقل خرابی ها باشد. یکپارچگی در داده ها بالا و بدون خطا باشد چون این موارد به صورت مستقیم بر کاربر تاثیر می گذارد.
قابلیت راندمان عملکرد (Efficiency):
راندمان نرم افزار به چه میزان است. باید عملکرد و بهره وری نرم افزار بالا باشد تا رضایت مشتری را جذب کند باید دارای معماری خوبی در کدنویسی باشد تا کاربران بتوانند با آن به خوبی کار کرده و کارایی خود را بالا ببرند.
امینت (Security):
بحث امنیت هم که بسیار اهمیت دارد چرا که باید امنیت در آن به خوبی لحاظ شده باشد تا بتوانند در برابر حملات و خطرات از نرم افزار محافظت کند و اطلاعات و داده های اشخاص به رقت نرود. به هر حال مقدار و شدت آسیب پذیری های موجود در یک سیستم نرم افزاری نشانگر سطح امنیت آن است. این ضعف های برنامه نویسی و معماری به کار رفته در کدنویسی است که اغلب منجر به آسیب های نرم افزاری می شود .
قابلیت نگهداری (Maintainability):
قابلیت نگهداری هم در بحث سنجش کیفیت نرم افزار مهم است. چرا که باید نرم افزار تولید شده امکان سازگاری با قوانین نرم افزاری باشد و این موارد امکان می دهد تا بتوان نرم افزاری را نگهداری کرد.
بنابراین می توان نتیجه گرفت نرم افزاری با کیفیت ات که معیارهای گفته شده در آن لحاظ شود تا بتوان رضایت مشتری و بهره وری آنان را در استفاده از نرم افزار بالا برد.