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