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

بندانگشتی|240px|چرخه حیات توسعه سیستم
این عبارت می‌تواند معادل اصطلاح (SDLC (System Development Life Cycle دانسته شود که در مهندسی نرم‌افزار و رشته‌های مرتبط با موضوع سیستم‌های اطلاعاتی مورد استفاده قرار می‌گیرد و موضوع آن تشریح فرآیندهای مرتبط با برنامه‌ریزی و هدف گذاری، تحلیل، تولید، آزمایش، استقرار و نگهداری سیستم‌های نرم‌افزاری است که اغلب در یک چرخه مانند آنچه در دیاگرام مشاهده می‌شود تداوم و تکرار پیدا می‌کنند. این چرخه همچنین می‌تواند در برگیرنده فرایندهای مربوط به تأمین سخت‌افزار یا ترکیبی از سخت‌افزارها و نرم‌افزارها نیز دانسته شود.

## کلیات
یک چرخه توسعه سیستم علی القاعده باید ترکیبی از گام های به دقت تعریف شده و تفکیک شده باشد که توسط مهندسین نرم‌افزار و توسعه دهندگان سیستم برای تولید، عرضه، نگهداری و ارتقاء یک سیستم اطلاعاتی با کیفیت و سرعت و هزینه مناسب به کار گرفته می‌شوند. با این وجود روش‌شناسی (Methodology)های متعدد و گاه متضاد در مهندسی نرم‌افزار وجود دارند که در مورد بعضی از آن‌ها رعایت کامل و دقیق این گام‌ها مورد نیاز یا توصیه نیست یا عمداً بر خلاصه کردن و حتی حذف برخی مراحل تأکید می‌شود. از این نوع می‌توان به خانواده روش‌شناسی‌های توسعه نرم‌افزار موسوم به چابک (Agile Methodologies) و به خصوص یک شکل تعمیم یافته آن یعنی Scrum و آنچه در دهه دوم این قرن به عنوان DevOps به شدت مطرح است اشاره کرد. حتی در میان سایر متدولوژی‌های توسعه نرم‌افزار (به استثنای آنچه به نام روش آبشاری شناخته می‌شود و خیلی هم مورد علاقه ارائه‌کننده گان درس‌های مربوط به سیستم‌های اطلاعاتی در رشته مهندسی صنایع در ایران است ولی کم و بیش منسوخ دانسته می‌شود) گرایش غالب، خلاصه کردن یا حتی حذف برخی از این گا مها توأم با تأکید بر جنبه دورانی و چرخه‌ای است. به عنوان مثال در روش‌شناسی‌های مبتنی بر تکرار (Iterative Methodologies) مانند RUP یا XP تأکید بر محدود کردن حوزه مسئله از ابتدا و آمادگی برای اعمال تغییرات سریع است.

به این ترتیب واضح است که نام بردن از چرخه حیات سیستم نباید توأم با غفلت از پویایی و تحولی باشد که این مفهوم طی دهه‌های اخیر تجربه کرده‌است و همچنان دستخوش آن است. مهندسین نرم‌افزار و کلیه افراد دیگری که در سطوح مختلف در یک پروژه نرم‌افزاری با ایشان همکاری می‌کنند، باید در مورد استنباط خود از مفهوم و وزن نسبی هریک از این گام‌ها در چارچوب متدولوژی ای که انتخاب شده‌است درک روشن و مشترکی داشته باشند.

## تاریخچه
مطابق آنچه الیوت و دیگران(۲۰۰۴) ابراز می‌کنند SDLC نخستین بار در دهه ۶۰ قرن بیستم میلادی در پس زمینه‌ای مطرح شد که در آن توسعه سیستم محدود بود به حوزه سازمان‌ها و بنگاه‌های اقتصادی بزرگ که انگیزه و توانایی به کار گرفتن سیستم‌های تجاری کامپیوتری گران‌قیمت برآمده از پروژه‌های توسعه نرم‌افزاری و سخت‌افزاری به نوبه خود بزرگ را داشتند. این سیستم‌ها که عمدتاً بر پردازش داده و محاسبات عددی متمرکز بودند، در فرآیندی نسبتاً طولانی و پرهزینه و در قالب روش‌های مرسوم تجاری و اداری زمان خود، عقد قرارداد شده، توسعه می‌یافتند و از لحاظ اداری برداشت دقیق و مستند شده‌ای از سیستم هدف و روش‌هایی برای کنترل پیشرفت پروژه، مطابق آنچه در ساخت و ساز یا حوزه‌های دیگر صنعت و تجارت مرسوم بود، لازم به نظر می‌رسید. به این ترتیب کارشناسان و نویسندگان به استفاده از اصطلاح «چرخه حیات توسعه سیستم» روی آوردند. پس از آن و به تدریج تعدادی از روش‌شناسی‌ها و فریم ورک‌های توسعه نرم‌افزار (مانند SSADM) این مفهوم را دربر گرفته، مورد استفاده قرار دادند اما با توسعه فن آوری اطلاعات و همه گیر شدن آن، گرایش واضحی به غلبه بر نقاط ضعف و محدودیت‌های پنهان در این مفهوم شکل گرفت و متدولوژی‌های جدید تر به‌طور روزافزون به بازتعریف آن به شکلی منعطف و چابک روی آوردند و این ممکن نبود مگر با مبهم کردن و از ریخت انداختن و هم‌زمان کاهش معناداری در میزان استفاده از این اصطلاح به منظور توصیف روند توسعه سیستم‌های اطلاعاتی.

## مراحل
قدیمی‌ترین روش‌شناسی توسعه سیستم روش آبشاری (Waterfall) است که در حقیقت برآمده از همین مفهوم، «چرخه حیات توسعه سیستم» است و هرچند که امروزه عملاً یک روش منسوخ و قدیمی محسوب می‌شود اما در بسیاری از موارد مفاهیم و واژه‌نامه آن به منظور ارائه تصویری ولو کلی از نحوه جریان امور پروژه‌های توسعه سیستم مورد استفاده قرار می‌گیرد. در روش‌شناسی آبشاری تصویری ساده انگارانه از فرایند توسعه سیستم مطرح است:

# برنامه‌ریزی: نیازی، درخواستی، هدفی مطرح می‌شود، این احتمالاً به تولید یک سند منجر خواهد شد که حوزه و دامنه مسئله را درون خود جای می‌دهد.
# تجزیه و تحلیل: سند دریافتی از مرحله قبل مبنای کار قرار می‌گیرد و توأم با بررسی وضعیت جاری سند دیگری تولید می‌شود که به توصیف دقیق وضعیت موجود و محدودیت‌های احتمالی و شرایط خاص مرتبط با موضوع می‌پردازد.
# طراحی: هر دو سند در یافتی از مراحل قبل مورد استفاده قرار می‌گیرند تا یک سیستم هدف در سطوح کلی و جزئی توصیف و به اصطلاح طراحی شود.
# اجرا: در طول یک فعالیت اجرایی با کمک سند طراحی دریافتی از مرحله قبل سیستم تولید، آزمایش، نصب و راهبری و نگاهداری می‌شد.
## تکامل
همچنانکه اشاره شد اصطلاح «چرخه حیات توسعه سیستم» در طول زمان دستخوش تحول و تغییر بسیار گردیده‌است. از چمله مهمترین این تغییرات بازی با واژه «چرخه» (cycle) است که به برخی نویسندگان اجازه داد تا یک مسیر بازخورد (feedback) از آخرین مرحله به مرحله اول را مورد اشاره قرار دهند که ابداً منطبق بر روش‌شناسی آبشاری نیست. این قبیل اصلاحات همچنین شامل افزودن مسیرهای بازخورد بین کلیه مراحل (مثلاً از تولید به طراحی یا از طراحی به آنالیز و …) یا ادغام آن‌ها (مانند آنچه که در روش‌شناسی پیش نمایه‌سازی یا prototyping با آن روبروییم) نیز هست. به این ترتیب نحوه کاربرد این اصطلاح در حوزه اداری-قانونی تفاوت معناداری با حوزه فنی پیدا کرد که در مجموع منجر به کاهش استفاده از آن در هر دو بخش شده‌است.

## منابع

* ویکی‌پدیا انگلیسی

رده:فرایند تولید نرم‌افزار
رده:مقاله‌های ایجادشده توسط ایجادگر
رده:مهندسی سامانه‌ها
رده:مهندسی نرم‌افزار
رده:نرم‌افزار
رده:واژگان رایانه