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