یک مدل چرخه عمر نرم افزار یا توصیفی یا توصیفی چشم انداز از چگونگی توسعه نرم افزار است. پروژه های توسعه نرم افزار اغلب پروژه های بسیار بزرگی هستند. تعدادی از افراد برای مدت بسیار طولانی روی چنین پروژه ای کار می کنند و بنابراین کل فرآیند باید کنترل شود و روند باید نظارت شود. از این رو برخی از مدل های فرآیند نرم افزار برای توسعه محصول نرم افزاری با کیفیت استفاده می شود.
مراحل زیر مراحل معمول یک چرخه عمر توسعه نرم افزار است:
- شروع و برنامه ریزی پروژه
- امکان سنجی
- طراحی سیستم
- کد نویسی
- آزمایش کردن
- پیاده سازی
- نگهداری
در زیر چند مدل توسعه نرم افزار آورده شده است.
1. مدل آبشار: مدل آبشار را مدل زندگی کلاسیک یا مدل ترتیبی خطی نیز می نامند.
- تجزیه و تحلیل نیازمندی ها
- طرح
- کد نویسی
- آزمایش کردن
- نگهداری
اشکال اصلی مدل آبشار دشواری انطباق با تغییرات پس از انجام فرآیند است. قبل از رفتن به مرحله بعدی باید یک مرحله کامل شود.
وقتی از مدل آبشار استفاده می کنیم:
- الزامات بسیار شناخته شده است.
- زمانی که امکان تولید یک طرح پایدار وجود دارد.
2. نمونه اولیه: در مدل نمونه اولیه جمع آوری نیازهای اولیه انجام می شود. یک نمونه اولیه طراحی سریع آماده شده است. مشتری نمونه اولیه را ارزیابی می کند تا الزامات را اصلاح کند.
در مدل نمونه اولیه می توان الزامات را زودتر تنظیم کرد و مشتری مطمئن تر نتایج را خیلی سریع مشاهده کرد. الزامات را می توان واضح تر و کامل تر بیان کرد.
3. مدل مارپیچی: مدل مارپیچی در ابتدا توسط «بوهم» پیشنهاد شد. این یک مدل فرآیند نرم افزار تکاملی است که ماهیت تکرار شونده نمونه سازی را با جنبه های کنترل شده و سیستماتیک یک مدل ترتیبی خطی ترکیب می کند. این پتانسیل را برای توسعه سریع نسخه های افزایشی نرم افزار فراهم می کند.
مدل مارپیچ برای پروژه های بزرگ، گران قیمت و پیچیده در نظر گرفته شده است.
مدل مارپیچی بر شناسایی و حذف مشکلات پرخطر با طراحی دقیق فرآیند تمرکز دارد.
4. مدل تقویت تکرار شونده: این مدل دارای فازهای مشابه مدل آبشار است، اما با محدودیت هایی. معمولاً فازها به همان ترتیبی که در مدل آبشار وجود دارد اتفاق میافتند، اما ممکن است در چندین چرخه انجام شوند. در مدل تکاملی، تلاش مهندسی توسعه ابتدا برای ایجاد تعاریف صحیح و دقیق نیازمندی ها و دامنه سیستم، همانطور که توسط همه کاربران در سراسر سازمان توافق شده است، انجام می شود.
این کار از طریق استفاده از فرآیندهای تکراری برای تکامل سیستمی که مناسب ترین شرایط را دارد انجام می شود.