معیارهای ارزیابی نرم افزار ( Software evaluation criteria )
هدف اصلی مهندسی نرم افزار ارائه سیستمی به کاربر است که علاوه بر فراهم آوردن قابلیتها و کارایی مورد نیاز، قابل نگهداری، قابل اطمینان و قابل پذیرش باشد.
چهار عامل اصلی وجود دارند که در تعیین کیفیت نرم افزار مهم هستند:
- قابلیت نگهداری (Maintainability): نرم افزار باید بتواند با تغییرات نیازهای کاربران تکامل و توسعه یابد.
- قابلیت اطمینان (Dependability): نرم افزار باید به درستی کار کند تا کاربر از نتایج تولید شده اطمینان کامل حاصل کند.
- کارایی (Efficiency): نرم افزار نباید منابع سیستم را هدر دهد و از آنها استفاده نادرست کند.
- قابلیت پذیرش (Acceptability): نرم افزار باید به وسیله کاربری که آنرا سفارش داده است، پذیرفته و تایید شود. یعنی قابل فهم، مفید و سازگار با سایر سیستم ها باشد.
سه عامل مشکلزا:
با توجه به موارد فوق، سه عامل مشکلزا نیز وجود دارد که مهندسین نرم افزار باید آنها را به درستی حل نمایند:
- ناهمگونی(Heterogeneity):
راه حل: استفاده از تکنیکهای مختلف توسعه نرم افزار برای ساخت نرم افزاری که بتواند بر روی سکو(Platform)ها و محیطهای اجرای مختلف بدون مشکل اجرا شود.
- تحویل(Delivery):
راه حل: استفاده از روشهای توسعه نرم افزار برای کم کردن زمان تحویل نرم افزار
- اعتماد(Trust):
راه حل: استفاده از تکنیکهایی که نشان میدهد نرم افزار ارائه شده، میتواند از طرف کاربران آن مورد اعتماد قرار گیرد.
ویژگی های نرم افزار مبتنی بر علم مهندسی:
- قابل نگهداری باشد.
- قابل اعتماد از دید کاربر باشد.
- کارا باشد.(استفاده مطلوب و بهینه از منابع سخت افزار، نرم افزار و محیط)
ارتباط ساده با کاربر(حداقل ورودی، حداکثر خروجی)
ضوابط ارزیابی نرم افزار:
ارزیابی نرم افزار از طریق عوامل داخلی و خارجی، با در نظر داشتن پارامترهای مختلف صورت می گیرد.
- عوامل خارجی:
عوامل خارجی(کاربران) کسانی هستند که از نرم افزار فقط استفاده میکنند و در فرآیند توسعه آن نقشی ندارند. معیارهای ارزیابی نرم افزار از نظر این افراد عبارتند از:
- صحت برنامه (Correctness)
- استحکام (Robustness) از دید کاربر
- قابلیت توسعه (Extendability)
- قابلیت استفاده مجدد (Reusability)
- سازگاری (Compatibility)
- قابلیت حمل (Portability)
- کارایی (Efficiency)
- عوامل داخلی:
عوامل داخلی به توسعهدهندگان نرم افزار اطلاق میشود. مهندسین نرم افزار از دیدگاه فنی به ارزیابی نرم افزار میپردازند و به دنبال ارائه پاسخ مشخص برای سوالات زیر هستند:
- Tools: از چه ابزارهایی برای توسعه نرم افزار استفاده شده است؟
- Methods: چه روش هایی به کار برده شده است؟
- Process: چطور پردازش انجام شده است؟
- Quality: مستندات کیفیت چیست؟ (تمرکز بر کیفیت)