چرخه حیات سیستم یکی از مباحث مهم مرتبط با دنیای نرمافزار و سامانههای اطلاعاتی است. چرخه حیات سیستم SDLC سرنام System Development Life Cycle به تشریح فرآیندهای مرتبط با برنامهریزی و هدفگذاری، تحلیل، تولید، آزمایش، استقرار و نگهداری سامانههای نرمافزاری اشاره دارد
به گزارش شبکه – مگ
چرخه حیات توسعه سامانهها چیست؟
چرخه توسعه سیستم ترکیبی از گامهای تعریف و تفکیک شدهای است که توسط مهندسان نرمافزار و توسعهدهندگان سیستم برای تولید، عرضه، نگهداری و ارتقاء یک سیستم اطلاعاتی با کیفیت با رعایت هزینه مناسب و تحویل به موقع استفاده میشود. با این حال متدولوژیهای مختلف و گاهی مغایر در مهندسی نرمافزار باعث میشوند که رعایت کامل و دقیق این گامها با چالشهای جدی روبر شود، زیرا برخی از متدولوژیها بر حذف یا خلاصهسازی برخی گامها اصرار دارند. از جمله این متدولوژیها باید به توسعه نرمافزار چابک (Agile Methodologies) و شکل تعمیم یافته آن اسکرام و آنچه در دهه دوم این قرن به عنوان دوآپس از آن نام برده میشود اشاره کرد. حتی در میان سایر متدولوژیهای توسعه نرمافزار (به استثنای متدولوژی آبشاری) گرایش غالب، خلاصه کردن یا حذف برخی از این گامها و تمرکز بر جنبه دورانی و چرخهای است. بهطور مثال، در متدولوژی مبتنی بر تکرار (Iterative Methodologies) نظیر RUP یا XP تأکید بر محدودسازی حوزه مسئله از ابتدا و آمادگی برای اعمال تغییرات سریع است.
بدیهی است که نام بردن از چرخه حیات سیستم نباید این مفهوم را پدید آورد که تیمها باید از پویایی و تحول غافل شوند. مهندسان نرمافزار و تمامی ذینفعان که در سطوح مختلف در یک پروژه نرمافزاری با یکدیگر در ارتباط هستند باید در مورد استنباط خود از مفهوم و وزن نسبی هر یک از این گامها در چارچوب متدولوژی انتخاب شده درک روشن و مشترکی داشته باشند.
چرخه حیات سیستم چگونه پدید آمد؟
چرخه حیات توسعه سیستم (SDLC) اولین بار در دهه ۶۰ میلادی در غالب موضوعی ارائه شد که در آن توسعه سیستم محدود بود به حوزه سازمانها و بنگاههای اقتصادی بزرگ که انگیزه و توانایی به کار گرفتن سیستمهای تجاری کامپیوتری گرانقیمت برآمده از پروژههای توسعه نرمافزاری و سختافزاری به نوبه خود بزرگ را داشتند. این سیستمها که عمدتاً بر پردازش داده و محاسبات عددی متمرکز بودند، در فرآیندی نسبتاً طولانی و پرهزینه و در قالب روشهای مرسوم تجاری و اداری زمان خود، عقد قرارداد شده، توسعه مییافتند و از لحاظ اداری برداشت دقیق و مستند شدهای از سیستم هدف و روشهایی برای کنترل پیشرفت پروژه، مطابق آنچه در ساخت و ساز یا حوزههای دیگر صنعت و تجارت مرسوم بود، لازم به نظر میرسید. به این ترتیب کارشناسان و نویسندگان به استفاده از اصطلاح «چرخه حیات توسعه سیستم» روی آوردند. پس از آن و به تدریچ تعدادی از روششناسیها و فریم ورکهای توسعه نرمافزار (مانند SSADM) این مفهوم را دربر گرفته، مورد استفاده قرار دادند اما با توسعه فن آوری اطلاعات و همه گیر شدن آن، گرایش واضحی به غلبه بر نقاط ضعف و محدودیتهای پنهان در این مفهوم شکل گرفت و متدولوژیهای جدید تر بهطور روزافزون به بازتعریف آن به شکلی منعطف و چابک روی آوردند و این ممکن نبود مگر با مبهم کردن و از ریخت انداختن و همزمان کاهش معناداری در میزان استفاده از این اصطلاح به منظور توصیف روند توسعه سیستمهای اطلاعاتی.
چرخه حیات سیستم شامل چه مراحلی است؟
شناختهشدهترین و پر کاربردتری متدولوژی در این زمینه توسعه آبشاری (Waterfall) است که امروزه به ندرت از آن استفاده میشود، هرچند به اشکال غیر مستقیمی در جریان امور پروژههای توسعه سیستم از آن استفاده میشود. در متدولوژی آبشاری تصویری ساده انگارانه از فرایند توسعه سیستم مطرح است که شامل مراحل زیر میشود:
برنامهریزی: نیازی، درخواستی، هدفی مطرح میشود، این احتمالاً به تولید یک سند منجر خواهد شد که حوزه و دامنه مسئله را درون خود جای میدهد.
تجزیه و تحلیل: سند دریافتی از مرحله قبل مبنای کار قرار میگیرد و توأم با بررسی وضعیت جاری سند دیگری تولید میشود که به توصیف دقیق وضعیت موچود و محددیتهای احتمالی و شرایط خاص مرتبط با موضوع میپردازد.
طراحی: هر دو سند در یافتی از مراحل قبل مورد استفاده قرار میگیرند تا یک سیستم هدف در سطوح کلی و جزئی توصیف و به اصطلاح طراحی شود.
اجرا: در طول یک فعالیت اجرایی با کمک سند طراحی دریافتی از مرحله قبل سیستم تولید، آزمایش، نصب و راهبری و نگهداری میشد.
آشنایی کلی با مفهوم استقرار نرمافزار
یکی از مفاهیم مهمی که با چرخه توسعه سیستم عجین شده است، استقرار نرمافزار است. استقرار نرمافزار به تمامی فعالیتهایی که یک نرمافزار را برای استفاده آماده میکند تا در نهایت نرمافزار به بازار عرضه شود اشاره دارد. فرایند استقرار شامل چندین فعالیت مرتبط به یکدیگر و تغییرات احتمالی بین آنها است. این فعالیتها میتوانند از طرف توسعهدهنده نرمافزار، از طرف کاربر یا از طرف هر دوی آنها انجام شود. با توجه به اینکه هر سیستم نرمافزاری یکتا، فرایندهای دقیق یا الگوریتمهای درونی هر فعالیت به سختی میتوانند تعریف شوند، بنابراین استقرار باید به عنوان یک فرایند کلی تفسیر شود که باید مطابق با الزامات خاص یا مشخصات آن سفارشی شود. در ارتباط با مفهوم استقرار نرمافزار لازم است به گامهای مهم در این زمینه یعنی انتشار، نصب و فعالسازی، غیرفعال سازی، حذف نصب و بهروزرسانی دقت کنید.