چرخه عمر توسعه سیستم، که به عنوان (SDLC) (چرخه عمر توسعه نرم افزار) شناخته می شود، رویکرد استاندارد صنعت برای مدیریت مراحل توسعه نرم افزار است. امروزه چندین متدولوژی مختلف SDLC برای هدایت متخصصین در فرایند کار پروژه محور استفاده می شود. در SDLC انعطاف پذیری وجود دارد. در دهه های اخیر چندین مدل و روش مختلف محبوبیت پیدا کرده اند. هنگام ایجاد SDLC در سازمان خود، یکی از شش رویکرد زیر را در نظر بگیرید.
- Agile
- Waterfall
- Iterative
- Spiral
- DevOps
- V-shape
مدل :Agile
مدل Agile حدود یک دهه است که وجود داشته است. مدل چابک معتقد است که هر پروژه باید به گونهای متفاوت مدیریت شود و روشهای موجود باید متناسب با نیازهای پروژه طراحی شوند. بهجای رسیدگی به الزامات، طراحی و آزمایش بهعنوان مراحل متوالی بزرگ، یک مدل چابک همه آنها را به فرآیندهای مداومی تبدیل میکند که نیازمند مشارکت توسعهدهندگان، مدیریت و مشتریان است.
در مدل Agile، “شکست سریع” چیز خوبی است. این رویکرد چرخههای انتشار مداومی را تولید میکند که هر کدام دارای تغییرات کوچک و تدریجی نسبت به نسخه قبلی می باشند. در هر تکرار، محصول آزمایش می شود. مدل چابک به تیمها کمک میکند تا مسائل کوچک پروژهها را قبل از تبدیل شدن به مشکلات مهمتر شناسایی و رسیدگی کنند و با سهامداران کسبوکار درگیر شوند و بازخورد آنها را در طول فرآیند توسعه دریافت کنند. کار معمولاً به بخشهای 2 تا 4 هفتهای معروف به «دوی سرعت» تقسیم میشود، که در آن تیمهای پاسخگویی، به نیازهای اصلی مشتریان خود رسیدگی میکنند و همزمان با پیشبرد کار، آزمایشها را هم انجام میدهند. روش Agile در سازمانهای کوچک، بهویژه استارتآپها، که سرعت و انعطافپذیری برایشان امری ضروری است، به خوبی کار میکند.
مدل آبشاری:
مدل آبشاری قدیمی ترین و ساده ترین روش متودولوژی های SDLC است. این روش همچنین با عنوان مدل چرخه عمر خطی-ترتیبی شناخته می شود. در این روش یک ساختار کاملا مشخص وجود دارد که لازمه آن مشخص شدن همه نیازمندی های سیستم در ابتدای کار پروژه است. این روش همچنین ساده ترین رویکرد است: یک فاز را به اتمام برسانید سپس به سراغ فاز بعدی بروید. هیچ بازگشتی وجود ندارد. هر مرحله مبتنی بر داده هایی است که از محله قبلی کسب شده اند و نقشه پروژه را دنبال می کند. روش آبشاری به خوبی درک می شود و مدیریت آن کار آسانی است.
نقطه ضعف روش آبشار خشک و انعطاف ناپذیر بودن آن است. اگر به انعطاف پذیری نیاز باشد یا اگر پروژه طولانی مدت و در حال انجام باشد، این مدل به خوبی کار نمی کند. مطمئناً درک آن آسان و مدیریت آن ساده است. اما تأخیرهای زودهنگام می تواند کل جدول زمانی پروژه را متوقف کند. این فرآیند بصورت کامل مستند سازی شده و با ویژگیهای مورد انتظار برای هر مرحله از این مدل چرخه عمر توسعه نرمافزار از پیش تعریف شده است. با امکان بازنگری بسیار اندک، پس از تکمیل هر مرحله، تا زمانی که به مرحله تعمیر و نگهداری نرسید، نمی توان مشکلات را برطرف کرد.
مدل تکرارپذیر:
فرآیند تکرارپذیر با پیادهسازی ساده زیرمجموعهای از نیازمندیهای نرمافزار شروع میشود و به طور مکرر نسخههای در حال تکامل را تا زمانی که سیستم کامل پیادهسازی شود، ارتقا میدهد. به جای شروع با الزامات کاملاً شناخته شده، مجموعه ای از الزامات نرم افزاری را پیاده سازی می کنید، سپس الزامات بعدی را آزمایش، ارزیابی و مشخص می کنید. در هر تکرار، تغییراتی در طراحی انجام میشود و قابلیتهای کاربردی جدیدی اضافه میشوند.
مزیت مدل Iterative نسبت به سایر متدولوژیهای متداول SDLC این است که نسخهای کاربردی از پروژه را در مراحل اولیه تولید میکند و اجرای تغییرات را کم هزینه تر میکند. یک نقطه ضعف: فرآیندهای تکراری می توانند منابع را به سرعت مصرف کنند.
رویکرد تکرارپذیر بسیاری از اهداف مشابه مدل چابک را دارد، به جز اینکه مشتریان و کاربران خارج از تیم توسعه کمتر درگیر هستند و دامنه هر افزایش معمولاً ثابت است.
مدل مارپیچی:
یکی از انعطافپذیرترین متدولوژیهای SDLC، مدل Spiral از مدل تکرارپذیر و فرایند تکرار آن الگو می گیرد از آن پیشی میگیرد. پروژه از چهار مرحله بارها و بارها در یک “مارپیچ” عبور می کند تا زمانی که تکمیل شود، که امکان چندین دور اصلاح را فراهم می کند.
این مدل مارپیچی ترکیبی از مدل فرآیند توسعه تکراری و مدل توسعه خطی متوالی یعنی مدل آبشار با تاکید بسیار زیاد بر تحلیل ریسک است. این مدل اجازه آزاد شدن تدریجی محصول یا اصلاح تدریجی از طریق هر تکرار در اطراف مارپیچ را می دهد. مدل Spiral معمولا برای پروژه های بزرگ استفاده می شود. این روش تیمهای توسعه را قادر میسازد تا یک محصول بسیار سفارشیسازی شده بسازند و بازخورد کاربر را از همان ابتدای کار در پروژه اعمال کنند. هر تکرار با نگاه کردن به ریسک های احتمالی و کشف بهترین روش برای جلوگیری یا کاهش آنها شروع می شود.
DevOps:
متدولوژی DevOps تازه وارد به صحنه SDLC است. همانطور که از نام آن پیداست، فرض DevOps این است که تیم های توسعه را با تیم های عملیاتی برای ساده کردن تحویل و پشتیبانی گرد هم آورد. به روز رسانی محصولات، کوچک اما مکرر است. نظم و انضباط، بازخورد مستمر و بهبود فرآیند، و اتوماسیون فرآیندهای توسعه دستی، همه علائم تجاری مدل DevOps هستند.
DevOpsترکیبی از فلسفههای فرهنگی، روش کارها، و ابزارهایی است که ظرفیت سازمان را برای ارائه برنامهها و خدمات با سرعت بالا افزایش میدهد: در حال تکامل و بهبود محصولات با سرعتی سریعتر از سازمانهایی که از فرآیندهای توسعه نرمافزار سنتی و مدیریت زیرساخت استفاده میکنند.
مزایای چنین رویکردی این است که تغییرات سیال تر می شوند، در حالی که ریسک سازمانی نیز کاهش می یابد. برای موفقیت یک ترتیب DevOps، تیم ها باید منابع انعطاف پذیری داشته باشند.
مدل V شکل:
مدل V یک مدل SDLC است که در آن اجرای فرآیندها به صورت متوالی به شکل V انجام می شود. مدل V شکل که با عنوان مدل تأیید (Verification) و اعتبار سنجی (validation) نیز شناخته می شود، از مدل Waterfall رشد کرده و با یک مرحله آزمایش مربوطه برای هر مرحله توسعه شناخته می شود. V-Model توسعهای از مدل آبشار است و مبتنی بر ارتباط یک مرحله آزمایشی برای هر مرحله توسعه مربوطه است.
مدل v رویکرد بسیار سختگیرانهای دارد و فاز بعدی تنها زمانی آغاز میشود که فاز قبلی کامل شود. این عدم انعطاف پذیری و روش پرخطر برای پروژه های کوچک توصیه نمی شود، اما مدیریت و کنترل مدل v آسان تر است. این مدل زمانی مفید است که هیچ الزامات ناشناخته ای وجود نداشته باشد، زیرا بازگشت به عقب و ایجاد تغییرات هنوز دشوار است. برای پروژههایی که نیازمندیها ثابت هستند و به وضوح بیان شدهاند، و در آنها آزمایش اولیه مورد نظر است، این رویکرد میتواند انتخاب خوبی باشد.