مقایسه روش های طبقه بندی در تخمین تلاش توسعه نرم افزار
محورهای موضوعی : پردازش چند رسانه ای، سیستمهای ارتباطی، سیستمهای هوشمندصادق انصاری پور 1 , تقی جاودانی گندمانی 2
1 - دانشگاه عقیق، شاهین شهر، اصفهان
2 - عضو هیات علمی، دانشگاه شهرکرد
کلید واژه: تخمین تلاش نرم افزار, طبقه بندی, یادگیری ماشین, مهندسی نرم افزار, داده کاوی,
چکیده مقاله :
نادرست بودن تخمین هزینه نرم افزار یکی از دلایل مهم ناامیدی متخصصان نرم افزار و محققان تخمین هزینه بوده است و علیرغم تلاش های فراوانی که برای بهبود آن انجام شده است اما هنوز هم دقت تخمین پایین است. عدم تجزیه و تحلیل مناسب در ابتدای شروع به کار پروژه و همچنین عدم به روز آن در حین انجام پروژه یکی از مهم ترین دلایل شکست پروژه ها محسوب می شود. اگر چه زمانی که یک پروژهها بسته میشوند، بازخورد های آن ایجاد میشود، اما اگر تخمینها و واقعیات ثبتشده با پروژه انجامشده به طور کامل مطابقت نداشته باشند، آنگاه نمی توان انتظار تخمین دقیقی را داشت. بنابراین جمع آورده داده های پروژه بر اساس ویژگی های مشخص امری ضروری است و در اینجاست که می توان به نقش پررنگ پروژه های انجام شده در گذشته و مجموعه داده هایی که می توان با استفاده از آنها ایجاد نمود پی برد. در این مطالعه سعی بر این است که به بررسی نقش روش های مختلف طبقه بندی در تخمین تلاش نرم افزار بپردازیم.
Introduction: The main goal of software companies is to provide solutions in various fields to better meet the needs of customers. The process of successful modeling depends on finding the right and accurate requirements. However, the key to successful development for adapting and integrating different developed parts is the importance of selecting and prioritizing the requirements that will advance the workflow and ultimately lead to the creation of a quality product. Validation is the key part of the work, which includes techniques that confirm the accuracy of a set of requirements for building a solution that leads to the project's business objectives. Requirements change during the project, and managing these changes is important to ensure the accuracy of the software built for stakeholders. In this research, we will discuss the process of checking and validating the software requirements.Method: Requirement extraction is conducted by means of discovery, review, documentation, and understanding of user needs and limitations of a system. The results are presented in the form of products such as text requirements descriptions, use cases, processing diagrams, and user interface prototypes.Findings: Data mining and recommender systems can be used to increase the necessary needs, however, another method. of social networks and joint filtering can be used to create requirements for large projects to identify needs.Discussion: In the area of product development, requirements engineering approaches focus exclusively on requirement development. There are challenges in the development process due to the existence of human resources. If the challenges are not seen well at this stage, it will be extremely expensive after the software production. Therefore, in this regard, errors should be minimized and they should be identified and corrected as soon as possible. Now, with the investigations carried out, one of the key issues in the field of requirements is the discussion of validation, which first confirms that the requirements are able to be implemented in a set of characteristics according to the system description, and secondly, a set of essential characteristics. such as complete, consistent, according to standard criteria, non-contradiction of requirements, absence of technical errors, and lack of ambiguity in requirements. In fact, the purpose of validation is to ensure the result that a sustainable and renewable product is created according to the requirements.
[1] P. M. Institute, Success rates rise: Transforming the high cost of low performance, 2017.
[2] I. S. -. "IEEE Standard for Software Productivity Metrics.," 1993:1045, 1992.
[3] A. Trendowicz, and J. Münch, “Factors influencing software development productivity—state‐of‐the‐art and industrial experiences,” Advances in computers, vol. 77, pp. 185-241, 2009.
[4] D. Rodríguez, M. Sicilia, E. García, and R. Harrison, “Empirical findings on team size and productivity in software development,” Journal of Systems and Software, vol. 85, no. 3, pp. 562-570, 2012.
[5] F. González-Ladrón-de-Guevara, M. Fernández-Diego, and C. Lokan, “The usage of ISBSG data fields in software effort estimation: A systematic mapping study,” Journal of Systems and Software, vol. 113, pp. 188-215, 2016.
[6] A. García-Floriano, C. López-Martín, C. Yáñez-Márquez, and A. Abran, “Support vector regression for predicting software enhancement effort,” Information and Software Technology, vol. 97, pp. 99-109, 2018.
[7] A. Ali, and C. Gravino, “A systematic literature review of software effort prediction using machine learning methods,” Journal of software: evolution and process, vol. 31, no. 10, pp. e2211, 2019.
[8] J. Wen, S. Li, Z. Lin, Y. Hu, and C. Huang, “Systematic literature review of machine learning based software development effort estimation models,” Information and Software Technology, vol. 54, no. 1, pp. 41-59, 2012.
[9] M. Halkidi, D. Spinellis, G. Tsatsaronis, and M. Vazirgiannis, “Data mining in software engineering,” Intelligent Data Analysis, vol. 15, no. 3, pp. 413-441, 2011.
[10] V. S. Dave, and K. Dutta, “Neural network based models for software effort estimation: a review,” Artificial Intelligence Review, vol. 42, no. 2, pp. 295-307, 2014.
[11] N. Ohsugi, M. Tsunoda, A. Monden, and K.-i. Matsumoto, "Effort estimation based on collaborative filtering." pp. 274-286.
[12] A. L. Oliveira, “Estimation of software project effort with support vector regression,” Neurocomputing, vol. 69, no. 13-15, pp. 1749-1753, 2006.
[13] Y. Kultur, B. Turhan, and A. B. Bener, "ENNA: software effort estimation using ensemble of neural networks with associative memory." pp. 330-338.
[14] Y. Kultur, B. Turhan, and A. Bener, “Ensemble of neural networks with associative memory (ENNA) for estimating software development costs,” Knowledge-Based Systems, vol. 22, no. 6, pp. 395-402, 2009.
[15] Y.-F. Li, M. Xie, and T.-N. Goh, “Adaptive ridge regression system for software cost estimating on multi-collinear datasets,” Journal of Systems and Software, vol. 83, no. 11, pp. 2332-2343, 2010.
[16] A. Corazza, S. Di Martino, F. Ferrucci, C. Gravino, and E. Mendes, “Investigating the use of support vector regression for web effort estimation,” Empirical Software Engineering, vol. 16, no. 2, pp. 211-243, 2011.
[17] L. L. Minku, and X. Yao, "A principled evaluation of ensembles of learning machines for software effort estimation." pp. 1-10.
[18] L. L. Minku, and X. Yao, "Can cross-company data improve performance in software effort estimation?." pp. 69-78.
[19] E. Kocaguneli, T. Menzies, and J. W. Keung, “On the value of ensemble effort estimation,” IEEE Transactions on Software Engineering, vol. 38, no. 6, pp. 1403-1416, 2011.
[20] K. Dejaeger, W. Verbeke, D. Martens, and B. Baesens, “Data mining techniques for software effort estimation: a comparative study,” IEEE transactions on software engineering, vol. 38, no. 2, pp. 375-397, 2011.
[21] L. L. Minku, and X. Yao, “Software effort estimation as a multiobjective learning problem,” ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 22, no. 4, pp. 1-32, 2013.
[22] E. Kocaguneli, T. Menzies, J. Keung, D. Cok, and R. Madachy, “Active learning and effort estimation: Finding the essential content of software effort estimation data,” IEEE Transactions on software engineering, vol. 39, no. 8, pp. 1040-1053, 2012.
[23] V. Khatibi, D. N. Jawawi, and E. Khatibi, “Increasing the accuracy of analogy based software development effort estimation using neural networks,” International Journal of Computer and Communication Engineering, vol. 2, no. 1, pp. 78, 2013.
[24] P. Subitsha, and J. K. Rajan, “Artificial neural network models for software effort estimation,” International journal of technology enhancements and emerging engineering research, vol. 2, no. 4, pp. 76-80, 2014.
[25] J. Huang, Y.-F. Li, and M. Xie, “An empirical analysis of data preprocessing for machine learning-based software cost estimation,” Information and software Technology, vol. 67, pp. 108-127, 2015.
[26] W. Zhang, Y. Yang, and Q. Wang, “Using Bayesian regression and EM algorithm with missing handling for software effort prediction,” Information and software technology, vol. 58, pp. 58-70, 2015.
[27] V. Khatibi Bardsiri, and E. Khatibi, “Insightful analogy-based software development effort estimation through selective classification and localization,” Innovations in Systems and Software Engineering, vol. 11, no. 1, pp. 25-38, 2015.
[28] E. Khatibi, and V. Khatibi Bardsiri, “Model to estimate the software development effort based on in‐depth analysis of project attributes,” IET software, vol. 9, no. 4, pp. 109-118, 2015.
[29] A. B. Nassif, M. Azzeh, L. F. Capretz, and D. Ho, “Neural network models for software development effort estimation: a comparative study,” Neural Computing and Applications, vol. 27, no. 8, pp. 2369-2381, 2016.
[30] F. Zare, H. K. Zare, and M. S. Fallahnezhad, “Software effort estimation based on the optimal Bayesian belief network,” Applied Soft Computing, vol. 49, pp. 968-980, 2016.
[31] M. Azzeh, and A. B. Nassif, “A hybrid model for estimating software project effort from Use Case Points,” Applied Soft Computing, vol. 49, pp. 981-989, 2016.
[32] V. Gopinath, and R. Menon, “Software Effort Prediction-A Datamining Approach,” Journal of Network and Information Security Volume, vol. 5, no. 01, 2017.
[33] A. B. Nassif, M. Azzeh, A. Idri, and A. Abran, “Software development effort estimation using regression fuzzy models,” Computational intelligence and neuroscience, vol. 2019, 2019.
[34] M. Z. Khan, “Particle swarm optimisation based feature selection for software effort prediction using supervised machine learning and ensemble methods: A comparative study,” Invertis Journal of Science & Technology, vol. 13, no. 1, pp. 33-50, 2020.
[35] W. Rhmann, B. Pandey, and G. A. Ansari, “Software effort estimation using ensemble of hybrid search-based algorithms based on metaheuristic algorithms,” Innovations in Systems and Software Engineering, vol. 18, no. 2, pp. 309-319, 2022.
[36] V. Resmi, S. Vijayalakshmi, and R. S. Chandrabose, “An effective software project effort estimation system using optimal firefly algorithm,” Cluster Computing, vol. 22, no. 5, pp. 11329-11338, 2019.
[37] A. A. Fadhil, R. G. Alsarraj, and A. M. Altaie, “Software cost estimation based on Dolphin algorithm,” IEEE Access, vol. 8, pp. 75279-75287, 2020.
[38] M. Dashti, T. J. Gandomani, D. H. Adeh, H. Zulzalil, and A. B. M. Sultan, “LEMABE: a novel framework to improve analogy-based software cost estimation using learnable evolution model,” PeerJ Computer Science, vol. 7, pp. e800, 2022.
[39] M. Dashti, and T. J. Gandomani, "A Taxonomy of Approaches and Methods for Software Effort Estimation," Innovations in Computer Science and Engineering, pp. 97-105: Springer, 2022
.
_||_