برای پی بردن به اهمیت مهندسی نرم افزار و جواب این سوال، لازم است به آن در بستر تاریخ نگاه کنیم.
در سال ۱۹۶۸ برای اولین بار به صورت رسمی در کنفرانسی در اروپا ” بحران نرم افزار” مطرح شد. نمونه ای از این مشکلات که در حیطه نرم افزار بودند می شود به موارد زیر اشاره کرد:
عدم بهره گيری كامل از قدرت سخت افزار
اوایل و قبل از شکل گیری مهندسی نرم افزار، توانمندی های سخت افزار از نرم افزار به مراتب بیشتر بود و به طور کامل از مثلا cpu ، ram و … استفاده نمی شد.
ناتواني روشهای توليد نرم افزار در پاسخگویی به افزايش تقاضا
تقاضاهای زیادی ارائه می شد ولی نرم افزار ها نمی توانستند آن خواسته ها را برآورده کنند.
هزینه بالا
هزینه های زیاد تولید نرم افزار از طرف تولیدکننده و هم مصرف کننده به شکل فزاینده ای بالا رفته بود.
عدم تحویل به موقع پروژه
بسیاری از پروژه ها به دلیل حجم زیاد کدنویسی و دشواری های موجود دیر تحویل داده می شد و سفارش دهنده ضرر می کرد و بعضی مواقع اصلا تحویل داده نمی شد.
زمان بر شدن پروژه
به دلیل زمان بر شدن پروژه، نیازهای مشتری عوض می شد و ممکن بود تحویل نهایی با نیازهای مشتری در تناقض باشد و این منجر به نارضایتی مشتری می شد.
و نتیجتا محصول با کیفیت پایین و نامطمعن می شد.
نگهداری نرم افزارها بسیار دشوار بود.
علاوه بر این مشکلات نرم افزارها، خطا های زیادی داشتند.
تمام این مشکلات ، صحبت از یک کمبود اساسی در حوزه ی نرم افزار را بیان کرد و یک احساس نیاز به تغییر و رفع این کمبود ها را به وجود می آورد. یک فرایند برای حل این مشکلات نیاز بود. و در آخر ” مهندسی نرم افزار” برای حل این مشکلات ارائه شد و دارای ویژگی های زیر بود.
- تجديد نظر در روشهای برنامه ريزی و كنترل
- استفاده از تجربيات ديگر رشته های مهندسی
- تهيه و جايگزيی استانداردهاي مطمئن