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