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

بازنویسی کامل کرد. متن قبلی به شدت نخ نما و غیر علمی به نظرم رسید.
جز (افزودن ناوباکس> {{مهندسی نرم‌افزار}} (درخواست کاربر:Kian)+املا+تمیز+)
(بازنویسی کامل کرد. متن قبلی به شدت نخ نما و غیر علمی به نظرم رسید.)
{{بدون منبع}}
[[پرونده:SDLC-Maintenance-Highlighted.png|بندانگشتی|240px|چرخه حیات توسعه سیستم]]
این عبارت می تواند معادل اصطلاح (SDLC (System Development Life Cycle دانسته شود گه در مهندسی نرم افزار و رشته های مرتبط با موضوع سیستم های اطلاعاتی مورد استفاده قرار می گیرد و موضوع آن تشریح فرآیند های مرتبط با برنامه ریزی و هدف گزاری، تحلیل، تولید، آزمایش، استقرار و نگهداری سیستم های نرم افزاری است که اغلب در یک چرخه مانند آنچه در دیاگرام مشاهده می شود تداوم و تکرار پیدا می کنند. این چرخه همچنین می تواند در برگیرنده فرایندهای مربوط به تامین سخت افزار و یا ترکیبی از سخت افزارها و نرم افزارها نیز دانسته شود.
پس از گذشت مدت زمانی از فعالیت سیستم ،نیازهای جدید ایجاد شده ،محیط و شرایط کاری تغییر می کند و سیستم نمی‌تواند انتظارات و توقعات را برآورده کندسیستم به شکل نادرستی کار می کند استفاده کنندگان سیستم از عملکرد سیستم ناراضی هستند سیستم با سختی حرکت می کند این مرحله را متروک شدن سیستم گوئیم،متروک شدن سیستم به معنای متوقف شدن نیست ممکن است یک سیستم سالها به حالت متروک شده به کار خود ادامه دهدولی در این حالت استه که نیاز به توسعه سیستم احساس شده و مبحث چرخه توسعه سیستم ها پیش می آید.
 
'''کلیات'''
در صورتی که صاحبان و مدیران سیستم رغبتی به اصلاح سیستم نشان ندهندسیستم همانطور به شکل متروک به فعایت خود ادامه خواهد داد گاه هزینه اصلاح سیستم موجود نیست البته در اغلب موارد این موضوع تنها بهانه ای برای انجام ندادن اصلاح سیستم است و هزینه هایی که هر روزه برسیستم وارد می شود به مراتب بیشتر از هزینه اصلاح سیستم است،معمولاً اصلاح سیستم هزینه های سیستم را کاهش و کارائی را افزایش می دهد و در دراز مدت و حتی میان مدت به نفع سازمان خواهد بود آنچه بیش از همه باعث متروک ماندن سیستم و عدم توسعه سیستم جدید می شود،عدم توجه به کارائی سیستم و ترس از اصلاح سیستم است.در ادامه بر مبحث چرخه توسعه سیستم توضیحات بیشتری داده می شود.
 
یک چرخه توسعه سیستم علی القاعده باید ترکیبی از گا مهای به دقت تعریف شده و تفکیک شده باشد که توسط مهندسین نرم افزار و توسعه دهندگان سیستم برای تولید، عرضه، نگهداری و ارتقاء یک سیستم اطلاعاتی با کیفیت و سرعت و هزینه مناسب به کار گرفته می شوند. با این وجود روش شناسی (Methodology) های متعدد و گاه متضاد در مهندسی نرم افزار وچود دارند که در مورد بعضی از آن ها رعایت کامل و دقیق این گام ها مورد نیاز یا توصیه نیست یا عمدا بر خلاصه کردن و حتی حذف برخی مراحل تاکید می شود. از این نوع می توان به خانواده روش شناسی های توسعه نرم افزار موسوم به چابک (Agile Methodologies) و بخصوص یک شکل تعمیم یافته آن یعنی Scrum و آنچه در دهه دوم این قرن به عنوان DevOps به شدت مطرح است اشاره کرد. حتی در میان سایر متدولوژی های توسعه نرم افزار به استثنای آنچه به نام روش آبشاری شناخته می شود ( که بیش از همه مورد علاقه ارائه کننده گان درس های مربوط به سیستم های اطلاعاتی در رشته مهندسی صنایع در ایران است و در واقع امروزه دیگر باید به عنوان یک روش شناسی منسوخ طبقه بندی شود) گرایش غالب، خلاصه کردن یا حتی حذف برخی از این گا مها و اغلب تاکید بر جنبه دورانی کل فرآیند است. به عنوان مثال در روش شناسی های مبتنی بر تکرار (Iterative Methodologies) مانند RUP یا XP تاکید بر محدود کردن حوزه مسئله از ابتدا و آمادگی برای اعمال تغییرات سریع است.
'''چرخه توسعه سیستمها''' بیانگر مراحلی است که برای توسعه [[سیستم اطلاعاتی|سیستم اطلاعاتی]] باید طی شود و از ۴ مرحلهٔ اصلی تشکیل شده است:
* برنامه ریزی (Planning)
* در این فاز اهداف توسعه سیستم جدید،محدوده توسعه سیستم جدیدویک امکان سنجی مقدماتی از سیستم جدید تهیه می شود.
* این فاز شامل دو قدم کلی است:
* 1-بررسی نیازهای کلان سیستم و اولویت بندی آنها
* 2-ارزیابی و تعیین محدوده سیستم جدید
* تجزیه و تحلیل (Analysis)
* در این فاز مطالعاتی برای سیستم انجام می شود که این مطالعات در دو نوع است :1-سیستم مشابه ای موجود باشد،2-سیستم برای اولین بار ایجاد شود.در دو نوع مطالعات به دنبال این هستیم که نیازهای کاربران را به دست آوریم که در نهایت در این فاز ارزیابی آلترناتیوهاجهت برآوردن نیازها ازدیدگاه هزینه و نیروی انسانی و سطح دانش فنی در سیستم انجام می شود.خروجی این فاز :نیازمندی های وظیفه ای و نیازمندی های عملکردی است در واقع خروجی فاز تعیین خواسته ها و انتظارات از سیستم جدید است.
* طراحی و ساخت (Design)
* در این فاز تمام جنبه های سیستم جدید را مدنظر قرار می دهیم در واقع در این فاز تبدیل نیازمندی ها و آلترناتیوهای پیشنهاد شده در فاز تحلیل به مشخصات منطقی و فیزیکی سیستم جدید (چگونگی رسیدن به چه بودن سیستم جدید می باشد)
* پیاده سازی (Implementation)
* مجموعه فعالیت های که انجام می شود تا یک سیستم طراحی شده به یک سیستم قابل نصب و بهره برداری و عملیاتی تبدیل شود این فاز شامل دو قدم کلی است:
* 1-پیاده سازی سیستم،2-عملیاتی کردن سیستم.
 
به این ترتیب واضح است که نام بردن از چرخه حیات سیستم نباید توام با غفلت از پویایی و تحولی باشد که این مفهوم طی دهه های اخیر تجربه کرده است و همچنان دستخوش آن است. یک مهندس نرم افزار و کلیه افرادی که در سطوح مختلف در یک پروژه نرم افزاری با وی همکاری می کنند باید در مورد استنباط خود از مفهوم و وزن نسبی هریک از این گام ها در چارچوب متدولوژی ای که انتخاب شده است درک روشن و مشترکی داشته باشند این البته شامل مشتری نیز می شود زیرا نظارت و مدیریت پروژه و گنترل کیفیت و مدیریت محصول بدون درک چرخه حیات سیستم در چارچوب روش شناسی حاکم بر توسعه آن عملا ممکن نخواهد بود.
هر یک از این مراحل خود به مراحل جزئی تر دیگری تقسیم می‌شوند که یک [[مهندسی صنایع]] با طی این مراحل در قالب یک [[متدلوژی]] از میان متدولوژی‌های موجود می‌تواند به تحلیل یک سیستم نرم‌افزاری که به صورت مهندسی پیاده سازی شده است دست یابد.مبحث SDLC بخشی از مباحث درس [[سامانه اطلاعاتی مدیریتی|سیستم اطلاعاتی مدیریت]] در رشته مهندسی صنایع را شامل می‌شود.
 
'''تاریخچه'''
== منابع ==
 
{{پانویس}}
مطابق آنچه الیوت و دیگران(2004) ابراز می کنند SDLC نخستین بار در دهه 60 قرن بیستم میلادی در پس زمینه ای از سازمان ها و بنگاه های اقتصادی بزرگ که انگیزه و توانایی به کار گرفتن سیستم های تجاری به نوبه خود بزرگ را داشتند که که عمدتا بر پردازش داده و محاسبات عددی متمرکز بودند. همزمان تعدادی از روش شناسی ها و فریم ورک های توسعه نرم افزار (مانند SSADM ) این مفهوم را در بر گرفته، مورد استفاده قرار دادند اما به تدریج و با توسعه فن آوری اطلاعات و همه گیر شدن آن گرایش واضحی به غلبه بر نقاط ضعف و محدودیت های مستتر در مفهوم چرخه حیات سیستم شکل گرفت و متدولوژی های جدید تر به طور روز افزون به خلاص کردن گریبان خود از این مفهوم و بازتعریف آن به شکلی منعطف و چابک روی آوردند.
 
'''مراحل'''
 
قدیمی ترین روش شناسی و در حقیقت مادر مفهوم چرخه حیات نرم افزار بدون شک روش آبشاری (Waterfall) است و هرچند که امروزه عملا یک روش منسوخ و قدیمی محسوب می شود اما هر زمان که شما با واژه چرخه حیات سیستم برخورد می کنید در حقیقت با میراث این روش شناسی سروگار دارید که مثلا توسط یک فرد علاقمند به حوزه سیستم های اطلاعاتی، یک مهندس صنایع با آشنایی محدود نسبت به مسائل مهندسی نرم افزار، یک مهندس ناظر نماینده مشتری که انگیزه جدی برای کاهش ریسک پروژه در خود احساس می کند و امثال ایشان سروکار دارید که دانسته یا ندانسته به روش شناسی مزبور متوسل می شوند تا درک روشنی از آنچه جریان دارد یا در پیش روست برای خود یا دیگران شکل بدهند.
 
در روش آبشاری نصویری ساده انگارانه از فرآیند توسعه سیستم مطرح است:
 
1- برنامه ریزی: نیازی، درخواستی، هدفی مطرح می شود، این احتمالا به تولید یک سند منجر خواهد شد که حوزه و دامنه مسئله را درون خود جای می دهد.
 
2- تجزیه و تحلیل: سند دریافتی از مرحله قبل مبنای کار قرار می گیرد و توام با بررسی وضعیت جاری سند دیگری تولید می شود که به توصیف دقیق وضعیت موچود و محددیت های احتمالی و شرایط خاص مرتبط با موضوع می پردازد.
 
3- طراحی: هر دو سند در یافتی از مراحل قبل مورد استفاده قرار می گیرند تا یک سیستم هدف در سطوح کلی و جزیی توصیف و به اصطلاح طراحی شود.
 
4- اجرا: در طول یک فعالیت اجرایی با کمک سند طراحی دریافتی از مرحله قبل سیستم تولید، آزمایش، نصب و راهبری و نگاهداری می شد.
 
'''تکامل'''
 
همچنانکه اشاره شد مفهوم "چرخه حیات سیستم" در طول زمان دستخوش تحول و تغییر بسیار گردیده است. قبل از هرچیز از شدت و حدت استفاده از این مفهوم روزبروز کاسته شد و علاوه بر آن با وارد کردن یک مسیر بازخورد از مرحله اجرا به مرحله برنامه ریزی سعی در نجات ظاهر بوروکراتیک و خطی آن شد و در ادامه با تچدید نظر در اهمیت و وزن نسبی هریک از مراحل به طور کامل از معنای اولیه خود دور شده به یک قرارداد مبهم زبانی برای اشاره به مفاهیمی کلی تبدیل گردید. {{پانویس}}
* ویکی‌پدیا انگلیسی
 
کاربر ناشناس