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