طراحی نرم‌افزار
طراحی نرم‌افزار فرایند حل مسئله و برنامه‌ریزی در راستای ساختن یک نرم‌افزار است. طراحی نرم‌افزار فرایندی است که توسط آن یک عامل، مشخصه ای از نرم‌افزار را طراحی می‌کند که هدف آن، به انجام رساندن اهداف از پیش تعیین شده با استفاده از مجموعه ای از اجزای اولیه و با توجه به محدودیت‌ها است. طراحی نرم‌افزار می‌تواند به عنوان "تمام فعالیت‌های مربوط به مفهوم سازی، طراحی، اجرا، راه اندازی و در نهایت اصلاح سیستم‌های پیچیده" یا "فعالیت‌های مشخص مورد نیاز و قبل از برنامه‌نویسی و … [در] یک پروسه مهندسی نرم‌افزار. طراحی نرم‌افزار معمولاً شامل حل مسئله و برنامه‌ریزی یک راه حل نرم‌افزاری است که شامل طراحی جزئی اجزا و طراحی الگوریتم و طراحی معماری سطح بالا می‌باشد."
کیفیت نرم‌افزار
اندازه گیری کیفیت نرم‌افزار در اصل بررسی میزان تطابق نرم‌افزار با این پنج ویژگی است .اندازه گیری کیفیت نرم‌افزار در اصل یک نمره ی کیفی یا کمی یا ترکیبی از هر دو و سپس یک سیتم وزن گیری که اولویت ها را مشخص می کند می باشد .این روش با تجزیه و تحلیل خطاهای برنامه نویسی که منجر به فاجعه می شود خاتمه می یابد .این خطاها در سطح سیستم تا ۹۰ درصد از مشکلات پروژه را نشان می دهند .در حالی که در سطح واحد ۱۰ درصد از مشکلات تولید را شامل می شود .در نتیجه کیفیت کد بدون بدون چهارچوب کل سیستم دارای ارزش محدود است .