توسعه تکاملی


قبلاً در مورد مدل های توسعه نرم افزار بحث کرده بودیم، در این پست می خواهم به معرفی اجمالی رهیافت توسعه تکاملی بپردازم.

در توسعه تکاملی، سیستمی ایجاد می شود و به تدریج اصلاح می گردد تا سیستم نهایی توسعه یابد. به جای فعالیت های جداگانه ی تعیین مشخصات، توسعه و اعتبار سنجی، این فعالیت ها همزمان انجام می شوند.

دو نوع توسعه تکاملی وجود دارد :

  1. توسعه اکتشافی : هدف فرآیند این است که مشتری با آن کار کند تا خواسته های آن ها مشخص شود و سیستم نهایی تحویل داده شود. توسعه با بخش هایی از سیستم شروع می شود که به خوبی درک شده اند. با ارائه صفات جدید توسط کاربر، سیستم کامل می شود.
  2. ساخته نمونه اولیه موقتی : هدف فرآنید تکاملی این است که خواسته های کاربر درک شود و تعریف بهتری برای خواسته های کاربر رائه گردد. این نمونه اولیه برکسب تجربه بر روی خواسته هایی از کاربر تاکید دارد که به خوبی درک نشده اند.

در تولید سیستم هایی که خواسته های کاربر به خوبی روشن است، رهیافت تکاملی توسعه نرم افزار کارآمدتر از رهیافت آبشاری است. امتیاز فرآیند نرم افزار مبتنی بر رهیافت تکاملی این است که تعیین مشخصات نرم افزاری می تواند به تدریج انجام گیرد. هرچه کاربران با مسئله خود آشنایی بیشتری داشته باشند، در سیستم نرم افزاری موثرتر است. اما از دیدگاه مدیریت مهندسی، سه مسئله وجود دارد :

  • فرآیند قابل مشاهده نیست : مدیران می خواهند از پیشرفت کار باخبر باشند. اگر سیستم سریعاً توسعه یابد تولید اسناد برای هر نسخه مقرون به صرفه نخواهد بود.
  • سیستم ها چندان ساخت یافته نیستند : تغییرات دائم منجر به خرابی ساختار نرم افزار می شود. انجام تغییرات در نرم افزار، دشوار و هزینه بر است.
  • نیاز به ابزارها و روش های خاص : این رهیافت منجر به توسعه سریع سیستم می شود، اما ممکن است با سایر ابزارها و روش ها سازگار نباشد و ممکن است افراد مهارت کافی برای کار کردن با آن را نداشته باشند.

رهیافت تکاملی برای سیستم های کوچک و متوسط درون سازمانی که طول عمر آن ها کم خواهد بود گزینه ی بسیار مناسبی است اما برای سیستم های نسبتاً بزرگ و با طول عمر زیاد، مشکلات این رهیافت خودشان را نشان می دهند. برای سیستم های بزرگ فرآیندهای ترکیبی پیشنهاد می شوند.

مطالب مرتبط : مدل های فرآند نرم افزار | مهندسی نرم افزار | رهیافت آبشاری

Advertisements