نیازهای کیفیتی
هر روشی که برای برنامه نویسی به کار برود ، برنامه نهایی باید دارای تعدادی مشخصات پایه باشد. مشخصات زیر تعدادی از مهمترین آنها هستند.
هر روشی که برای برنامه نویسی به کار برود ، برنامه نهایی باید دارای تعدادی مشخصات پایه باشد. مشخصات زیر تعدادی از مهمترین آنها هستند.
- قابلیت اطمینان : این که چقدر نتایج یک برنامه درست باشند ، به صحت طراحی الگوریتم و به حداقل رساندن اشتباهات برنامه نویسی مربوط می شود. اشتباهات برنامه نویسی شامل اشکالاتی مثل اشکال در مدیریت منابع ( مثل سرریز شدن بافر یا وضعیت رقابتی ) و اشکالات منطقی ( مثل تقسیم بر صفر یا خطاهای off-by-one ) .
- پایایی : این که یک برنامه چگونه اشکالاتی ( نه باگ ها ) را که ممکن است پیش بیایند ، پیش بینی کرده است . این شامل حالتهایی مانند دریافت اطلاعات نادرست ، نامناسب یا غلط می شود ؛ همچنین کمبود منابعی مانند حافظه ، سرویسهای سیستم عامل یا اتصال به شبکه و سایر اشکالات مانند خطای کاربر یا اشکالات قطع برق نیز در این دسته قرار می گیرند.
- کاربرد پذیری : ارگونومی یک برنامه : آسانی استفاده از برنامه برای شخصی که می خواهد از آن برای کار در نظر گرفته شده استفاده کند یا گاهی برای کارهای پیش بینی نشده آن را به کار برد. این مورد می تواند به تنهایی و علی رغم تمام موارد دیگر باعث موفقیت یا شکست شود. طیف وسیعی از عناصر متنی ، تصویری و گاهی سخت افزاری وجود دارند که می توانند باعث ارتقای وضوح ، درک ، پیوستگی ، کامل بودن واسط کاربری برنامه شوند.
- قابلیت انتقال : طیف سخت افزارها و سیستم عاملهایی که کد منبع برنامه را بتوان روی آنها با مترجم یا مفسر اجرا کرد . این قابلیت بستگی به تفاوت در تسهیلاتی دارد که سیستمهای مختلف از نظر منابع سخت افزاری و سیستم عاملها برای برنامه نویسی ارائه می کنند. همچنین رفتار پیش بینی شده سخت افزارها و سیستم های عامل ، و در دسترس بودن مترجم ها ( و منابع کتابخانه ای ) اختصاصی در آن سیستمها برای کد منبع موجود نیز مهم است.
- نگهداشت پذیری : این که سازندگان و ارتقا دهندگان فعلی برنامه یا افراد دیگری در آینده بتوانند به راحتی ارتقاها یا تغییراتی در برنامه انجام دهند تا خطاها و حفره های امنیتی را رفع کنند یا بتوانند آن را برای محیط جدیدی تطبیق دهند. در این مورد تلاش مناسب اولیه [۱] در ایجاد برنامه است که نقش عمده ای بازی می کند . این خاصیت ممکن است تاثیر خیلی زیادی روی کاربر نهایی برنامه نداشته باشد ولی در بلند مدت برای سرنوشت یک برنامه خیلی مهم است.
- کارآیی / عملکرد :اندازه گیری منابع سیستمی مورد نیاز برای یک برنامه ( زمان پردازنده ، فضای حافظه ، وسایل کند مثل دیسکها ، پهنای باند شبکه و موارد دیگری مثل تعامل با کاربر ) : هر چقدر کمتر ، بهتر . این خاصیت همچنین شامل مدیریت صحیح منابع مانند پاک کردن فایلهای موقت و از بین بردن نشتی های حافظه نیز می شود.