بخشی از مقاله

چکیده.

امروزه در بسیاری از سازمان ها تولید و توسعه نرم افزار، به عنوان یک نیاز ضروری محسوب می شود تا از شکست پروژه ها جلوگیری نمایند. برای تولید یک نرم افزار خوب و مقرون به صرفه، ما باید تخمین نسبتا دقیقی از زمان و هزینه لازم برای اتمام نرم افزار داشته باشیم که این مساله نقش مهمی در بهره وری سازمان ها را دارد. معمولا پروژه های نرم افزاری در زمان تولید پیچیده اند و تخمین هزینه آنها کاری مشکل است و لذا روش هایی که تا به حال برای تخمین هزینه ارائه شده اند، تخمین درستی از هزینه های پروژه ها ارائه نمی دهند. تا بحال روشهای مختلفی برای تخمین هزینه پروژه های نرم افزاری ارایه شده است ولی هیچکدام نتوانسته اند بصورت دقیق این مسئله را حل کنند و لذا روشهای مختلفی هم در حال انجام است که ما در این مقاله از الگوریتم بهینه سازی ازدحام ذرات با ضریب اینرسی برای تخمین هزینه پروژه های نرم افزاری استفاده کرده ایم. در این مقاله از مجموعه داده های استاندارد برای بدست آوردن داده های تست و آموزش و از توابع مختلف هم برای ارزیابی عملکرد روش پیشنهادی خود استفاده کرده ایم و در نهایت نتایج را با روش پایه COCOMO و الگوریتم K نزدیکترین همسایه - KNN - مقایسه کرده ایم که الگوریتم بهینه سازی ازدحام ذرات - PSO - در اکثر موارد عملکرد بهتری داشت.

واژگان کلیدی .تخمین هزینه پروژه های نرم افزاری – الگوریتم بهینه سازی ازدحام ذرات با ضریب اینرسی – الگوریتم های بهینه سازی
. 1 مقدمه

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

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

.2 مطالعات قبلی
برای تخمین هزینه در پروژه های نرم افزاری تاکنون روش های زیادی پیشنهاد شده است که در ادامه به چند نمونه از آنها اشاره می کنیم: محققانی در[1] از ترکیب الگوریتم های pso و الگوریتم بهینه سازی chaos برای تخمین هزینه استفاده کرده اند . آن ها ابتدا با استفاده از الگوریتم pso تخمین هزینه انجام داده اند و سپس الگوریتم pso و chaos را با هم ترکیب کرده و دوباره خطای MARE را محاسبه کرده اند و در مرحله آخر از نتایج 2 مرحله بالا استفاده کرده و با انتخاب کمترین میزان MARE روش پیشنهادی خود را ارائه داده اند که خطای MARE محاسبه شده از روش COCOMO، , 0.2952 و ازالگوریتم PSO ، 0.1506 و از الگوریتم CHAOS-PSO ، 0.1153 و از روش پیشنهادی آنها ، 0.0797 می باشد. در [2] برای تخمین هزینه از الگوریتم PSO و الگوریتم K-Means ، استفاده کرده اند به این صورت که ابتدا داده ها را با استفاده از الگوریتم k-Means دسته بندی کرده اند و سپس داده های دسته بندی شده را با استفاده از الگوریتم pso ، برای مقدار دهی پارامتر های a, b , c استفاده کرده اند . خطای MARE محاسبه شده از روش COCOMO ، , 17.3564 و ازالگوریتم Cluster-pso - روش پیشنهادی آنها - ، 20.7606 می باشد.

در تحقیق دیگری[3] برای تخمین هزینه پروژههای نرمافزاری از ترکیب دو الگوریتم بهینهسازی کلونی مورچه و الگوریتم بهینهسازی آشوب استفاده کردند. این الگوریتم ترکیبی بر روی مجموعهداده NASA63 مورد بررسی و ارزیابی قرار گرفت و نتایج نشان داد که ترکیب الگوریتم بهینه سازی کلونی مورچه و الگوریتم بهینه سازی آشوب عملکرد بهتری نسبت به مدل کوکومو دارد و میزان خطای نسبی MRE کمتری نسبت به مدل کوکومو دارد. و در[4] محققان برای تخمین هزینه پروژههای نرمافزاری از الگوریتمهای مختلف دادهکاوی استفاده کردند و به مقایسه و ارزیابی الگوریتمهای دادهکاوی با مدل الگوریتمی کوکومو پرداختند. لازم بهذکر است که از مجموعهدادههای موجود در NASA63 به عنوان مجموعهداده استفاده و از معیار ارزیابی MRE برای ارزیابی مدلهای ذکرشده استفاده کردند. نتایج بدستآمده نشاندهنده این میباشد که استفاده از روشهای دادهکاوی در مقایسه با روشهای الگوریتمی دارای سرعت و دقت بیشتری میباشد. همچنین نتایج حاصله نشانداد که الگوریتمهای شبکه عصبی مصنوعی و ماشین بردار پشتیبان درمقایسه با سایر مدلها ذکرشده دارای عملکرد بهتری میباشند.

برای حل مساله تخمین هزینه پروژه های نرم افزاری آقای مالکی و همکارانش در سال [5]2014 یک مطالعه موردی در مورد روشهایی فازی که تاکنون در تخمین هزینه پروژههای نرم افزاری بکاربرده شدهاند ارائه دادهاند. براساس بررسی و تحلیلهای این محققان، روشهای فازی بسیاری با توابع عضویت مثلثی، ذوزنقهای، گاوس و تعمیم بل با مدل کوکومو میانی ترکیب شده اند. در این مدلها برای ارزیابی روشهای ترکیبی از معیارهای ارزیابی MMRE, MRE,PRED, MARE,VAF, VARE, BRE استفاده شده است. براساس گفته این محققان نتایج بدست آمده از ترکیب مدل کوکومو با منطق فازی در مقایسه با مدل کوکومو میانی دارای عملکرد بهتری میباشد. در تحقیق دیگری، برای تخمین هزینه پروژههای نرم افزاری از الگویتم بهینهسازی اجتماع ذرات چندگانه در سال 2011 استفاده شده است.[6] در این تحقیق به منظور کمینه کردن MARE از الگوریتم بهینهسازی اجتماع ذرات چندگانه برای بهینه کردن پارامترهای مدل کوکومو استفاده شده است و مدل پیشنهادی را به صورت جداگانه روی پروژههای کوچک و پروژههای بزرگ تست کردهاند. طبق نتایج بدستآمده، مقدار MARE برای پروژههای کوچک در مدل کوکومو 16.1306 و در مدل پیشنهادی 9.0143 میباشد و برای پروژههای بزرگ در مدل کوکومو 18.1548 و در مدل پیشنهادی 20.9717 میباشد. نتایج حاصله بیانگر کارایی بهتر مدل پیشنهادی در مقایسه با مدل کوکومو میباشد.

تخمین دقیق هزینه پروژههای نرمافزاری تاثیر بسزایی در موفقیت پروژهها دارد که T.R.Benala و همکارانش سعی در حل حل این مسئله با استفاده از الگوریتم Functional Link Neural Network - FLANN - و الگوریتم ژنتیک نمودند.[7] اینها در فاز آموزش از الگوریتم FLANN برای کلاس بندی مجموعه داده و از الگوریتم ژنتیک برای بهینه سازی پارامترهای هر مجموعهداده استفاده نمودهاند و در فاز آموزش الگوریتم FLANN را بکار بردهاند که پس از اتمام این مرحله نتایج حاصله با مدل کوکومو مورد مقایسه قرار گرفته است که نتایج حاصله حاکی از بهبود هزینه تخمینی بر اساس معیار MMRE، MdMRE و PRED - 0.25 - میباشد. در[8] برای تخمین هزینه پروژهای نرمافزاری از الگوریتم ترکیبی زنبور عسل مصنوعی و الگوریتم بهینهسازی آشوب و الگوریتم بهینهسازی زنبور و الگوریتم بهینه سازی آشوب استفاده نمودند. و نگاشت تنت به عنوان نگاشت آشوب با الگوریتمهای مطرحشده ترکیب نمودند. سپس نتایج حاصله از الگوریتم ترکیبی را با مدل کوکومو میانی و بر روی مجموعهداده NASA63 مقایسه نمودهاند که نتایج حاصله از مقایسه MARE را به این صورت میتوان مطرح نمود : کوکومو میانی 0/2952، الگوریتم زنبور عسل مصنوعی 0/1925، الگوریتم ترکیبی زنبور عسل مصنوعی و نگاشت تنت 0/18، الگوریتم بهینهسازی زنبور 0/2538، الگوریتم ترکیبی بهینهسازی زنبور و نگاشت تنت 0/1202و روش پیشنهادی - عامل چندگانه - 0/07 میباشد.

-3 روش پیشنهادی، بحث و بررسی
الگوریتم بهینه سازی ذرات با ضریب اینرسی برای اولین باردر سال 1995 توسط Russell C. Eberhart ،James Kennedy معرفی شده است .[9] این الگوریتم جزء مجموعه الگوریتم های هوش جمعی برای حل مسائل بهینه سازی است که مبتنی بر جمعیت است و هر عضو این جمعیت دارای دو ویژگی سرعت و مکان هستند که این ویزگی ها بسته به این که هر یک از این اعضاء در چه جهتی از فضا جابجا می شود و در چه موقعیتی از فضا قرار دارند قابل تغییر می باشند.در عین حال هر یک از این اعضاء دارای حافظه ای هستند که بهترین موقعیتی که تا به حال در فضای جستجو داشته اند را در این حافظه ثبت می کنند و حرکت بعدی را بر مبنای این موقعیت انجام می دهند. دراین الگوریتم هر ذره از 3 بردار تشکیل شده است [10] ، بردار موقعیت در فضای جستجوی D بعدی، فرمول - - 1 ، بردار بهترین موقعیتی که خود ذره تا به حال در فضای جستجوی D بعدی یافته است، فرمول - 2 - ، بردار سرعت در فضای جستجوی D بعدی، فرمول - . - 3 - 1 - - 2 - - 3 - در ابتدا بردار های سرعت و مکان به صورت random در بازه 1 - و - 0 مقدار دهی می شوند . . سپس توسط دو فرمول - - 4 و فرمول - - 5 ، سرعت و مکان هر ذره ، update می شود و ذره بر اساس مقادیر جدید مکان و سرعتش ، شروع به حرکت می کند.

در فرمول - - 4،    و N تعداد کل Particle ها ،    d= وD تعداد ابعاد مساله،    k= وIter تعداد دفعات تکرار ،    ,  به صورت random بین 1 - و - 0 مقدار دهی می شوند ،    و    مقداری ثابت در بازه 2 - و - 0 و wمقداری ثابت در بازه 0.9 - و - 0.4 انتخاب می شوند.    مقدار سرعت particle i در تکرار k ام ودر بعد    d ام ،    بهترین موقعیتی کهparticle i در بعد  d ام و درتکرار    k ام تا به حال    تجربه کرده است ،    بهترین موقعیتی که کل  particle ها در تکرار k ام و در بعد dام ، تا به حال تجربه کرده اند.در فرمول - 5 - ،    موقعیت  particle i    در تکرار k ام و در بعد    d ام . شکل - 1 - ، فلوچارت روش پیشنهادیرا نشان می دهد.                            

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