چرخه حیات توسعه سیستم‌ها

چرخه حیات توسعه سیستم
این عبارت می‌تواند معادل اصطلاح (SDLC (System Development Life Cycle دانسته شود گه در مهندسی نرم افزار و رشته‌های مرتبط با موضوع سیستم‌های اطلاعاتی مورد استفاده قرار می‌گیرد و موضوع آن تشریح فرآیندهای مرتبط با برنامه‌ریزی و هدف گذاری، تحلیل، تولید، آزمایش، استقرار و نگهداری سیستم‌های نرم افزاری است که اغلب در یک چرخه مانند آنچه در دیاگرام مشاهده می‌شود تداوم و تکرار پیدا می‌کنند. این چرخه همچنین می‌تواند در برگیرنده فرایندهای مربوط به تامین سخت افزار یا ترکیبی از سخت افزارها و نرم افزارها نیز دانسته شود.
کلیات
یک چرخه توسعه سیستم علی القاعده باید ترکیبی از گا مهای به دقت تعریف شده و تفکیک شده باشد که توسط مهندسین نرم افزار و توسعه دهندگان سیستم برای تولید، عرضه، نگهداری و ارتقاء یک سیستم اطلاعاتی با کیفیت و سرعت و هزینه مناسب به کار گرفته می‌شوند. با این وجود روش‌شناسی (Methodology)‌های متعدد و گاه متضاد در مهندسی نرم افزار وچود دارند که در مورد بعضی از آن‌ها رعایت کامل و دقیق این گام‌ها مورد نیاز یا توصیه نیست یا عمدا بر خلاصه کردن و حتی حذف برخی مراحل تاکید می‌شود. از این نوع می‌توان به خانواده روش شناسی‌های توسعه نرم افزار موسوم به چابک (Agile Methodologies) و بخصوص یک شکل تعمیم یافته آن یعنی Scrum و آنچه در دهه دوم این قرن به عنوان DevOps به شدت مطرح است اشاره کرد. حتی در میان سایر متدولوژی‌های توسعه نرم افزار (به استثنای آنچه به نام روش آبشاری شناخته می‌شود و خیلی هم مورد علاقه ارائه‌کننده‌گان درس‌های مربوط به سیستم‌های اطلاعاتی در رشته مهندسی صنایع در ایران است ولی کم و بیش منسوخ دانسته می‌شود) گرایش غالب، خلاصه کردن یا حتی حذف برخی از این گا مها توام با تاکید بر جنبه دورانی و چرخه‌ای است. به عنوان مثال در روش شناسی‌های مبتنی بر تکرار (Iterative Methodologies) مانند RUP یا XP تاکید بر محدود کردن حوزه مسئله از ابتدا و آمادگی برای اعمال تغییرات سریع است.
به این ترتیب واضح است که نام بردن از چرخه حیات سیستم نباید توام با غفلت از پویایی و تحولی باشد که این مفهوم طی دهه‌های اخیر تجربه کرده‌است و همچنان دستخوش آن است. مهندسین نرم افزار و کلیه افراد دیگری که در سطوح مختلف در یک پروژه نرم افزاری با ایشان همکاری می‌کنند، باید در مورد استنباط خود از مفهوم و وزن نسبی هریک از این گام‌ها در چارچوب متدولوژی‌ای که انتخاب شده‌است درک روشن و مشترکی داشته باشند.
تاریخچه
مطابق آنچه الیوت و دیگران(2004) ابراز می‌کنند SDLC نخستین بار در دهه 60 قرن بیستم میلادی در پس زمینه‌ای مطرح شد که در آن توسعه سیستم محدود بود به حوزه سازمان‌ها و بنگاه‌های اقتصادی بزرگ که انگیزه و توانایی به کار گرفتن سیستم‌های تجاری کامپیوتری گران قیمت برآمده از پروژه‌های توسعه نرم افزاری و سخت افزاری به نوبه خود بزرگ را داشتند. این سیستم‌ها که عمدتا بر پردازش داده و محاسبات عددی متمرکز بودند، در فرآیندی نسبتا طولانی و پرهزینه و در قالب روش‌های مرسوم تجاری و اداری زمان خود، عقد قرارداد شده، توسعه می‌یافتند و از لحاظ اداری برداشت دقیق و مستند شده‌ای از سیستم هدف و روش‌هایی برای کنترل پیشرفت پروژه، مطابق آنچه در ساخت و ساز یا حوزه‌های دیگر صنعت و تجارت مرسوم بود، لازم به نظر می‌رسید. به این ترتیب کارشناسان و نویسندگان به استفاده از اصطلاح "چرخه حیات توسعه سیستم" روی آوردند. پس از آن و به تدریچ تعدادی از روش شناسی‌ها و فریم ورک‌های توسعه نرم افزار (مانند SSADM ) این مفهوم را در بر گرفته، مورد استفاده قرار دادند اما با توسعه فن آوری اطلاعات و همه گیر شدن آن، گرایش واضحی به غلبه بر نقاط ضعف و محدودیت‌های پنهان در این مفهوم شکل گرفت و متدولوژی‌های جدید‌تر به‌طور روز افزون به بازتعریف آن به شکلی منعطف و چابک روی آوردند و این ممکن نبود مگر با مبهم کردن و از ریخت انداختن و هم‌زمان کاهش معناداری در میزان استفاده از این اصطلاح به منظور توصیف روند توسعه سیستم‌های اطلاعاتی.
مراحل
قدیمی‌ترین روش‌شناسی توسعه سیستم روش آبشاری (Waterfall) است که در حقیقت برآمده از همین مفهوم، "چرخه حیات توسعه سیستم" است و هرچند که امروزه عملا یک روش منسوخ و قدیمی محسوب می‌شود اما در بسیاری از موارد مفاهیم و واژه نامه آن به منظور ارائه تصویری ولو کلی از نحوه جریان امور پروژه‌های توسعه سیستم مورد استفاده قرار می‌گیرد. در روش‌شناسی آبشاری نصویری ساده انگارانه از فرآیند توسعه سیستم مطرح است:
1- برنامه‌ریزی: نیازی، درخواستی، هدفی مطرح می‌شود، این احتمالا به تولید یک سند منجر خواهد شد که حوزه و دامنه مسئله را درون خود جای می‌دهد.
2- تجزیه و تحلیل: سند دریافتی از مرحله قبل مبنای کار قرار می‌گیرد و توام با بررسی وضعیت جاری سند دیگری تولید می‌شود که به توصیف دقیق وضعیت موچود و محددیت‌های احتمالی و شرایط خاص مرتبط با موضوع می‌پردازد.
3- طراحی: هر دو سند در یافتی از مراحل قبل مورد استفاده قرار می‌گیرند تا یک سیستم هدف در سطوح کلی و جزیی توصیف و به اصطلاح طراحی شود.
4- اجرا: در طول یک فعالیت اجرایی با کمک سند طراحی دریافتی از مرحله قبل سیستم تولید، آزمایش، نصب و راهبری و نگاهداری می‌شد.
تکامل
همچنانکه اشاره شد اصطلاح "چرخه حیات توسعه سیستم" در طول زمان دستخوش تحول و تغییر بسیار گردیده است. از چمله مهمترین این تغییرات بازی با واژه "چرخه" (cycle) است که به برخی نویستندگان اجازه داد تا یک مسیر بازخورد (feedback) از آخرین مرحله به مرحله اول را مورد اشاره قرار دهند که ابدا منطبق بر روش‌شناسی آبشاری نیست. این قبیل اصلاحات همچنین شامل افزودن مسیرهای بازخورد بین کلیه مراحل (مثلا از تولید به طراحی یا از طراحی به آنالیز و …) یا ادغام آن‌ها (مانند آنچه که در روش‌شناسی پیش نمایه‌سازی یا prototyping با آن روبروییم) نیز هست. به این ترتیب نحوه کاربرد این اصطلاح در حوزه اداری-قانونی تفاوت معناداری با حوزه فنی پیدا کرد که در مجموع منجر به کاهش استفاده از آن در هر دو بخش شده‌است.
ویکی‌پدیا انگلیسی