A Novel Method based on the Cocomo model to increase the accuracy of software projects effort estimates
Subject Areas : Generalmahdieh salari 1 , vahid khatibi 2 , amid khatibi 3
1 - the secretary
2 - استادیار دانشگاه آزاد اسلامی بردسیر
3 - استادیار دانشگاه آزاد اسلامی بردسیر
Keywords: Cocomo, Cost estimation, Cuckoo algorithm, neural network,
Abstract :
It is regarded as a crucial task in a software project to estimate the criteria, and effort estimation in the primary stages of software development is thus one of the most important challenges involved in management of software projects. Incorrect estimation can lead the project to failure. It is therefore a major task in efficient development of software projects to estimate software costs accurately. Therefore, two methods were presented in this research for effort estimation in software projects, where attempts were made to provide a way to increase accuracy through analysis of stimuli and application of metaheuristic algorithms in combination with neural networks. The first method examined the effect of the cuckoo search algorithm in optimization of the estimation coefficients in the COCOMO model, and the second method was presented as a combination of neural networks and the cuckoo search optimization algorithm to increase the accuracy of effort estimation in software development. The results obtained on two real-world datasets demonstrated the proper efficiency of the proposed methods as compared to that of similar methods.
1. Huang, G., "Cost Modeling Based on Support Vector Regression for Complex roducts During the Early Design Phases". Requirements for the Degree of Doctor of Philosophy in Industrial and Systems Engineering, 2007.
2. Khatibi, v. and D.N.A. awawi, Software Cost Estimation Methods: A Review. Journal of Emerging Trends in Computing and Information Sciences, 2011 2: p. 21-29.
3. Abdullah, T., et al., ANALYSIS OF SOFTWARE COST ESTIMATION MODELS. IJEIR, 2012 1: p. 206-212.
4. Binish Zahra, S. and M. Nazir, A Review of Comparison among Software Estimation Techniques. Bahria University Journal of Information & Communication Technology, 2012 5: p. 39-45.
5. Boehm, B., "Software Engineering Economics". IEEE Transaction on Software Engineering, vol. SE-10, 1984 p. 4-21.
6. Lin, J.-C., et al., Using Computing Intelligence Techniques to Estimate Software Effort. International Journal of Software Engineering & Applications, 2013 4(1): p. 43.
7. khatibi bardsiri, v. and m. dorosti, An Improved COCOMO based Model to Estimate the Effort of Software Projects. 2016.
8. Sadeghi, B., et al., A Novel ICA-based Estimator for Software Cost Estimation. Journal of Advances in Computer Engineering and Technology, 2015. 1(4): p. 15-24.
9. Venkataiah, V., et al., Application of ant colony optimization techniques to predict software cost estimation, in Computer Communication, Networking and Internet Security. 2017, Springer. p. 315-325.
10. Shahpar, Z., et al., Improvement of effort estimation accuracy in software projects using a feature selection approach. Journal of Advances in Computer Engineering and Technology, 2016. 2(4): p. 31-38.
11. khatibi bardsiri, A., S.m. hashemi, and M. Razzazi, A Novel Model for Software Services Development Effort Estimation. Journal of Modeling in Engineering, 2017. 15(49): p. 245-261.
12. Khatibi, E. and V. Khatibi Bardsiri, An Improved Algorithmic Method for Software Development Effort Estimation. Journal of Advances in Computer Research, 2018. 9(1): p. 41-49.
13. Khatibi Bardsiri, A., A new combinatorial framework for software services development effort estimation. International Journal of Computers and Applications, 2018. 40(1): p. 14-24.
14. Kumari, S. and S. Pushkar. Software Cost Estimation Using Cuckoo Search. in Advances in Computational Intelligence. 2017. Singapore: Springer Singapore.
15. Puspaningrum, A. and R. Sarno, A Hybrid Cuckoo Optimization and Harmony Search Algorithm for Software Cost Estimation. Procedia Computer Science, 2017. 124: p. 461-469.
16. Çelik, E., et al. Software test automation and a sample practice for an enterprise business software. in Computer Science and Engineering (UBMK), 2017 International Conference on. 2017. IEEE.
17. Ebrahimpour, N., F. Soleimanian Gharehchopogh, and Z. Abbasi Khalifehlou, New Approach with Hybrid of Artificial Neural Network and Ant Colony Optimization in Software Cost Estimation. Journal of Advances in Computer Research, 2016. 7(4): p. 1-12.
18. Wani, Z.H. and S. Quadri. Artificial Bee Colony-Trained Functional Link Artificial Neural Network Model for Software Cost Estimation. in Proceedings of Fifth International Conference on Soft Computing for Problem Solving. 2016. Springer.
19. Chhabra, S. and H. Singh, Optimizing design parameters of fuzzy model based COCOMO using genetic algorithms. International Journal of Information Technology, 2019.
20. Desai, V.S. and R. Mohanty. ANN-Cuckoo Optimization Technique to Predict Software Cost Estimation. in 2018 Conference on Information and Communication Technology (CICT). 2018. IEEE.
21. Khazaiepoor, M., A. Khatibi Bardsiri, and F. Keynia, A Hybrid Approach for Software Development Effort Estimation using Neural networks, Genetic Algorithm, Multiple Linear Regression and Imperialist Competitive Algorithm. International Journal of Nonlinear Analysis and Applications, 2020. 11(1): p. 207-224.
22. Boehm, B., C. Abts, and S. Chulani, Software development cost estimation approaches—A survey. Annals of software engineering, 2000 10(1-4): p. 177-205.
23. Stutzke, R.D. and M. Crosstalk, Software estimating technology: A survey. 1997: Los. Alamitos, CA: IEEE Computer Society Press.
24. جهانشاهی, س., و. خطیبی بردسیری, و همکاران, کاربرد روشهای محاسبات نرم در بهبود عملکرد مدل کوکومو بمنظورتخمین هزینه پروژه های نرم افزار. همایش ملی مهندسی کامپیوتر و فناوری اطلاعات, اسفند 1392
25. Rajabioun, R., Cuckoo optimization algorithm. Applied soft computing, 2011. 11(8): p. 5508-5518.
26. Karaboga, D., B. Akay, and C. Ozturk, Artificial bee colony (ABC) optimization algorithm for training feed-forward neural networks. MDAI, 2007. 7: p. 318-319.
27. Hippert, H.S. and J.W. Taylor, An evaluation of Bayesian techniques for controlling model complexity and selecting inputs in a neural network for short-term load forecasting. Neural networks, 2010. 23(3): p. 386-395.
28. Khatibi, E. Investigating the effect of software project type on accuracy of software development effort estimation in COCOMO model. in Fourth International Conference on Machine Vision (ICMV 11). 2011 International Society for Optics and Photonics.
29. Khatibi, V. and D.N. Jawawi, Software cost estimation methods: A review 1. 2011
30. Bardsiri, V.K., et al., LMES: A localized multi-estimator model to estimate software development effort. Engineering Applications of Artificial Intelligence, 2013. 26(10): p. 2624-2640.
31. Pandey, M., R. Litoriya, and P. Pandey, Validation of existing software effort estimation techniques in context with mobile software applications. Wireless Personal Communications, 2020. 110(4): p. 1659-1677.
ارائه روشی جدید مبتنی بر مدل کوکومو بمنظور افزایش دقت تخمین تلاش در پروژه های نرم افزاری
دو فصلنامه علمي فناوري اطلاعات و ارتباطات ایران | سال دوازدهم، شمارههاي 45 و 46، پاییز و زمستان1399 صص: 185_ 200 |
|
ارائه روشی جدید مبتنی بر مدل کوکومو بمنظور افزایش دقت تخمین تلاش در پروژه های نرم افزاری
مهدیه سالاری* وحید خطیبی بردسیری** عمید خطیبی بردسیری**
*گروه علمی مهندسی کامپیوتر، موسسه آموزش عالی غیرانتفاعی غیر دولتی جاوید
** استادیار گروه مهندسی کامپیوتر، دانشگاه آزاد اسلامی، واحد بردسیر
تاریخ دریافت: 05/01/1399 تاریخ پذیرش:21/09/1399
نوع مقاله : پژوهشی
چکیده
تخمین و برآورد معیارها یک فعالیت حیاتی در پروژههای نرمافزاری محسوب میشود. بهطوریکه تخمین تلاش در مراحل اولیه توسعه نرمافزار، یکی از مهمترین چالشهای مدیریت پروژههای نرمافزاری است. تخمین نادرست میتواند منجر به شکست پروژه گردد. لذا یکی از فعالیتهای اصلی و کلیدی در توسعه مؤثر و کارآمد پروژههای نرمافزاری تخمین دقیق هزینههای نرمافزار است. ازاینرو در این پژوهش دو روش بهمنظور تخمین تلاش در پروژههای نرمافزاری ارائه شده است، که در این روش ها سعی شده با تجزیهوتحلیل محرکها و استفاده از الگوریتمهای فرا ابتکاری و ترکیب با شبکه عصبی راهی برای افزایش دقت در تخمین تلاش پروژه های نرم افزاری ایجاد شود. روش اول تأثیر الگوریتم فاخته جهت بهینهسازی ضرایب تخمین مدل کوکومو و روش دوم به صورت ترکیبی از شبکه عصبی و الگوریتم بهینهسازی فا خته جهت افزایش دقت برآورد تلاش توسعه نرمافزار ارائهشده است. نتایج بدست آمده روی دو پایگاه داده واقعی نشان دهنده عملکرد مطلوب روش ارائه شده در مقایسه با سایر روشهاست.
واژگان كليدي: الگوریتم فاخته، تخمین هزینه، شبکه عصبی، کوکومو.
1- مقدمه
تخمین زمان و هزینه نرمافزاری از فعالیتهای علمی موردنیاز درزمینه مدیریت پروژههای نرمافزاری محسوب میشود. دقت تخمین نرمافزار دارای اهمیت بالایی است، زیرا میتواند به طبقهبندی و اولویتبندی پروژه بهمنظور معین کردن منابعی که در آینده موردنیاز پروژه خواهند بود،کمک به سزایی کند.
نویسنده مسئول: مهدیه سالاریmahdieh.salari60@gmail.com
یکی از روشهای تخمین هزینههای نرمافزار، پیشگویی میزان تلاش لازم برای ساخت نرمافزار و زمان موردنیاز جهت توسعهی آن است؛ که به شکل ساده میتوان تلاش لازم را برحسب تعداد افرادی که در روز/هفته/ماه و یا حتی سال بر روی پروژه کار میکنند را تخمین زد[1].مدلهای تخمین زمان و هزینه نرمافزار را به دودسته الگوریتمی و غیر الگوریتمی تقسیم میکند[2-4]. مدلهای الگوریتمی مدلهایی هستند که بر مدلهای ریاضی استوارند و ازنظر محاسبات ریاضی پیچیده میباشند. این مدلها تلاش میکنند تا
ارتباطی بین تلاش و یک یا دو مشخصه پروژه برقرار کنند. شکل کلی این مدلها بهصورت رگرسیون خطی یا غیرخطی میباشد. در اینگونه مدلها میزان کار موردنیاز برای انجام پروژه بهصورت تابعی از متغیرهای متعدد تعریف میشود این متغیرها درواقع فاکتورها یا عوامل هزینه هستند که بهصورت خطی1، ضربی و نمایی در محاسبه زمان و هزینه تأثیر میگذارند. معادله تخمین استفادهشده به شکل زیر است.
(1) Effort = f(x1, x2, …,xn)
که در آن x1 تا xn بردار فاکتورهای هزینه است. از سوی دیگر به دلیل عدم توانایی روشهای الگوریتمی در مهار کردن رفتار پویای پروژههای نرمافزاری و نبود اطلاعات کامل از یک پروژه در مراحل اولیه، متدهای غیر الگوریتمی ارائه شدند.که این متدها بر اساس تجزیهوتحلیل پروژههای نرمافزاری بناشدهاند. در این مقاله با تمرکز بر روش کوکومو به عنوان متد پایه و الگوریتم بهینه سازی فاخته و شبکه عصبی به عنوان ابزار کمکی، يک مدل پویا برای تخمین مقدار تلاش ارائه خواهیم کرد. ادامۀ این مقاله در پنج قسمت سازماندهی شده است: بخش دوم به مرور کارهای مرتبط میپردازد. در بخش سه به ترتیب مدل کوکومو، الگوریتم فاخته و شبکه عصبی و روش ارائه شده آورده شده و بخش چهارم نیز به ترتیب نحوۀ ارزیابی و نتایج به دست آمده را نشان میدهند. در نهایت بخش پنجم به نتیجهگیری و پیشنهاد کارهای آینده اختصاص دارد.
2- پیشینه پژوهش
جهت تخمین تلاش نرمافزار، مدلهای مختلفی معرفیشده است که کوکومو2 یکی از مشهورترین آنها میباشد. کوکوموی ۱ یاکوکوموی 81 یک مدل مبتنی بر رگرسیون میباشد که در سال 1981 توسط بوهم پیشنهاد شد[5]این مدل جزو دسته مدلهای محسوب میشود که میتواند علاوه بر میزان تلاش،میزان زمانبندی یک پروژه نرمافزاری را نیز محاسبه کند.
در مدل تخمین تلاش ترکیبی، بر پایه ترکیب تکنیکهای هوش محاسباتی، مدل کوکومو و الگوریتم بهینهسازی ازدحام ذرات نتایج آزمایش نشان داد که ترکیب الگوریتمهای خوشهبندی با الگوریتم بهینهسازی ازدحام ذرات در ارزیابی
مدل تخمین کوکومو نتایج دقیق تری در مقایسه با مدل کوکوموی اولیه با دو معیار عملکرد متوسط شدت خطای نسبی 26/1 و درصد پیشبینی 54/1 را ایجاد نموده است. همچنین این مدل در مقایسه با شبکه عصبی مصنوعی، شبکه عصبی فازی 3 و فازی تجزیهوتحلیل رابطهای گری 4 نتایج بهتری را ارائه داده است[6].در مقاله[7] نسخه جدیدی از مدل کوکومو با تکیهبر انتخاب محرکهای هزینه و بهینهسازی ضرایب با استفاده از الگوریتم کلونی زنبور پرداخته است .درروش ارائه شده ضرایب کارآمدتری نسبت به حالت اولیه مدل کوکومو بهدستآمده و انتخاب بهترین ضرایب بالاترین هدف این روش میباشد و نتایج شبیهسازی نمایانگر این برتری میباشد.درمقاله دیگری از الگوریتم رقابت استعماری برای تخمین هزینه نرمافزاراستفاده شده است که روی پایگاه داده کوکومو 81 صورت گرفت. نتایج تجربی نشان میدهند که در حالت کوکوموی مجزا، الگوریتم رقابت استعماری طوری پارامترهای مدل کوکومو 81 را مقداردهی میکند که MMRE برابر با 0.2863 و PRED(0.25) برابر با 0.3571 میگردد. واضح است که در مقایسه با مدل کوکومو 81 که MMRE برابر با 0.3180 و PRED(0.25) برابر با 0.3492 میباشد، الگوریتم رقابت استعماری توانسته است، با دقت بیشتری عملیات تخمین هزینه را انجام دهد [8]. در یک مقاله، ACOT برای پیشبینی برآورد هزینه نرمافزار با استفاده از دادههای تخمین تلاش مختلف، استفاده میکند. در طول مطالعه، اعتبار سنجی متقابل ده برابر را در مجموعه دادههای ISBSG و اعتبار سنجی متقابل سهگانه در مجموعه دادههای IBMDP و COCOMO 81 انجامشده است؛ و عملکردهای ACOT را با PSO، GP، TREENET، MLP، DENFIS، MARS و SVR را مقایسه کردند نتایج تجربی با توجه به ارزش 5RMSE بهتر از سایر تکنیکهای مستقل بوده و ازاینرو، نتیجه میگیریم که پس از آزمایشهای گستردهای که مدل ACOT نسبتاً بهترین پیشبینی کننده در میان تمام تکنیکهای دیگر است[9].در مقاله ی دیگر الگوریتم ژنتیک برای انتخاب ویژگی درزمینه تخمین تلاشهای پروژه نرمافزار مورداستفاده قرارگرفته است این تکنیک بر روی مجموعه دادههای شناختهشده ماکسول،کوکومو81 و مجموعه داده Desharnais آزمایششده است. نتایج پیادهسازی نشان میدهد که زیرمجموعه حاصل، در مقایسه با مجموعه دادههای اصلی، نتیجههای بهتر را ازلحاظ دقت برآورد تلاش به ارمغان آورده است. این مقاله نشان داد که الگوریتمهای ژنتیک روشهای ایده آل برای انتخاب یک زیرمجموعه از ویژگیها و بهبود دقت تخمینی تلاش هستند[10]. یکی از مشهورترین روشهای تخمین تلاش، استفاده از قیاس و مقایسه یک سرویس با موارد مشابه قبلی است. متأسفانه روش قیاس بدون استفاده از وزنهای مناسب و ارزشدهی به ویژگیهای یک سرویس، نتایج خوبی نخواهد داشت. بنابراین در این مقاله سعی شده تا با ترکیب روش قیاس و الگوریتم تکامل تفاضلی یک مدل کارا و قابل اطمینان برای برآورد تلاش لازم جهت توسعه سرویسهای نرم افزاری ایجاد شود. روش ارائه شده بر روی دادههای واقعی مستخرج از پایگاه داده ISBSG و دو پایگاه داده مصنوعی مورد ارزیابی قرار گرفت و نتایج با روشهای مشهور تخمین تلاش مقایسه گردید؛ مقادیر به دست آمده برای مخازن دادهای ISBSG6، همگن و ناهمگن به ترتیب و به طور میانگین بهبود 28%، 34% و 19% را نشان میداد[11].در مقاله[12]، یک مدل ترکیبی برای تخمینی تلاش های پروژه های نرم افزاری پیشنهاد شده است. روش ارائه شده ترکیبی از الگوریتم بهینه سازی ذرات و یک روش رگرسیون خطی است که در آن نتایج ضرایب بهینه انجام می شود. علاوه بر این، معادله برآورد با استفاده از اندازه پروژه اندازه گیری می شود به طوری که دقیق ترین برآورد به دست آمده است. مجموعه داده ای نسبتا واقعی برای ارزیابی عملکرد مدل پیشنهاد شده و نتایج با مدل های دیگر مقایسه می شود. نتايج به دست آمده نشان داد كه مدل هيبريد پيشنهادي مي تواند صحت برآورد ها را بهبود بخشد. در مقاله [13]یک روش جدید بر اساس ترکیبی از مدل های برآورد مختلف و ریاضی پاسخ خود را ارائه شده که این روش جدید در دو داده مجموعه کاملا متفاوت واقعی مورد بررسی قرار گرفت. در مقاله [14]یک مدل جدید برای برآورد هزینه های نرم افزاری ارائه می دهد که با استفاده از الگوریتم جستجوی کوکو (CS) برای پیدا کردن پارامتر مطلوب مدل تخمینی هزینه است. روش ارائه شده در مجموعه داده های پروژه نرم افزار ناسا مورد آزمایش قرار گرفته است. نتایج تجربی نشان می دهد که روش ارائه شده عملکرد نتایج برآورد شده با توجه به MMRE (میانگین خطای نسبی) و PRED (پیش بینی) بهبود یافته است . در مقاله[15] یک مدل ترکیبی از الگوریتم جستجوی کوکو و الگوریتم جستجوی هارمونی برای بهینه سازی چهار ضریب مدل کوکومو2 برای برآورد مطلوب پیشنهاد شده است. رویکرد پیشنهادی در مجموعه داده های ناسا 93 و با استفاده از مقادیر خطای نسبی [16] و اندازه خطای نسبی (MMRE) مورد ارزیابی قرار گرفته است. نتایج تجربی نشان می دهد که روش ارائه شده در برآورد تلاش و زمان توسعه پروژه نرم افزاری نسبت به کوکومو2 و الگوریتم جستجوی کوکو موثرتر است.امروزه برآورد هزینه نرمافزار (SCE) با تکنیکهای یادگیری ماشین عملکرد بیشتری نسبت به سایر تکنیکهای سنتی دارند در این مقاله، یک مدل ترکیبی جدید از چندین مدل ارائهشده که مدلها عبارتاند از چندلایه پرسپترون (MLP)، شبکه عصبی مصنوعی (ANN) و بهینه سازی کلونی مورچه 7 (ACO) و برای بالا بردن دقت در برآورد هزینه نرمافزار به نام بهینهسازی کلونی مورچه چندلایه پرسپترون (MLPACO) نامیده میشود. در این مقاله با استفاده از الگوریتم کلونی مورچه (ACO) از بین ویژگیهای پروژههای نرمافزاری ویژگیهایی که باعث افزایش دقت تخمین میشود فیلتر میشوند و با استفاده از شبکه عصبی چندلایه پرسپترون بهینهسازی تخمین انجام میشود. نتایج نشان میدهد که در این رویکرد جدید افزایش دقت برای بیش از 80% موارد بهتر از الگوریتم سازنده هزینه کوکومو میباشد همچنین نتایج الگوریتم پیشنهادشده نشان میدهد که میانگین مقدار خطای نسبی (MMRE) در الگوریتم پیشنهادشده است پایینتر از مدل کوکومو میباشد[17].در پژوهشی دیگر رویکردی پیشنهاد شد که شامل شبکه عصبی مصنوعی عملکردی و الگوریتم کلونی زنبورعسل مصنوعی8 که بهعنوان الگوریتم آموزش شبکه و برای ارائه دقیقترین تخمین هزینه نرمافزار استفادهشده است. FLANN پیچیدگی محاسباتی را در شبکه عصبی چندلایه کاهش میدهد و لایه پنهان ندارد و بنابراین یادگیری سریعتری دارد؛ و پس از ارزیابی نتایج نشان دادهشده که آموزش FLANN با الگوریتم ABC برای رفع مسئله هزینه نرمافزار بسیار بهبودیافته است و علاوه بر این مدل به دلیل نداشتن لایه پنهان و محاسبات کمتر در طول آموزش ازلحاظ ساختاری بسیار ساده میباشد؛ و یکی از اهداف مهم این تحقیق این است که آموزش FLANN با یک برنامه آموزش بهبودیافته جایگزین الگوریتم یادگیری استاندارد BP برای ارزیابی هزینه دقیق توسعه نرمافزار شده است و مزیت عمده روش ارائه شده این است که پیچیدگی محاسباتی را بدون هیچگونه نقص در عملکرد آن برطرف میکند. نتايج بهدستآمده از روش پيشنهادي با استفاده از معيارهايي مانند MRE، MMRE و MdMRE ارزیابیشده است با توجه به نتایج بهدستآمده میتوان گفت که FLANN دقت تخمین هزینه را افزایش میدهد و بهویژه هنگامیکه این الگوریتم با الگوریتم ABC آموزش داده میشود دقت هزینه برآورد شده بسیار بهتر میشود[18]. درمقاله[19]، اجرای مدل سازی غیر الگوریتمی با استفاده از تکنیک های محاسبات نرم مانند منطق فازی و الگوریتم های ژنتیکی انجام می شود. روش فازی برای طراحی یک مدل فازی برای هر درایور هزینه پیاده سازی شده است. مدل فازی دارای تعریف نادرست و مبهم از محدوده ورودی درایورهای هزینه است. انتخاب پارامترهای مشخص کننده مجموعه های فازی در مدل فازی پیشنهادی با استفاده از الگوریتم های ژنتیکی بیشتر بهینه می شود. مدل ارائه شده بر روی مجموعه داده های COCOMO NASA و مجموعه داده COCOMO NASA2 با استفاده از MATLAB آزمایش شده است. بهبود عملکرد مدل بهینه سازی شده پیشنهادی از نظر میانگین بزرگی خطای نسبی (MMRE) و Pred (25٪) اندازه گیری می شود. در مقاله[20] شبکه عصبی مصنوعی با استفاده از الگوریتم بهینه سازی فاخته برای پیش بینی برآورد هزینه نرم افزار آموزش داده شده است. هدف اصلی در این مقاله استفاده از یک روش یادگیری جدید در شبکه عصبی برای پیش بینی بهتر تخمین پروژه های نرم افزاری می باشد. روش ارائه شده با مجموعه داده ISBSG تأیید شده و نتایج با مدلهای موجود مقایسه شده است. نتایج نشان داده شده از نظر خطای میانگین مربع (RMSE) و اندازه متوسط خطای نسبی (MMRE) است.در مقاله [21]، یک رویکرد ترکیبی سه فاز برای غلبه بر مشکل تخمین هزینه ارائه شده است. در مرحله اول ، ویژگی ها با استفاده از ترکیبی از الگوریتم ژنتیکی و شبکه عصبی پرسپترون انتخاب می شوند. در مرحله دوم ، عوامل ضربه با استفاده از روش های رگرسیون خطی چندگانه که به عنوان ضرایب تأثیر برای هر ویژگی عمل می کنند ، به هر ویژگی انتخابی مرتبط می شوند. در مرحله آخر و سوم ، وزن المان ها توسط الگوریتم رقابتی امپریالیست بهینه می شوند. برای مقایسه روش ارائه شده برای برآورد تلاش با مدلهای پیشرفته ، سه مجموعه داده به عنوان معیار ، یعنی COCOMO ، Maxwell و Albrecht انتخاب شده اند. مجموعه داده ها استاندارد و در دسترس عموم برای ارزیابی هستند. آزمایش ها نتایج امیدوار کننده را نشان می دهد و عملکرد متوسط با الگوی پیشنهادی معیار عملکرد MMRE در مجموعه داده ها به ترتیب 23٪ ، 38٪ و 35٪ بهبود یافته است.
3- روش شناسی پژوهش
3-1- کوکومو
واژه کوکومو بهطور اختصار از دو حرف اول کلمات جملهی Constructive Cost Modle که به معنای مدل هزینه سودمند است گرفتهشده است. این مدل ابتدا در سال 1970 توسط بری بوهم ارائه و بعداً در سال 1981 در کتاب ایشان به نام اقتصاد مهندسی نرمافزار چاپ و در اختیار عموم قرار گرفت [22, 23] این مدل در سه سطح پایه، متوسط، با جزئیات ارائهشده است که در ادامه به تحلیل هر یک از این 3 سطح میپردازیم.
· کوکومو پایه 9
کوکومو پایه میزان تلاش 10 (و هزینه) موردنیاز جهت توسعه نرمافزار را بهصورت تابعی از اندازهی برنامه محاسبه میکند. اندازه برنامه برآوردی از تعداد خطوط برنامه بر پایه 1000 است که ان را بهاختصار KLOC و یا SLOC مینامند.
معادله کوکومو پایه بهطورکلی:
تلاش کاربردی (بر اساس فرد در ماه)
(2) Effort Applied (E) = a (KLOC)b
· کوکومو متوسط
کوکومو متوسط میزان تلاش (و هزینه) موردنیاز جهت توسعه نرمافزار را بهصورت تابعی از اندازهی برنامه و مجموعهای از محرکها که شامل ارزیابی محصول، سختافزار، کارکنان و ویژگیهای پروژه هستند را محاسبه میکند. این محرکها هر یک دارای چند سطح با مقادیر مخصوص به خود هستند.
هر یک از این 15 ویژگی، از خیلی کم تا بسیار زیاد در 6 سطح امتیازدهی میشوند (بر اساس ارزش و یا درجه اهمیت). با استفاده از افزایندهها میتوان میزان مقیاسها و اندازهها را در جدول زیر تغییر داد. محصول همهی این افزایندهها منجر به فاکتور تعدیل و تنظیم تلاش میشود (EAF). ارزشهای بهدستآمده معمولاً مقداری بین 0.9 تا 1.4 میباشند.
فرمول محاسبه تلاش کوکومو متوسط
(3) E=ai(KloC)(bi)(EAF)
برای محاسبه زمان توسعه و افراد موردنیاز میتوان از همان فرمولهای کوکومو پایه استفاده کرد.
· کوکومو با جزئیات
این مدل از کوکومو دارای تمامی ویژگیهای مدل کوکومو متوسط بهاضافه یک ارزیابی از تأثیر محرکهای هزینه در هر مرحله از فرایند مهندسی نرمافزار است.
کوکومو با جزئیات میزان تلاش [24] موردنیاز جهت توسعه نرمافزار را بهصورت تابعی از اندازهی برنامه و مجموعهای از محرکها بسته به چرخه حیات نرمافزار به دست میاورد.
3-2- الگوریتم فاخته
الگوریتم بهینهسازی فاخته11 (COA ) همانند سایر الگوریتمهای تکاملی هم با یک جمعیت اولیه کار خود را شروع میکند. جمعیتی متشکل از فاختهها. این جمعیت از فاختهها تعدادی تخمدارند که آنها را در لانه تعدادی پرندهی میزبان خواهند گذاشت. تعدادی از این تخمها که شباهت بیشتری به تخمهای پرنده میزبان دارند شانس بیشتری برای رشد و تبدیلشدن به فاخته بالغ خواهند داشت. سایر تخمها توسط پرنده میزبان شناساییشده و از بین میروند. میزان تخمهای رشد کرده مناسب بودن لانههای آن منطقه را نشان میدهند. هرچه تخمهای بیشتری در یک ناحیه قادر به زیست باشند و نجات یابند به همان اندازه سود (تمایل) بیشتری به آن منطقه اختصاص مییابد؛ بنابراین موقعیتی که در آن بیشترین تعداد تخمها نجات یابند پارامتری خواهد بود که COA قصد بهینهسازی آن را دارد[25].
فاختهها برای بیشینه کردن نجات تخمهای خود به دنبال بهترین منطقه میگردند. پسازآنکه جوجهها از تخم درآمدند و به فاخته بالغ تبدیل شدند، جوامع و گروههایی تشکیل میدهند. هر گروه منطقه سکونت خود را برای زیست دارد. بهترین منطقه سکونت تمام گروهها مقصد بعدی فاختهها در سایر گروهها خواهد بود. تمام گروهها به سمت بهترین منطقه موجود فعلی مهاجرت میکنند. هر گروه در منطقهای نزدیک بهترین موقعیت فعلی ساکن میشود. با در نظر گرفتن تعداد تخمی که هر فاخته خواهد گذاشت و همچنین فاصله فاختهها از منطقه بهینه فعلی برای سکونت تعدادی شعاع تخمگذاری محاسبهشده و شکل میگیرد. سپس فاختهها شروع به تخمگذاری تصادفی در لانههایی داخلی شعاع تخمگذاری خود میکنند. این پروسه تا رسیدن به بهترین محلی برای تخمگذاری (منطقه با بیشترین سود) ادامه مییابد. این محلی بهینه جایی است که بیشترین تعداد فاختهها در آن گرد میآیند.
حل یک مسئله بهینهسازی لازم است تا مقادیر متغیرهای مسئله به فرم یک آرایه شکل گیرند. در GA و PSO این آرایهها بانامهای «کروموزوم» و «موقعیت ذرات» مشخص میشوند. ولی در الگوریتم بهینهسازی فاخته این آرایه habitat یا «محل سکونت» نام دارند.
در یک مسئله بهینهسازی Nvar بعدی یک habitat یک آرایه 1*Nvar خواهد بود که موقعیت فعلی زندگی فاختهها را نشان میدهد. این آرایه به شکل زیر تعریف میشود:
(4) Habitat =[x1,x2,..., xvar]
میزان مناسب بودن (مقدار سود) در habitat فعلی با ارزیابی تابع سود (fp) در habitat به دست میآید؛ بنابراین:
(5) (Profit = fp(habitat) = f(x1,x2,..., xvar)
همانطور که دیده میشود COA الگوریتمی است که تابع سود را ماکزیمم میکند. برای استفاده از COA برای حل مسائل کمینهسازی کافی است یک علامت منفی در تابع هزینه ضرب کنیم.دیگر عادت هر فاخته حقیقی این است که آنها در یک دامنه مشخص تخمهای خود را میگذارند که با آن حداکثر دامنه تخمگذاری 12 (ELR) گفته میشود. در یک مسئله بهینهسازی هر متغیر دارای حد بالا Varhi و حد پایین Varlow است که هر ELR با استفاده از این حدود قابلتعریف خواهد بود. ELR متناسب است با تعداد کل تخمها، تعداد تخمهای فعلی فاخته و همچنین حد بالا و پایین متغیرهای مسئله؛ بنابراین ELR بهصورت رابطه 6 تعریف میشود:
(6)
با توجه به تعداد تخم هر فاخته یک ELR برای آن مشخص میشود و سپس تخمگذاری شروع میگردد. فرمول عملگر مهاجرت در الگوریتم بهینهسازی فاخته بهصورت رابطه است[25]:
(7)
XNextHabitat=XcurrentHabitat+F(XGoalPoint-XcurrentHabitat)
F پارامتری است که باعث انحراف میشود.
3-3- شبکه عصبی
شبکه های عصبی یکی از کارآمد ترین و گسترده ترین سیستم های هوشمند به شمار می آیند. شبكه هاي عصبی مصنوعی درواقع تقليد بسيار ساده اي از رفتار سلول هاي بيولوژيكي مي باشد. اجزاي تشكيل دهنده شبكه هاي عصبي مصنوعي شامل نرون ها و لايه ها مي باشند. در حالت كلي يك شبكه عصبي از ٣ لايه تشکیلشده است شکل (1): لايه ورودي كه اطلاعات را دريافت مي كند، لايه مياني يا پنهان كه خود مي تواند شامل چندين لايه باشد، يكي از مهمترین پردازشگرهاي اطلاعات است و لایه خروجي كه اين پردازش را دريافت كرده و خروجي نهايي را نتيجه مي دهد. شکل (1) مدل ساده اي از يك سلول شبكه عصبي را كه نرون ناميده ميشود نشان مي دهد. بدنه اين سلول از دو بخش تشکیلشده است. بخش اول تابع تركيب نام دارد كه تمام ورودي ها را جمع مي كند و نتيجه را بهصورت يك مجموع وزن دار نشان مي دهد.طبق اين شكل براي هر نرون i تمام ورودي هاي Ij توسط فاكتور Wj وزن دار مي شوند. سپس هر ورودي در وزن مربوطه ضرب شده و حاصلضربها باهم جمع شده تا مجموع وزن دار ui را نتيجه دهند:
شکل 1. سلول ولایه های یک شبکه عصبی
شکل (1). مدل ساده يك شبكه عصبی مصنوعی كه از یکلایه ورودي، یکلایه مياني و یکلایه پنهان تشکیلشده است. شکل (1) مدل رياضي از فرايند پردازش در يك نرون.
(8 )
بخش دوم تابع انتقال يا تابع تحريک نام دارد. وقتي مجموع وزندار به حد آستانهاي رسيد، تابع انتقال، تحریکشده تا خروجي را نتيجه دهد. توابع انتقال انواع مختلفي دارند که برخي از آنها عبارتاند از: توابع انتقال.Pureline، Tansig و Logsig.
معمولاً در يک سلول شبکه عصبي يک ورودي اضافي نيز وجود دارد که باياس ناميده مي شود. نقش باياس افزايش يا کاهش مجموع وزندار است[26] باياس بهعنوان يك جبرانکننده عمل مي کند و به شبکه کمک مي کند تا الگوهاي موجود را بهتر بشناسد.يادگيري در يک شبکه عصبی مصنوعی توسط تعديل (کموزیاد کردن) وزن ها صورت مي گيرد [27] الگوريتمهاي آموزشي به دودسته نظارتي و غیر نظارتی تقسيم بندي ميشوند. الگوريتم پس انتشار خطا نوعي از يادگيري نظارتي است که طي آن وروديها وارد شبکه ميشوند. وقتیکه خروجي مطلوب به دست آيد، خطاي محاسبهشده بهصورت پسرو در شبکه منتشر ميشود تا وزنها با توجه به آن تعديل شوند. وقتیکه خروجي محاسبهشده با خروجي واقعي تطابق خوبي داشته باشد، آموزش متوقف ميشود. استفاده از شبکه عصبی در مهندسی هزینه و تخمین هزینه از سال 1993 شروعشده و نتایج مطلوبی را به همراه داشته است شبکه عصبی مصنوعی، معمول ترین روش مبتنی بر یادگیری مورداستفاده برای تخمین تلاش توسعه نرم افزار است؛ بنابراین روش ارائه شده بر اساس شبکه عصبی معرفیشده است.
3-4- روش های ارائه شده
در توسعه نرمافزار ریسکهای بالایی از خطا در تخمین هزینه پروژهها با استفاده از مدل الگوریتمی کوکومو وجود دارد. در مدل های الگوریتمی مقادیر ثابت تخمین هزینه مقادیر تعریفشدهای نیستند و بنابراین پیدا کردن پاسخهای قابلاطمینان آسان نیست. روش ارائه شده در این پژوهش ترکیبی از الگوریتم فاخته وشبکه عصبی و مدل کوکومو)پایه( را جهت بهبود تخمین هزینه به کار گرفته است. دو روش ارائه شده عبارتاند از: در روش اول(COA)، الگوریتم فاخته بهترین مقادیر را برای ضرایب a و b یافته و در مدل کوکومو) پایه) جایگزین مینماید. در روش دوم(ANN-COA) الگوریتم فاخته از بین 15 محرک هزینه مدل کوکومو محرکهای مؤثرتر را پیشنهاد داده و بهعنوان ورودی به همراه مقدار بهینه a,b به شبکه عصبی ارسال میکند و شبکه عصبی بهعنوان خروجی تخمین تلاش نرمافزار را با توجه به محرکهای مؤثر به دست میآورد.
3-4-1 روش COA پیدا کردن ضرایب a و b بهینه برای مدل کوکومو با استفاده از الگوریتمهای فرا ابتکاری
شکل 2. روش COA تخمین هزینه نرم افزار
|
3-4-1-1 آموزش در روش COA
روش ارائه شده در بخش آموزش ساختهشده و درواقع پارامترهای روش ارائه شده در این بخش تنظیم میشود. در این بخش سعی شده تا با تولید پارامترهای a و b جدید ضرایبی جدید جهت بهینه کردن مدل کوکومو ارائه دهیم. در ابتدا کل پروژهها به دودسته آموزش و آزمون تقسیم میشوند. این تقسیمبندی کاملاً تصادفی بوده و این عمل با نسبت 80 به 20 انجام خواهد گرفت؛ که 80 درصد از پروژهها برای بخش آموزش و بقیه (20% (برای بخش آزمون انتخاب میشوند. در ادامه دادههای آموزشی باید طبق رابطه کوکومو به 3 دسته تقسیم شوند. این 3 دسته شامل دادههای ارگانیک، نیمه منفصل و تعبیهشده میباشند. این دستهبندی در مدلها به دلیل درجه بالای ناهمگنی در پروژههای کوکومو است. حال با استفاده از الگوریتمهای فرا ابتکاری سعی میکنیم تا ضرایب a و b را بهینه کنیم.برای بهینه کردن این ضرایب در هر یک از الگوریتمهای فرا ابتکاری نیاز به یک تابع شایستگی داریم. تابعی که در این پژوهش مورداستفاده قرارگرفته شده در رابطه 9 بیان شده است. منظور از تابع شایستگی (فیتنس) مقداری است که سعی داریم آن را حداقل کنیم.
(9) effort = | RealCost – (ai × (Kloc)bi × EAF)
|منظور از RealCost در تابع بالا میزان هزینه واقعی پروژه است.دراین پژوهش سعی شده با استفاده از تابع بالا میزان فاصله بین هزینه تولیدشده توسط مقدار پیشنهادی الگوریتم فراابتکاری فاخته را با هزینه واقعی نرمافزار به حداقل برسانیم. هنگام اجرای این الگوریتم محدوده ضرایب a و b بین 0 تا 5 قرارگرفتهاند؛ زیرا تعداد نقاط بهینه جواب در بازههای بالاتر از 5 و کمتر از 0 زیاد است (باید در نظر داشت به دلیل ساختار فرمول کوکومو در صورت مشخص ننمودن یک بازه امکان وجود یک جواب بهینه برای تمامی اعداد حقیقی وجود خواهد داشت زیرا همواره درازای هر عدد در ضریب a یک عدد در اعداد حقیقی وجود خواهد داشت که با استفاده از آن بتوان فاصله بین جواب بهدستآمده توسط مدل را با هزینه واقعی به حداقل رساند و یا حتی صفر کرد)بعد از اجرای الگوریتم فرا ابتکاری فاخته بر روی هر یک از پروژهها درازای هر پروژه یک دسته از ضرایب a و b خواهیم داشت. حال باید از هر دسته آن ضرایبی که دارای فاصله کمتری تا هزینه واقعی نسبت به بقیه هستند استخراج و در آخربین ضرایبی که در یک دسته (ارگانیک – نیمه منفصل – تعبیهشده) مشترک هستند بهطور مجزا میانگین بگیریم. وقتیکه تخمین برای پروژههای یک دسته به پایان رسید باید پارامترهای عملکردی برای آن دسته محاسبه شوند. پارامترهای عملکردی موردنظری که در اینجا استفادهشدهاند MMRE میباشند. برای محاسبهی MMRE ابتدا لازم است تا MRE طبق رابطه ( 12 ) محاسبه شود. پس از محاسبه MRE برای همه پروژهها مقدار MMRE محاسبه میشود. مقدار MMRE برابر است با میانگین مقادیر بهدستآمده برای MRE در دسته موردنظر که طبق رابطه (13) محاسبه میشود. در ادامه MMRE بهدستآمده درازای اجرای الگوریتم فرا ابتکاری استفادهشده در این پژوهش ارائهشده و در انتها بهترین آنها انتخاب و به همراه ضرایب جدید ارائه خواهد شد.
3-4-1-2 آزمون در روش COA
در این بخش از نتایج حاصل از مرحله آزمون بهمنظور ارزیابی روش ارائه شده استفاده خواهد شد. دادههای مورداستفاده در این بخش دادههای آزمون هستند و همچنین از ضرایب بهینه استفاده خواهد شد. در ابتدا تمامی پروژههای آزمون به سه دسته (ارگانیک – نیمه منفصل و تعبیهشده) تقسیم میشوند سپس ضرایب مربوطه را به هر دسته استخراج و معادله کوکومو برای تکتک این پروژهها اعمال میشود. بهطور مثال اگر پروژهای ارگانیک باشد ضرایب ارگانیک به آن اختصاص مییابد. سپس میزان تلاش پروژه انتخابشده طبق معادله کوکومو محاسبه میشود (این کار برای تمامی ضرایب ایجادشده توسط الگوریتمهای فرا ابتکاری و روش ارائه شده در این مرحله انجام میشود). این فرایند برای تمامی پروژههای موجود در مرحله آزمون انجام میشود. سپس MRE مربوط به هر پروژه محاسبه میشود. بهعبارتدیگر به تعداد تمامی پروژهها MRE وجود خواهد داشت که میانگین آنها MMRE را تولید میکند. در انتها نتایج با مدل کوکومو اصلی مقایسه میشوند.
3-4-2 روش ANN-COA انتخاب کردن محرکهای مؤثرتر مدل کوکومو با استفاده از الگوریتمهای فرا ابتکاری فاخته وشبکه عصبی
در این قسمت جزئیات مربوط به روش ارائه شده ANN-COA که در شکل (3)نشان داده شده ،بیانشدهاند. این روش سعی برآن دارد که تا حد امکان از طریق الگوریتم بهینهسازی فاخته محرک های موثر مدل کوکومو را انتخاب کنیم تا بهترین تخمینها به کمک شبکه عصبی را به دست آورد. فرایند بخشهای روش ارائه شده بهگونهای است که میزان خطا در تخمینها حداقل شود. این روش شامل 2 بخش اصلی است که در ادامه به توضیح و تشریح آنها میپردازیم. بخش اول شامل بخش آموزش و بخش دوم شامل بخش آزمون میباشد.
3-4-2-1 آموزش و آزمون در روش ANN-COA
شکل3. روش ANN-COA تخمین هزینه نرم افزار
|
3-5 پارامترهای عملکردی در روش ارائه شده
دقت تخمین تلاش یک اصل مهم در موفقیت پروژههای نرمافزاری است رایجترین روشها که در روش ارائه شده مورداستفاده قرارگرفته است عبارتاند از[28]:
(10)
(11)
که Actuali: تلاش واقعی پروژه i ام، Estimatei: تلاش تخمین زدهشده که با دو معادله کوکومو )پایه ، میانه ( زیر، بهصورت جداگانه مقداردهی میشود.
(12)
(13)
MRE : میزان خطای نسبی، MMRE متوسط شدت خطای نسبی، N تعداد پروژهها، a و b: ضرایب ثابت میباشند.
EAF : 15فاکتور تنظیم تلاش که در هم ضرب میشوند.
پارامتر دیگری که برای ارزیابی عملکرد، استفاده میشود درصد پیشبینی، مطابق فرمول زیر میباشد.
(14) PRED(x)=A/N
که A تعداد پروژههای با MRE≤x و N تعداد پروژههای در نظر گرفتهشده میباشد. معمولاً سطح قابلقبول x در متدهای تخمین هزینه نرمافزار 0.25 [29]متدهای مختلفی بر اساس این سطح مقایسه شدهاند.کاهش MRE و افزایش PRED هدف اصلی همه تکنیکهای تخمین استفادهشده درزمینه تلاش توسعه نرمافزار است.
4- بحث و نتایج
4-1- نتایج در روش COA
روش ارائه شده COA بر روی دو مدل کوکوموی پایه و کوکوموی میانه به کار گرفته شد. در هر دو مدل جهت ارزیابی نتایج از دو مجموعه داده کوکوموی ۸۱ و ناسا ۹۳ استفادهشده است.
4-1-1- نتایج با در نظر گرفتن مدل کوکوموی پایه
جدول (1) نتایج روش ارائه شده بر روی مجموعه داده کوکوموی 81 را نشان میدهد این جدول ضرایب a، b و همچنین معیار عملکرد MMRE برای سه دسته مختلف را نشان میدهد. همانطور که مشاهده میشود بهترین MMRE برای دسته 2 حاصلشده است و میانگین آنها 1343/0 میباشد.
جدول 1. نتایج مدل کوکوموی پایه، با مجموعه داده کوکوموی 81
PRED | MMRE | B | A |
|
6666/0 | 1818/0 | 4375/0 | 5 | ارگانیک |
9285/0 | 0963/0 | 4959/1 | 0264/0 | تعبیه شده |
9090/0 | 1248/0 | 9508/0 | 4906/0 | نیمه منفصل |
8347/0 | 1343/0 |
|
| میانگین |
جدول (2) نتایج روش ارائه شده بر روی مجموعه داده ناسا 93 را نشان میدهد این جدول ضرایب a، b و همچنین معیار عملکرد MMRE برای سه دسته مختلف را نشان میدهد. همانطور که مشاهده میشود بهترین MMRE برای دسته 3 حاصلشده است و میانگین آنها 3472/0 میباشد.
جدول 2. نتایج مدل کوکوموی پایه، با مجموعه داده ناسا
PRED | MMRE | B | A |
| |
. | 8191/0 | 1663/0 | 9933/4 | ارگانیک | |
8095/0 | 1487/0 | 1745/1 | 5 | تعبیه شده | |
9256/0 | 0739/0 | 0257/1 | 5906/0 | نیمه منفصل | |
5786/0 | 3472/0 |
|
| میانگین |
4-1-2- تحلیل نتایج مدل کوکوموی پایه
جدول (3) و شکل (4) مقادیر مربوط MMRE و PRED حاصل از مدل کوکوموی پایه و روش ارائه شده را نشان میدهد. نتایج از آزمایش بر روی دو مجموعه داده ناسا 93 و کوکوموی ۸۱ حاصلشده است. همانطور که نتایج نشان میدهد بر روی مجموعه داده ناسا در روش ارائه شده متوسط شدت خطای نسبی: ۰٫۳۴۷۲ بهدستآمده که نسبت به مدل کوکو موی پایه با مقدار 6775/0 بهبود 24/51% را ایجاد نموده است و بر روی مجموعه داده کوکومو ۸۱ در روش ارائه شده متوسط شدت خطای نسبی 1343/0 به دست آمده که نسبت به مدل کوکو موی پایه با مقدار 6984/0 بهبود 22/19% را ایجاد نموده است. همچنین بهبود عملکرد بر روی مجموعه داده ناسا در مقایسه با مجموعه داده کوکوموی 81 بیشتر بوده است که یکی از دلایل آن را میتوان تعداد بیشتر پروژههای ناسا در مجموعه داده آزمایش دانست.
جدول 3: نتایج کلی دو مجموعه داده کوکومو و ناسا بر روی مدل کوکوموی81
PRED | MMRE | B | A |
|
0 | 8602/0 | 0086/0 | 5 | ارگانیک |
9047/0 | 1271/0 | 8292/0 | 9421/4 | تعبیه شده |
8823/0 | 0833/0 | 2499/0 | 9999/4 | نیمه منفصل |
5956/0 | 3568/0 |
|
| میانگین |
شکل 4: نمودار PRED, MMRE مدل کوکوموی پایه
4-1-3- نتایج با در نظر گرفتن مدل کوکوموی میانه
جدول (4) نتایج روش ارائه شده بر روی مجموعه داده کوکوموی 81 را نشان میدهد این جدول ضرایب a، b و همچنین معیار عملکرد MMRE برای سه دسته مختلف را نشان میدهد. همانطور که مشاهده میشود بهترین MMRE برای دسته 2 حاصلشده است و میانگین آنها 1415/0 میباشد.
مجموعه داده ناسا 93 | مجموعه داده کوکومو 81 |
| ||
PRED | MMRE | PRED | MMRE | |
5/0 | 6775/0 | 56/0 | 6984/0 | کوکومو پایه |
57/0 | 3472/0 | 83/0 | 1343/0 | روش ارائه شده |
جدول 4. نتایج مدل کوکو موی میانه، با مجموعه داده کوکومو
PRED | MMRE | B | A |
|
8333/0 | 1488/0 | 5677/0 | 9989/4 | ارگانیک |
9285/0 | 0993/0 | 4000/0 | 5506/2 | تعبیه شده |
9090/0 | 1322/0 | 1772/1 | 0077/0 | نیمه منفصل |
8902/0 | 1415/0 |
|
| میانگین |
جدول 5. نتایج مدل کوکوموی میانه، با مجموعه داده ناسا
جدول (5) نتایج روش ارائه شده بر روی مجموعه داده ناسا 93 را نشان میدهد این جدول ضرایب a، b و همچنین معیار عملکرد MMRE برای سه دسته مختلف را نشان میدهد. همانطور که مشاهده میشود بهترین MMRE برای دسته ۳ حاصلشده است و میانگین آنها 3568/0 میباشد.
4-1-4- تحلیل نتایج مدل کوکوموی میانه
جدول (6) و شکل (5) مقادیر مربوط به MMRE و PRED حاصل از مدل کوکوموی پایه و روش ارائه شده را نشان میدهد. نتایج از آزمایش بر روی دو مجموعه داده ناسا 93 و کوکوموی ۸۱ حاصلشده است. همانطور که نتایج نشان میدهد بر روی مجموعه داده ناسا در روش ارائه شده متوسط شدت خطای نسبی: ۰٫۳۵۶۸ بهدستآمده که نسبت به مدل کوکوموی پایه با مقدار 6775/0 بهبود 66/52% را ایجاد نموده است و بر روی مجموعه داده کوکومو ۸۱ در روش ارائه شده متوسط شدت خطای نسبی: 1415/0 بهدستآمده که نسبت به مدل کوکوموی پایه با مقدار 3179/0 بهبود 51/44% را ایجاد نموده است. همچنین بهبود عملکرد بر روی مجموعه داده ناسا در مقایسه با مجموعه داده کوکوموی 81 بیشتر بوده است که یکی از دلایل آن را میتوان تعداد بیشتر پروژههای ناسا در مجموعه داده آزمایش دانست.
جدول 6: نتایج کلی دو مجموعه داده کوکومو و ناسا بر روی مدل کوکوموی میانه
مجموعه داده ناسا 93 | مجموعه داده کوکومو 81 |
| ||
PRED | MMRE | PRED | MMRE | |
5/0 | 6775/0 | 56/0 | 3179/0 | کوکومو میانه |
59/0 | 3568/0 | 89/0 | 1415/0 | روش ارائه شده |
4-1-5- مقایسه روش COAبا نتایج سایر الگوریتم ها و با مجموعه داده کوکومو 81
بهمنظور ارزیابی روش ارائه شده از نتایج مقالات معتبر که در سالهای اخیر به چاپ رسیده است استفادهشده است. در این مرحله نیز از معیارهای عملکردی (MMRE) و (PRED) جهت ارزیابی استفادهشده است ، که در شکل (6) نشان داده شده است .
شکل 5: نمودار PRED, MMRE مدل کوکوموی میانه
4-1-6- مقایسه روش COA با سایر روشها
بهمنظور ارزیابی بهتر عملکرد روش ارائه شده ، روش موردنظر با نتایج یکی از مقالات جامع ومعتبر که از همه روش های پیش بینی تلاش و از چندین دیتاست مختلف در آن استفاده شده و همچنین از نظر ارزیابی با مقاله حاضر یکسان هست ، مورد مقایسه قرارگرفته است [30].
شکل (7) مقایسه عملکرد روشهای مختلف را نشان میدهد. همانطور که مشاهده میشود بهترین MMRE بهدستآمده شکل 6: مقایسه روش COAبا سایر الگوریتمها
مربوط به روش ارائه شده میباشد. کمترین درصد بهبود نسبت به مدل LMES با مقدار 42/40 % حاصلشده و بیشترین درصد بهبود نسبت به مدل MLR با مقدار 18/9 % حاصلشده است.
شکل 7: نمودار مقایسه MMRE مدلهای دیگر با روش ارائه شده
و همچنین بهمنظور ارزیابی روش ارائه شده از نتایج مقاله معتبر که در سالهای اخیر به چاپ رسیده است استفادهشده است.در این مقاله از چندین روش برای تخمین تلاش نرم افزارهای تلفن همراه و معیارهای عملکردی (MMRE) و (PRED) جهت ارزیابی استفادهشده است،که در شکل (8) نشان داده شده است [31].
شکل 8: مقایسه روش COAبا سایرروش ها
همانطور که مشاهده میشود بهترین MMRE بهدستآمده مربوط به روش الگوریتم ژنتیک میباشد. و روش ارائه شده در مرتبه دوم از نظر بهترین MMRE قرار گرفته است .
4-2- نتایج درروشANN-COA
در روش ارائه شده ابتدا دادهها را به دو بخش آموزش و آزمایش تقسیم میشوند (بهصورت تصادفی و معمولاً 80% آموزش و 20% آزمون)؛ که در بخش آموزش با استفاده از الگوریتم تکاملی فاخته از بین 15 فاکتور تخمین تلاش مدل کوکومو محرکهای مؤثرتر را بر اساس تابع برازش الگوریتم فاخته که میزان دقت تخمین (MRRE) میباشد انتخاب میشوند؛ و محرکهای مؤثر بهعنوان ورودی شبکه عصبی پیشنهاد داده میشود و خروجی شبکه عصبی مقدار تلاش توسعه میباشد. این روش بر روی دو مجموعه داده کوکومو و ناسا پیادهسازی شده است. جدول (7) و شکل(8) نتایج حاصل از روش ارائه شده را بر روی مجموعه داده ناسا 93 و کوکوموی 81 رانشان میدهند.
شکل 9: نمودار نتایج مربوط به روش ANN-COAبر روی مجموعه داده کوکومو و ناسا 93
4-2-1- تحلیل نتایج در مدل ANN-COA
نتایج بهدستآمده بر روی هر دو مجموعه داده بهبود داشته است و ما در این قسمت به تحلیل نتایج بهدستآمده میپردازیم.
جدول (8) و شکل (7, 8) مقادیر مربوط به MMRE حاصل از مدل کوکو موی میانه و روش ارائه شده را نشان میدهد. نتایج از آزمایش بر روی مجموعه داده ناسا 93 وکوکوموی 81 حاصلشده است. همانطور که نتایج نشان میدهد بر روی مجموعه داده ناسا در روش ارائه شده متوسط شدت خطای نسبی: 0669/0 بهدستآمده که نسبت به مدل کوکوموی میانه با مقدار 6775/0 بهبود 87/9% را ایجاد نموده است؛ و بر روی مجموعه داده کوکومو 81 در روش ارائه شده متوسط شدت خطای نسبی: 1118/0 بهدستآمده که نسبت به مدل کوکوموی میانه با مقدار 3179/0 بهبود 16/35% را ایجاد نموده است.
مجموعه داده ناسا 93 | مجموعه داده کوکومو 81 |
| ||
PRED | MMRE | PRED | MMRE |
|
5/0 | 6775/0 | 56/0 | 3179/0 | کوکومو میانه |
98/0 | 0669/0 | 96/0 | 1118/0 | روش ارائه شده |
4-2-2- مقایسه روش ANN-COA با سایر مدلها با مجموعه داده ناسا 93
جدول 7: نتایج روش ANN-COAبرروی دو مجموعه داده ناسا وکوکومو
|
جدول 8: نتایج بهدستآمده از ترکیب شبکه عصبی و الگوریتم بهینهسازی فاخته [20]
MMRE |
|
1482/0 | ANN-Cuckoo |
1118/0 | روش ارائه شده |
جدول 9: نتایج بهدستآمده از ترکیب شبکه عصبی MLP و الگوریتم بهینهسازی کلونی مورچگان[17]
مجموعه داده ناسا 93 |
| |
PRED | MMRE | |
- | 2691/0 | MLPACO |
98/0 | 0669/0 | روش ارائه شده |
جدول 10: نتایج بهدستآمده از رویکرد ترکیبی شبکه های عصبی ، الگوریتم ژنتیک ،رگرسیون خطی چندگانه و الگوریتم رقابتی امپریالیستی[21]
مجموعه داده کوکومو |
| |
PRED | MMRE | |
58/0 | 35/0 | MLP+GA+MLR+ICA |
96/0 | 1118/0 | روش ارائه شده |
شکل 9: نمودارمقایسه روش ارائه شده ANN-COAبا سایر مقالات
4-3- نتیجه گیری و کارهای آینده
توسعه پروژههای نرمافزاری به دلیل ناملموس بودن، نیازمندیهای مبهم، تولید انعطافپذیر، دشوار پیچیده میباشد. مدیریت پروژه بهشدت به تخمین دقیق و قابلیت اطمینان وابسته است. ماهیت خلاق پروژههای نرمافزاری و انتزاعی بودن آن تخمین هزینه و زمان انجام آن را بینهایت مشکل میکند. در این تحقیق ابتدا مدلهای استاندارد ارائهشده برای تخمین تلاش پروژههای نرمافزاری تشریح شده و سپس مدلهای مبتنی بر الگوریتمهای فراابتکاری مورد بحث و بررسی قرارگرفته است و درنهایت یک روش جدید تلاش لازم برای توسعه نرمافزار با استفاده از شبکه عصبی و الگوریتم بهینهسازی فاخته را ارائه شده است. مقاله حاضر تأثیر ترکیب الگوریتم بهینهسازی فاخته و شبکه عصبی را با مدل کوکومو پایه و میانه و با دو مجموعه داده واقعی کوکوموی 81 و ناسا 93 موردبحث و بررسی قرار داده است. بهمنظور بررسی عملکرد روش ارائه شده معیار عملکرد MMRE محاسبهشده است. نتایج روش ارائهشده در کل باعث بهبود دقت تخمین شده است. نتایج روش ارائهشده با نتایج مقالات معتبر که در سالهای اخیر منتشرشده است مورد مقایسه قرارگرفته است نتایج حاکی از آن است که روش ارائه شده در مقایسه با سایر مدلها کمترین MMRE را به دست آورده است. دستاوردهای مانند به دست آوردن دقت قابلمقایسه با مدلهای تخمین موجود، سرعت و همگرایی سریع الگوریتم در دست یافتن به جواب بهینه، یافتن بهترین ضرایب با استفاده از الگوریتم فاخته، به دست آوردن یک مدل انعطافپذیر مبتنی بر شبکه عصبی از این مدل حاصل شد. با توجه به جدید بودن حوزه تخمین تلاش نرمافزار، روش ارائه شده قابلیت توسعه در زمینههایی مانند بررسی میزان سازگاری مدل های پیشنهادی تخمین تلاش با پروژههای مختلف نرم افزاری، تمرکز بر مدل کوکومو2، بهکارگیری سایر الگوریتمهای بهینهسازی جدید جهت بهینه کردن هرچه بیشتر ضرایب و محرکها میباشد.
مراجع
[1] Huang, G., "Cost Modeling Based on Support Vector Regression for Complex roducts During the Early Design Phases". Requirements for the Degree of Doctor of Philosophy in Industrial and Systems Engineering, 2007.
[2] Khatibi, v. and D.N.A. awawi, Software Cost Estimation Methods: A Review. Journal of Emerging Trends in Computing and Information Sciences, 2011 2: p. 21-29.
[3] Abdullah, T., et al., ANALYSIS OF SOFTWARE COST ESTIMATION MODELS. IJEIR, 2012 1: p. 206-212.
[4] Binish Zahra, S. and M. Nazir, A Review of Comparison among Software Estimation Techniques. Bahria University Journal of Information & Communication Technology, 2012 5: p. 39-45.
[5] Boehm, B., "Software Engineering Economics". IEEE Transaction on Software Engineering, vol. SE-10, 1984 p. 4-21.
[6] Lin, J.-C., et al., Using Computing Intelligence Techniques to Estimate Software Effort. International Journal of Software Engineering & Applications, 2013 4(1): p. 43.
[7] khatibi bardsiri, v. and m. dorosti, An Improved COCOMO based Model to Estimate the Effort of Software Projects. 2016.
[8] Sadeghi, B., et al., A Novel ICA-based Estimator for Software Cost Estimation. Journal of Advances in Computer Engineering and Technology, 2015. 1(4): p. 15-24.
[9] Venkataiah, V., et al., Application of ant colony optimization techniques to predict software cost estimation, in Computer Communication, Networking and Internet Security. 2017, Springer. p. 315-325.
[10] Shahpar, Z., et al., Improvement of effort estimation accuracy in software projects using a feature selection approach. Journal of Advances in Computer Engineering and Technology, 2016. 2(4): p. 31-38.
[11] 1khatibi bardsiri, A., S.m. hashemi, and M. Razzazi, A Novel Model for Software Services Development Effort Estimation. Journal of Modeling in Engineering, 2017. 15(49): p. 245-261.
[12] Khatibi, E. and V. Khatibi Bardsiri, An Improved Algorithmic Method for Software Development Effort Estimation. Journal of Advances in Computer Research, 2018. 9(1): p. 41-49.
[13] Khatibi Bardsiri, A., A new combinatorial framework for software services development effort estimation. International Journal of Computers and Applications, 2018. 40(1): p. 14-24.
[14] Kumari, S. and S. Pushkar. Software Cost Estimation Using Cuckoo Search. in Advances in Computational Intelligence. 2017. Singapore: Springer Singapore.
[15] Puspaningrum, A. and R. Sarno, A Hybrid Cuckoo Optimization and Harmony Search Algorithm for Software Cost Estimation. Procedia Computer Science, 2017. 124: p. 461-469.
[16] Çelik, E., et al. Software test automation and a sample practice for an enterprise business software. in Computer Science and Engineering (UBMK), 2017 International Conference on. 2017. IEEE.
[17] Ebrahimpour, N., F. Soleimanian Gharehchopogh, and Z. Abbasi Khalifehlou, New Approach with Hybrid of Artificial Neural Network and Ant Colony Optimization in Software Cost Estimation. Journal of Advances in Computer Research, 2016. 7(4): p. 1-12.
[18] Wani, Z.H. and S. Quadri. Artificial Bee Colony-Trained Functional Link Artificial Neural Network Model for Software Cost Estimation. in Proceedings of Fifth International Conference on Soft Computing for Problem Solving. 2016. Springer.
[19] Chhabra, S. and H. Singh, Optimizing design parameters of fuzzy model based COCOMO using genetic algorithms. International Journal of Information Technology, 2019.
[20] Desai, V.S. and R. Mohanty. ANN-Cuckoo Optimization Technique to Predict Software Cost Estimation. in 2018 Conference on Information and Communication Technology (CICT). 2018. IEEE.
[21] Khazaiepoor, M., A. Khatibi Bardsiri, and F. Keynia, A Hybrid Approach for Software Development Effort Estimation using Neural networks, Genetic Algorithm, Multiple Linear Regression and Imperialist Competitive Algorithm. International Journal of Nonlinear Analysis and Applications, 2020. 11(1): p. 207-224.
[22] Boehm, B., C. Abts, and S. Chulani, Software development cost estimation approaches—A survey. Annals of software engineering, 2000 10(1-4): p. 177-205.
[23] Stutzke, R.D. and M. Crosstalk, Software estimating technology: A survey. 1997: Los. Alamitos, CA: IEEE Computer Society Press.
[24] جهانشاهی, س., و. خطیبی بردسیری, و همکاران, کاربرد روشهای محاسبات نرم در بهبود عملکرد مدل کوکومو بمنظورتخمین هزینه پروژه های نرم افزار. همایش ملی مهندسی کامپیوتر و فناوری اطلاعات, اسفند 1392
[25] Rajabioun, R., Cuckoo optimization algorithm. Applied soft computing, 2011. 11(8): p. 5508-5518.
[26] Karaboga, D., B. Akay, and C. Ozturk, Artificial bee colony (ABC) optimization algorithm for training feed-forward neural networks. MDAI, 2007. 7: p. 318-319.
[27] Hippert, H.S. and J.W. Taylor, An evaluation of Bayesian techniques for controlling model complexity and selecting inputs in a neural network for short-term load forecasting. Neural networks, 2010. 23(3): p. 386-395.
[28] Khatibi, E. Investigating the effect of software project type on accuracy of software development effort estimation in COCOMO model. in Fourth International Conference on Machine Vision (ICMV 11). 2011 International Society for Optics and Photonics.
[29] Khatibi, V. and D.N. Jawawi, Software cost estimation methods: A review 1. 2011
[30] Bardsiri, V.K., et al., LMES: A localized multi-estimator model to estimate software development effort. Engineering Applications of Artificial Intelligence, 2013. 26(10): p. 2624-2640.
[31] Pandey, M., R. Litoriya, and P. Pandey, Validation of existing software effort estimation techniques in context with mobile software applications. Wireless Personal Communications, 2020. 110(4): p. 1659-1677.
[1] Linear Models
[2] Cocomo
[3] Fazzy Neural Network (FNN)
[4] Fazzy Gray Relational Analysis (FGRA)
[5] Root Mean Square Error
[6] International Software Benchmarking Standards Group
[7] Ant Colony Optimization
[8] Bee Colony optumization
[9] Basic COCOMO
[10] Effort
[11] Cuckoo optimization algorithm
[12] Egg Laying Radius
A Novel Method based on the Cocomo model to increase the accuracy of software projects effort estimates
Abstract
Estimating and calculation of criteria is a critical activity in software projects. Effort estimation in the early stages of software development is one of the most important challenges in software projects management. Incorrect estimation can lead to project failure. Therefore, one of the main activities in the effective and efficient development of software projects is the accurate estimation of software costs. So, in this paper, two methods have been proposed to estimate the effort in software projects. In these methods, by analyzing the stimuli and using meta-heuristic algorithms and combining with the neural network, a proper way is created to increase the accuracy of software development effort estimation. The first method is to apply cuckoo algorithm to optimize the coefficients of COCOMO model and the second method is presented as a combination of neural network and cuckoo optimization algorithm to increase the accuracy of estimating software development efforts. The results obtained on two real datasets show the desirable performance of the proposed method in comparison with other methods.
Keywords- Cocomo, Cost estimation, Cuckoo algorithm, neural network