Improving the cost estimation of software projects in the COCOMO II model based on fuzzy logic algorithms

Number of pages: 126 File Format: word File Code: 31044
Year: 2016 University Degree: Master's degree Category: Computer Engineering
  • Part of the Content
  • Contents & Resources
  • Summary of Improving the cost estimation of software projects in the COCOMO II model based on fuzzy logic algorithms

    Dissertation for obtaining a master's degree

    in the field of computer engineering - software orientation

    Abstract

    In all projects that are carried out today, management is a very decisive issue. Software projects are no exception to this rule. One of the most important aspects of software development is time and cost management. Considering that in the early stages of software development, there is no detailed information about various aspects of development; A more accurate estimate of upfront costs can be critical to the success of a software. In this research, I was able to use the COCOMO II model, which is one of the most well-known software development cost estimation methods based on algorithmic models, and combining it with fuzzy logic, created a model that makes more accurate cost estimates based on some parameters in the initial phases of development. Its implementation has been done in MATLAB software with the help of artificial data. The validity of the created data has also been checked in SPSS software. Also, the data of 2 official COCOMO II datasets have been used to evaluate the proposed model, and the results have been analyzed using MMRE and PRED techniques. The outputs show that the proposed system compared to the original COCOMO II model has an average improvement of 5.901%. Keywords: COCOMO II model, cost estimation, optimization, fuzzy logic.

    Chapter 1

    Chapter 1 Research overview

    1-1. Introduction

    According to studies conducted in the field of software engineering of computer systems, management will continue to be a necessary activity when computer-based systems and products are built. Project management is related to the planning, supervision and control of people, processes and events that arise with the emergence of software from initial concepts to practical implementation. [1]

    Building computer software is a complex task, especially if many people are involved in it and work on it for a relatively long time. This is why we need to manage and control software projects. The steps of management are the same as understanding the four P's, i.e. people, product, process and project. People must be organized to make the software work properly. The project should be designed by meeting the manpower and time required to do the work, describe the products, perform quality control and determine the monitoring and control mechanisms of the work described in the plan. Planning a software project includes the discussion of estimation, that is, your attempt to determine the amount of money, necessary work, the number of resources, and the amount of time required to create a specific system or software-based product [1]. Start[1,2]. The accuracy of software estimation is important because it can help predict the amount of manpower required and the project schedule and overall project cost in order to determine the resources that will be needed in the future [2]. Also, accurate software cost estimation is very important in budgeting, project planning, project control and finally project management effectively [1,2].

    In recent decades, many software cost estimation models have been developed [3]. These models use two techniques based on experience and based on algorithmic models for this estimation. Experience-based techniques include estimating the amount of manpower required by the project manager based on his experiences from past projects; And the technique based on algorithmic model is a formula that is used to calculate the amount of manpower required for a project based on an estimate of product characteristics such as size, and process characteristics such as the experience of the people involved in the project[2-4]. These formulas can be made by analyzing the costs and characteristics of previously completed projects and find the closest formula to real experiences [3].

    In this research, we have presented a hybrid model based on fuzzy logic algorithms; which can provide more accurate estimates based on the capabilities of fuzzy logic and the training applied to it by the dataset we created artificially.

    The estimate based on the expected goal can be calculated in different phases of the project. So we need a good model to calculate these parameters. An estimation model with acceptable accuracy reduces the possibility of creating challenges between stakeholders in the project development stages. [1] COCOMO is one of the most well-known models based on the algorithmic model presented in 1981 by Barry Boehm. This model was created from the analysis of 63 software projects. The size of the number of lines of the studied projects ranged from 2000 to 100,000 lines of code that used different programming languages ??[18,20,25]. The methodology used in these softwares was the waterfall model because it was common at that time. This model is often known as COCOMO 81.  Boehm proposed three levels for this algorithm (COCOMO 81), namely COCOMO basic, COCOMO intermediate, and COCOMO specifications. In 1995, COCOMO II was replaced by COCOMO 81, and after that, the book Software Cost Estimation with COCOMO II was published in 2000. According to the calculation method of this version, it seems that this model is more suitable for software cost estimation in modern software projects. This model provides more support for modern software development processes and updated project databases [11,18,29]. The need for a new model began when software development technology moved from central processors [2] and batch processing to desktop software development [3], reusability of codes and the use of available software components [22].

    Fuzzy logic was presented for the first time in 1965 in an article of the same name, by Professor "Latfi Asgarzadeh" and currently has many applications. It has a special place in the field of management. This logic is widely used for measuring qualitative problems and patterns and answers many problems in human sciences, especially management. Fuzzy logic is a solution that can be used to model complex systems that are impossible or very difficult to model using mathematics and classical modeling methods, easily and with much more flexibility [14,25,26].

    In systems with high uncertainty and high complexity, fuzzy logic is considered a suitable method for modeling. As mentioned, more accurate estimation in the discussion of resource management during the development of software projects is very important and significant, so the purpose of this research is to extract a suitable fuzzy function by studying and applying fuzzy logic, which this function is by making a suitable combination of rules between the 23 parameters mentioned in COCOMO II, such as cost drivers (such as CPLX, which expresses the complexity of the software, PCAP, which expresses the ability of the programmer, etc.), scale factors (such as TEAM, which expresses the team cohesion of the people involved in the project) and the size of the software is obtained, then by checking and using the obtained rules and performing steps related to fuzzification, using a fuzzy inference engine in one of the MATLAB or SPSS simulation software, tests are performed with a number of data in the sample data set [4] including the COCOMO81, COCOMO II or COCOMONASA versions. Get the desired data and outputs. Finally, a comparison will be made between the outputs produced by the proposed fuzzy model and the original COCOMO II model based on some well-known techniques such as the range of relative error (MMRE).

    In order to achieve a coherent and suitable structure for conducting research, in the rest of this chapter, the most important principles and answers to the main questions of a scientific research will be discussed.

    1-2. Definition of the problem and the main research question

    In order to increase the accuracy of project cost estimation using fuzzy logic, the following question is raised:

    How can using fuzzy logic improve the accuracy of software project cost estimation in the COCOMO II model?

    1-3. Hypotheses

    1. Using fuzzy logic, rules can be created to adjust the effort estimation parameters in the COCOMO II model.

    2. By using fuzzy logic, it is possible to implement a model that can be used practically.

    3. By using the combination of fuzzy logic and COCOMO II model, it is possible to implement a model whose estimation accuracy is more optimal than the COCOMO II model itself.

  • Contents & References of Improving the cost estimation of software projects in the COCOMO II model based on fuzzy logic algorithms

    List:

    Chapter 1, general research. 1

    1-1. Introduction. 2

    1-2. Defining the problem and the main research question. 5

    1-3. Hypotheses 5

    1-4. Research objectives. 5

    1-5. Research method. 6

    1-6. Research steps. 6

    1-7. Thesis structure. 7

    Chapter 2 of the proposed method. 8

    2-1. Assumptions of the algorithm. 9

    2-2. Introduction of EST-COCOMO II 9

    2-3. Review of the implementation of the EST-COCOMO II hybrid model 11

    2-3-1. Introduction of MATLAB tools. 11

    2-3-1-1. Accurate measurement. 12

    2-3-1-2. The power of Matlab. 13

    2-3-2. General description of system implementation. 14

    2-3-2-1. Trial and error method 14

    2-3-2-2. Method of reference tables. 14

    2-3-2-3. ANFIS method. 15

    2-3-3. System implementation process in MATLAB software. 16

    2-3-3-1. Formation of artificial dataset. 18

    2-3-3-2. ANFIS design. 21

    2-3-4. Introduction and evaluation of created synthetic dataset. 28

    2-3-4-1. Analysis of Variance test for the comparison of several independent populations (ANOVA) 28

    2-3-5. EST-COCOMO II indicators 31

    2-4. summary 32

    Chapter 3 research basics and review of previous research. 33

    3-1. Estimating software projects. 34

    3-1-1. Experience-based techniques. 35

    3-1-2. Algorithmic model based technique. 35

    3-2. Model COCOMO II 36

    3-2-1. Introduction. 36

    3-2-2. measurement 38

    3-2-3. Estimating effort. 43

    3-2-3-1. Cost drivers in the Post Architecture model. 44

    3-2-3-2. Early Design model triggers. 61

    3-2-4. Cost estimate. 63

    3-3. Fuzzy logic 63

    3-3-1. Definite sets. 64

    3-3-2. Fuzzy sets. 65

    3-3-3. Membership function. 65

    3-3-3-1. Different forms of membership functions. 66

    3-3-4. Basic operations on fuzzy sets (t-norm, co-norm): 70

    3-3-5. Linguistic variables. 71

    3-3-6. Fuzzy relationships. 73

    3-3-7. Fuzzy control. 73

    3-3-7-1. Advantages of fuzzy control. 74

    3-3-7-2. Design steps of a fuzzy system. 75

    3-3-7-3. Examining the design process of a number of real examples. 75

    3-3-8. Inference engine. 77

    3-3-8-1. De-fuzzification methods. 78

    3-3-8-2. Most likely versus most consistent method. 78

    3-4. C-Means fuzzy clustering. 81

    3-4-1. Introduction. 81

    3-4-2. Purpose of clustering. 82

    3-4-3. Fuzzy clustering. 82

    3-4-3-1. C-Means fuzzy clustering algorithm. 84

    3-4-4. Examining the test sample. 88

    3-5. An overview of some related works. 88

    3-5-1. summary 90

    3-6. conclusion 92

    Chapter 4 System review and evaluation of its results. 93

    4-1. Evaluation and simulation indicators. 94

    4-2. Review process and output results. 96

    4-3. Summary. 100

    Chapter 5 Summary and suggestions 102

    5-1. Research findings. 103

    5-2. Research innovation. 104

    5-3. Suggestions 105

    References. 106

    Dictionary. 112

     

    Source:

     

    [1] Pressman, R.S. (2005). "Software Engineering: A Practitioner's Approach", Boston.

     

    [2] McConnell, S. (1996). "Rapid development: taming wild software schedules", Microsoft Press.

     

    [3] Anupama Kaushik, A.C., Deepak Mittal, Sachin Gupta. (2012). "COCOMO Estimates Using Neural Networks. I.J. Intelligent Systems and Applications", pp. 22-28. [4] Sommerville, I. (2007). "Software Engineering, Addison-Wesley". [5] Ali Bou Nassif and Luiz Fernando Capretz, D.H. (2012). "Software Effort Estimation in the Early Stages of the Software Life Cycle Using a Cascade Correlation Neural Network Model", 13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, IEEE, pp. 589-594.

     

    [6] Chintala Abhishek, V.P.K., Harish Vitta, Praveen Ranjan Srivastava. (2010). "Test Effort Estimation Using Neural Network", J. Software Engineering & Applications, pp. 331-340. [7] Divya Kashyap,, Prof. A. K. Misra. (2012). "Software Development Effort and Cost Estimation: Neuro-Fuzzy Model", IOSR Journal of Computer Engineering (IOSRJCE), pp. 12-14.

     

    [8] Jagannath Singh, B.S.,"Software Effort Estimation with Different Artificial Neural Network", pp. 815-818. [9] Jaswinder Kaur, S.S., Dr. Karanjeet Singh Kahlon, Pourush Bassi. (2010). "Neural Network-A Novel Technique for Software Effort Estimation". International Journal of Computer Theory and Engineering, pp. 13-17.

     

    [10] Kirti Seth, A.S., Ashish Seth. (2010). "Component Selection Efforts Estimation – a Fuzzy Logic Based Approach", International Journal of Computer Science and Security, (IJCSS), pp. 210-215.

     

    [11] Kunal Gaurav, P.J., K.S.Patnaik, PhD. (2013). "Analyzing Effort Estimation in Multistage based FL-COCOMO II Framework using various Fuzzy Membership Functions", International Journal of Computer Applications, pp. 35-39. [12] Manpreet Kaur, S.G. (2012). "Analysis of Neural Network based Approaches for Software Effort Estimation and Comparison with Intermediate COCOMO". International Journal of Engineering and Innovative Technology (IJEIT), pp. 197-200. [13] Prasad Reddy, Rama Sree P and Ramesh. (2010). "Software Effort Estimation Using Radial Basis and Generalized Regression Neural Networks", JOURNAL OF COMPUTING, pp. 87-92. [14] Prasad Reddy, Rama Sree. (2011). "Application of Fuzzy Logic Approach to Software Effort Estimation", (IJACSA) International Journal of Advanced Computer Science and Applications, pp. 87-92. [15] Raju. (2010). "An Optimal Neural Network Model for Software Effort Estimation", Int.J. Of Software Engineering, IJSE, pp. 63-78. [16] Roheet Bhatnagar, Vandana Bhattacharjee. (2011). "A Novel Approach to the Early Stage Software Development Effort Estimates using Neural Network Models: A Case Study", IJCA Special Issue on "Artificial Intelligence Techniques - Novel Approaches & Practical Applications", pp. 8-11.

     

    [17] Roheet Bhatnagar, M.K.G., Vandana Bhattacharjee. (2010). "Software Development Effort Estimation - Neural Network vs. Regression Modeling Approach". International Journal of Engineering Science and Technology, pp. 2950-2956.

     

    [18] Sandeep Kad, V.C. (2011). "Fuzzy Logic based framework for Software Development Effort Estimation". An International Journal of Engineering Sciences, pp. 330-342. [19] Shiyna Kumar, V.C. (2013). "Neural Network and Fuzzy Logic based framework for Software Development Effort Estimation", International Journal of Advanced Research in Computer Science and Software Engineering, pp. 19-24.

     

    [20] Vishal Sharma, H.K.V. (2010). "Optimized Fuzzy Logic Based Framework for Effort Estimation in Software Development", IJCSI International Journal of Computer Science, pp. 30-38.

     

    [21] Xishi Huang, D.H., Jing Ren, Luiz F. Capretz. (2005). "Improving the COCOMO model using a neuro-fuzzy approach", Elsevier, pp. 29-40.

     

    [22] Ali Idri, A.A., Laila Kjiri. (2000). "COCOMO Cost Model Using Fuzzy Logic", in 7th International Conference on Fuzzy Theory & Technology, New Jersey, pp. 1-4.

     

    [23] Barry Boehm, B.C., Ellis Horowitz, Chris Westland, Ray Madachy, Richard Selby. (1995). "Cost Models for Future Software Life Cycle Processes: COCOMO 2.0", Science Publishers, Amsterdam, The Netherlands.

    [24] Hamdy, A. (2012). "Fuzzy Logic for Enhancing the Sensitivity of COCOMO Cost Model", Journal of Emerging Trends in Computing and Information Sciences, pp. 1292-1297. [25] Kasabov, N.K. (1998). "Foundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering", The MIT Press.

     

    [26] Attarzadeh, I.H.O., Siew. (2009).

Improving the cost estimation of software projects in the COCOMO II model based on fuzzy logic algorithms