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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
چرخه حیات توسعه سیستم

این عبارت می تواند معادل اصطلاح (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 با آن روبروییم) نیز هست. به این ترتیب نحوه کاربرد این اصطلاح در حوزه اداری-قانونی تفاوت معناداری با حوزه فنی پیدا کرد که در مجموع منجر به کاهش استفاده از آن در هر دو بخش شده است.

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