بخشی از مقاله

چکیده

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

کلمات کلیدی: تخمین تلاش، پروژه نرم افزاری، کوکومو، محاسبات نرم

مقدمه
تخمین تلاش یک پروژه نرم افزاری شامل مجموعه ای از تکنیکها و فرآیندهایی است که یک سازمان بکار می برد تا هزینه، زمانبندی، نیروی انسانی و منابع یک پروژه نرم افزاری را تخمین بزند .[14] جهت تخمین تلاش یک پروژه نرم افزاری تاکنون

مدلهای مختلفی معرفی شده است که هر کدام از آنها تلاش می کنند تا دقت تخمین خود را به روشهای مختلفی افزایش دهند.

افزایش تعداد پروژه های شکست خورده و پروژه هایی که بودجه و زمانبندی آنها از پیش بینی ها فراتر رفته، موجب شد که تخمین تلاش در مدیریت پروژه های نرم افزاری اهمیت بسزایی پیدا کند زیرا در بین دلایل مختلف در مورد شکست پروژه های نرم افزاری، تخمین ضعیف و غیر دقیق پروژه نرم افزاری از مهمترین و ریشه ای ترین این دلایل می باشد 1]و.[9 تخمین ضعیف یا موجب می شود بودجه و زمان واقعی یک پروژه از تخمینها فراتر رود و یا منجر به بیشتر شدن تخمین از بودجه و زمان واقعی پروژه می گردد؛ در بدترین حالت نیز باعث شکست کل پروژه می شود. تخمین تلاش نرم افزار به خصوص در مراحل اولیه توسعه کمک می کند تا یک پروژه قبل از شروع امکان سنجی شده و فرآیند توسعه آن بطور موثری مدیریت شود. بالا بردن دقت تخمین تلاش نرم افزار به خصوص در مراحل اولیه توسعه پروژه یکی از چالشهای مهم در بین محققان مهندسی نرم افزار می باشد.[1]

جهت تخمین تلاش نرم افزار، مدلهای مختلفی معرفی شده است که کوکومو1 یکی از مشهورترین آنها می باشد. کوکوموی 1 یا کوکوموی 81 یک مدل مبتنی بر رگرسیون می باشد که در سال 1981 توسط بوهم پیشنهاد شد.[4] این مدل جزو دسته مدلهای الگوریتمی محسوب می شود که می تواند علاوه بر میزان تلاش، میزان زمانبندی یک پروژه نرم افزاری را نیز محاسبه کند. این

1 Constructive Cost Model (COCOMO)

مدل دارای 3 سطح می باشد: -1 مدل پایه ای2 که میزان تلاش نرم افزار را از روی اندازه نرم افزار که بر حسب 3KDSI می باشد محاسبه می کند. -2 مدل متوسط4 که میزان تلاش را از روی اندازه نرم افزار و 15محرک هزینه5 به دست می آورد و -3 مدل جزئی6 یا پیشرفته7 که تمامی مشخصات مدل متوسط را به همراه تخمینی از میزان تأثیر هر محرک هزینه بر روی هر مرحله در فرآیند توسعه نرم افزار، ترکیب می کند. مدل کوکوموی 1 به دلیل سادگی و شفافیت در نحوه کارکرد آن و در نظر گرفتن فاکتورهای مختلف موثر در تخمین تلاش توانسته محبوبیت بسیاری پیدا کند. یکی از مشکلات مدل کوکوموی 1 عدم سازگاری و مطابقت با محیطهای توسعه در اواخر سال 1990 بود که همین امر موجب شد تا بوهم در سال 1995 مدل کوکوموی 2 را پیشنهاد دهد.[6] مدل کوکوموی 2 نیز دارای 4 مدل می باشد:

1. مدل ترکیبی کاربردی: 8 این مدل در فازهای اولیه توسعه نرم افزار استفاده می شود و زمانی به کار برده می شود که نرم افزار ترکیبی از قطعات موجود باشد.

2. مدل طراحی اولیه: 9 این مدل زمانی بکار می رود که نیازمندی ها در دسترس اما طراحی هنوز آغاز نشده باشد.

3. مدل استفاده مجدد: 10 این مدل برای محاسبه میزان تلاش اجزای قابل استفاده مجدد یکپارچه شده بکار می رود.

4. مدل پسا معماری: 11 این مدل زمانی بکار می رود که
معماری سیستم طراحی شده و اطلاعات بیشتری از سیستم در دسترس باشد. این مدل نسبت به مدلهای قبلی میزان جزئیات بیشتری را در نظر می گیرد.

کوکومو بر اساس تجربیات پروژه های قبلی عمل تخمین را انجام می دهد. اما یکی از مشکلات آن مشکل بودن حدس پارامترها و ضرایب مختلف این مدل به خصوص در مراحل اولیه توسعه نرم


2 Basic 3 Thousand delivered source instruction 4 Intermediate 5 Cost driver 6 Detailed 7 Advanced


8 Application composition model 9 Early design model 10 Reuse 11 Post-Architecture


افزار می باشد زیرا این پارامترها و ضرایب بسیار مبهم و نامشخص می باشند و در نتیجه این امر باعث پایین آمدن دقت تخمین تلاش یک پروژه نرم افزاری می شود. برای غلبه بر این مشکل تکنیکهای مختلفی بر روی این مدل اعمال شد تا کیفیت تخمین آن را بهبود بخشد. با توجه به بررسی هایی انجام شده، تاکنون هیچ مقاله ای به مرور و بررسی این حوزه نپرداخته و پراکندگی و تعدد زیاد تحقیقات انجام شده در این حوزه منجر به سردرگمی و دشواری بررسی کارهای انجام شده در گذشته شده است. این مقاله با بررسی 17 مقاله در فاصله بین سالهای 2003 تا 2013 قصد دارد تا چهار تکنیکی که تاکنون بر روی مدل کوکومو جهت بالا بردن دقت تخمین آن اعمال شده است را مرور کند. این چهار تکنیک شامل شبکه های عصبی هوشمند، الگوریتمهای بهینه سازی، منطق فازی و الگوریتمهای دسته بندی می باشند. ویژگی های موجود در این تکنیکها منجر به بالا رفتن دقت مدل کوکومو می شوند. به همین دلیل در سالهای اخیر اعمال تکنیکهای این چنینی بر روی مدل کوکومو و یا حتی استفاده از برخی از آنها جهت ساختن مدلهای جدید جهت تخمین تلاش، محبوبیت بسیاری پیدا کرده است16]،4،.[1

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

کوکومو و الگوریتم های بهینه سازی
کوکومو یکی از شناخته شده ترین مدل های ریاضی است که برای تخمین هزینه به کار برده می شود اما به دلیل وجود عدم قطعیت و احتمالاتی که در فرآید توسعه نرم افزار وجود دارد ضرایب استفاده شده در این مدل برای پروژه های مدرن و جدید امروزی به درستی و دقت تعیین نمی شوند بنابراین سعی شده است از الگوریتم های تکاملی مانند الگوریتم ژنتیک، الگوریتم بهینه سازی تجمعی ذرات ، شبکه های عصبی، منطق فازی که پاسخ را در محیط های غیر قطعی شبیه سازی می کنند استفاده شود. در مقالات 8]و[10 سعی شده است از الگوریتم ژنتیک برای بهینه کردن ضرایب مدل کوکومو استفاده شود

برای این کار به صورت زیر عمل شده است: برای تولید جمعیت اولیه هر یک از ضرایب مدل کوکومو به صورت یک کروموزوم در نظر گرفته می شوند که بطور تصادفی ایجاد شده اند. با استفاده از کروموزم

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید