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