Software Development Effort Estimation Techniques

90 downloads 413 Views 224KB Size Report
Keywords– Software Development Effort, Effort Estimation,. Soft Computing Based Techniques, Estimation Models. I. INTRODUCTION. Software cost estimation ...
International Journal of Electronics Communication and Computer Engineering Volume 5, Issue 5, ISSN (Online): 2249–071X, ISSN (Print): 2278–4209

Software Development Effort Estimation Techniques: A Review Rshma Chawla

Deepak Ahlawat

Assistant Professor at MMICTBM, MMU Mullana Email: [email protected]

M.Phi.l Research Scholar at MMICTBM, MMU Mullana Email: [email protected]

Abstract – The most important activity in software project management process is the estimation of Software development effort. The literature shows many algorithmic cost estimation models such as Boehm’s COCOMO, Albrecht's Function Point Analysis, Putnam’s SLIM, ESTIMACS, Soft computing based techniques etc., but each model have their own advantages and disadvantages in predicting development cost and effort. This is because of the availability of project data in the initial stages of development process is often incomplete, inconsistent and vague. The accurate effort estimation in software project management process is major challenge. This paper is a systematic reviewof classic and contemporary literature on software effort estimation. A systematicsearch is done across data sources to understand the issues and research problems ineffort estimation problem domain. Keywords– Software Development Effort, Effort Estimation, Soft Computing Based Techniques, Estimation Models.

I. INTRODUCTION Software cost estimation is a vital aspect that guides andsupports the planning of software projects. Controlling theexpenses of software development effectively is ofsignificant importance in today’s competitive world [1, 2].The need for reliable and accurate software developmentcost predictions in software engineering is a challengingperspective accounting for considerable financial andstrategic planning [3]. Software cost estimation guides theprediction of the likely amount of effort, time, and staffinglevels required to build a software system at an early stageduring a project. However, estimates at the preliminarystages of the project are the most difficult to obtainbecause the primary source to estimate the costing comesfrom the requirement specification documents [4]. Theaccuracy of the estimates is quite low at the starting stagesof the project because of the limited details available. Ageold approaches for software projects effort prediction suchas the use of mathematical formulae derived fromhistorical data, or the use of expert’s judgments, lack interms of effectiveness and robustness in their results.These issues are even more critical when these effortprediction approaches are used during the early phases ofthe software development lifecycle.

II. EFFORT ESTIMATION MODELS 2.1 Algorithmic models

Many models have been developed to estimate the software development effort. Many of these models are

Mukesh Kumar

Administrator cum HOD, PDM Group of Institutions, Karsindhu (Safidon) Jind Email: [email protected]

parametric, in that they predict development effort using a formula of some fixed form that is parameterized from historical data.Some of the famous algorithmic models are: Boehm’s COCOMO’81, II [6], Albrecht’s Function Point [6] and Putnam’s (1978) SLIM. All of them require inputs, accurate estimate of specific attributes, such as Line of Code (LOC), number of user screen, interfaces and complexity, which are not easy to acquire duringthe early stage of software development life cycle process. Models based on historical data have limitations. Understanding and the calculation using these models are difficult due to inherent complex relationships between the related attributes, which are unable to handle categorical data as well as lack of reasoning capabilities [5]. Besides, attributes and relationships used to predict software development effort those could change with the passage of time and/or differ for software development environments [25]. The limitations of the algorithmic models led to the exploration of the nonalgorithmic techniques visualised through soft computing philosophy.

2.1.1 Constructive Cost Model

The Constructive Cost Model (COCOMO) [6, 7] is an algorithmic software cost estimation model developed by Barry W. Boehm. COCOMO was first published in Boehm's 1981 book Software Engineering Economics as a model for estimating effort, cost, and schedule for software projects. COCOMO is a model that allows one to estimate the cost, effort, and schedule when planning a new software development activity. This model estimates the total effort in terms of “person – months” of the technical project staff. COCOMO is a hierarchy of software cost estimation models, which include basic, intermediate and detailed sub models. The basic model aims at estimating, in a quick and rough fashion, most of the small to medium size projects. The Basic COCOMO model is based on the relationship: DE= a * (SIZE)b Development Effort (DE), where, SIZE is measured in thousand delivered source instructions. The constants a, b are dependent upon the ‘mode’ of development of projects. DE is measured in man-months. Boehm proposed 3 modes of projects: Organic mode – simple projects that engage small teams working in known and stable environments. Semi-detached mode – projects that engage teams with a mixture of experience. It is in between organic and embedded modes. Embedded mode – complex projects that are developed under tight constraints with changing requirements.

Copyright © 2014 IJECCE, All right reserved 1166

International Journal of Electronics Communication and Computer Engineering Volume 5, Issue 5, ISSN (Online): 2249–071X, ISSN (Print): 2278–4209 Table 1: Distinguishing Features of Software Development Modes.

2.1.1.1 According to the Boehm’s, the basic COCOMO equation takes the following form: Effort = ab * (KLOC) bb D = cb * (KLOC) db Where, D is estimated development time in months. The coefficients ab, bb, cb, db are given in table 1.4 These coefficients are constraints for different category for software products. Table 2: Basic COCOMO coefficients Project aa bb cc dd Organic 2.4 1.05 2.5 0.38 Semidetached 3.0 1.12 2.5 0.35 Embedded Mode 3.6 1.20 2.5 0.32

Estimation of development effort

Organic: Effort = 2.4 * (KLOC) 1.05 PM Semidetached: Effort = 3.0 * (KLOC) 1.12 PM Embedded: Effort = 2.4 * (KLOC) 1.20 PM

Estimation of development time 0.38

Organic: Tdev = 2.5 * (effort) Month Semidetached: Tdev = 2.5 * (effort) 0.35 Month Embedded: Tdev = 2.5 * (effort) 0.32 Month When effort and development time are known, the average staff size to complete the project may be calculated as: Average staff size (SS) = E / D per Persons. When project size is known, the productivity level is calculated as: Productivity (P) = KLOC / E (KLOC/PM).

The basic COCOMO model estimates the effort required to develop a software product, using only a single predictor variable (size in delivered source instructions) and three modes of software development. However its accuracy is only good enough to make it very useful in the rough early stages of software product definition. With respect to the COCOMO database, the Basic COCOMO estimates were within a factor of 1.3 of the actual only 29% of the time, and within a factor of 2 of the actual only 60% of the time.

2.1.1.2 The intermediate COCOMO model

The basic model allowed for a quick and rough estimate, but it resulted in a lack of accuracy. So Boehm introduced (reduced large number of candidate factors down to relatively manageable number of factors which can be used for practical software cost estimation) resulting set of 15 factors (predictors), or cost driver attributes. The cost drivers are grouped into four categories:

1. Product attributes

(a) Required software reliability (RELY) (b) Database size (DATA) (c) Product complexity (CPLX)

2. Computer attributes

(a) Execution time constraints (TIME) (b) Main storage constraints ( STOR) (c) Virtual Machine volatility (VIRT) (d) Computer Turnaround time (TURN)

3. Personal Attributes

(a) Analyst capability (ACAP)

Copyright © 2014 IJECCE, All right reserved 1167

International Journal of Electronics Communication and Computer Engineering Volume 5, Issue 5, ISSN (Online): 2249–071X, ISSN (Print): 2278–4209 (b) Application experience (AEXP) (c) Programmer capability (PCAP) (d) Virtual machine experience (VEXP) (e) Programming language experience (LEXP)

4. Project attributes

(a) Modern programming practices (MODP) (b) Use of software tools (TOOL) (c) Required development schedule (SCED) Each of these cost driver attributes determines a multiplying factor which estimates the effect of the attribute on software development effort. These multipliers are applied to nominal COCOMO development effort estimate to obtain a refined estimate of software development effort

Table 3: Intermediate COCOMO nominal effort estimating equations Development Mode Nominal Effort Equation Organic (MM)NOM = 3.2 (KDSI)1.05 Semidetached (MM)NOM = 3.0 (KDSI)1.12 Embedded (MM)NOM = 2.8 (KDSI)1.20 Each cost driver is rated for a given project environment. The rating uses a scale very low, low, nominal, high, very high, extra high which describes to what extent the cost driver applies to the project being estimated. Table 4 gives the multiplier values for the 15 cost drivers and their rating as provided by Boehm.

Table 4: Multiplier Values

The multiplying factors for all 15 cost drivers are multiplied to get the effort adjustment factor (EAF). Typical values for EAF ranges from 0.9 to 1.4. The intermediate equation takes the form: E = ai(KLOC) bi* EAF D = ci (E) di The coefficient ai, bi, ci, di are given in table 5 Table 5: Coefficients for intermediate COCOMO Project ai bi ci di Organic 3.2 1.05 2.5 0.38 Semidetached 3.0 1.12 2.5 0.35 Embedded Mode 3.6 1.20 2.5 0.32

2.1.1.3 Detailed COCOMO model

A large amount of work has been done by Boehm to capture all significant aspects of software development. It offers a means for processing all the project characteristics to construct a software estimate. The detailed model introduces two more capabilities:

(1) Phase sensitive effort multipliers:

Some phases (design, programming, integration / test) are more affected than others by factors defined by cost drivers. The detailed model provides a set of phase sensitive effort multiplier for each cost driver. This helps in determining the manpower allocation for each phase of the project. Copyright © 2014 IJECCE, All right reserved 1168

International Journal of Electronics Communication and Computer Engineering Volume 5, Issue 5, ISSN (Online): 2249–071X, ISSN (Print): 2278–4209

(2) Three – level product hierarchy:

Three product levels are defined. These are module, subsystem and system levels. The ratings of the cost drivers are done at appropriate level; that is, the level at which it is most susceptible to variation.

2.2 Non-Algorithmic models

In 1990’s non-algorithmic model (Soft Computing Techniques) was conceptualized and have been proposed to project cost estimation. Software researchers have turned their attention to new approaches those are based on soft computing methodologies such as based on artificial neural networks and fuzzy logic models and genetic algorithms based implementations. Neural networks are able to generalize from trained data set. A set of training data, a specific learning algorithm makes a set of rules that fit the data and fits previously unseen data in a rational manner as well. Some of the early works show that neural networks are adequately applicable to cost estimation phases as presented in the works of Venkatachalam [8] and Krishna and Satsangi [9]. Fuzzy logic offers a powerful linguistic representation that is sufficiently accommodate the imprecision in inputs and outputs, while providing a more realistic knowledge based approach to model building. Contemporary research establishes to some extent that fuzzy logic model achieved good performance index, being outperformed in terms of accuracy only by neural network model with considerably more input variables. Hodgkinson and Garratt in their works presented that estimation by expert judgment was better than all regression based models [10].

2.2.2 Fuzzy Logic in Software Effort Estimation A fuzzy set theoretic model is a modelling construct featuring two main properties [14]: (1) It operates at a level of linguistic terms (fuzzy sets), and (2) it represents and processes uncertainty. Fuzzy logic offers a particularly convenient way to generate a keen mapping between input and output spaces thanks to the natural expression of fuzzy rules. In software development effort estimation, two considerations justify the decision of implementing a fuzzy model: First, it is impossible to develop a precise mathematical model of the domain [14]; second, metrics only produce estimations of the real complexity. Thus, according to the previous assertions, formulating a tiny set of natural rules describing underlying interactions between the software metrics and the effort estimation could effortlessly reveal their intrinsic and wider correlations.

III. REVIEW CONCLUSION The study reveals that each model/technique has their own advantages and disadvantages in predicting development cost and effort. This is because of the availability of project data in the initial stages of development process is often incomplete, inconsistent and vague. The accurate effort estimation in software project management process is major challenge. But during the literature review we saw that the soft computing based techniques produce better approximation than other methods.

2.2.1 Fuzzy logic models

A fuzzy model is used when the systems are not suitable for analysis by conventional approach or when the available data is uncertain, inaccurate or vague [11]. The fuzzy model uses the fuzzy logic concepts introduced by Lofti A. Zadeh [12]. Fuzzy reasoning consists of three main components [13]: fuzzification process, inference from fuzzy rules and defuzzification process. Fuzzification process is where the objective term is transformed into a fuzzy concept. The membership functions are applied to the actual values of variables to determine the confidence factor or membership value (MV). Fuzzification allows input and output to be expressed in linguistic terms. Inferencing involves defuzzification of the conditions of the rules and propagation of the confidence factors of the conditions to the conclusion of the rules. Defuzzification process refers to the translation of fuzzy output into objective terms. A system based on Fuzzy Logic has a direct relationship with fuzzy concepts (such as fuzzy sets, linguistic Variables etc.) and fuzzy logic. The popular fuzzy logic systems can be categorised into three types: pure fuzzy logic systems, Takagi and Sugeno s fuzzy system, fuzzy logic systems with fuzzification and defuzzification [13]. Since most of the engineering applications produce crisp data as input and expects crisp data as output, the last type i.e., fuzzy logic system with fuzzification and defuzzification is most widely used one and was first proposed by Mamdani. It has been successfully applied to a variety of industrial processes and consumer products [13].

FUTURE SCOPE The study indicates directions for further research.Some of the identified future motivations of research areas follows: 1) Different fuzzy logic function can be used to predict software effort estimation and their result would be compared with other methods 2) The fuzzy logic functions can be deployed on COCOMO II to get effort prediction 3) With a little more knowledge in fuzzy logic, customized MFs can be developed to represent inputsmore closely to tolerate imprecision and uncertainty ininputs so that the same is not propagated to theoutputs.

REFERENCES [1]

[2]

[3]

[4]

S.G MacDonell, and A.R Gray, “A comparison of modelling techniques for software development effort prediction”, in:Proceedings of the International Conference on Neural Information Processing and Intelligent Information Systems, Dunedin, New Zealand, Springer, Berlin, 1997, pp. 869–872. K. Strike, K. El-Emam, and N. Madhavji, “Software cost estimation with incomplete data”, IEEE Transactions on Software Engineering, 27(10) 2001. A. C. Hodgkinson, and P. W. Garratt, “A neurofuzzy cost estimator”, in: Proceedings of the Third International Conference onSoftware Engineering and Applications—SAE 1999, pp. 401– 406. C. Kirsopp, M. J. Shepperd, and J. Hart, “Search heuristics, casebased reasoning and software project effort prediction", Genetic and Evolutionary Computation Conference (GECCO), New York,AAAI, 2002.

Copyright © 2014 IJECCE, All right reserved 1169

International Journal of Electronics Communication and Computer Engineering Volume 5, Issue 5, ISSN (Online): 2249–071X, ISSN (Print): 2278–4209 [5] [6]

[7]

[8]

[9]

[10]

[11] [12] [13]

[14] [15]

[16]

[17]

[18]

[19]

[20]

[21]

[22]

[23]

[24]

[25]

Boetticher, G.D., 2001. An assessment of metric contribution in the construction of a neural network-based effort estimator. Barry W. Boehm, “ Software Engineering Economics”, prentice – Hall , Inc., Englewood Cliffs, New Jersey 07632, 1981, ISBN 0 – 13 – 822122 – 7. K.K.Aggarwal, Yogesh Singh, “Software Engineering”, New Age International Publishers, (Third Edition), 2010, ISBN (13): 978 – 81 – 224 – 2360 – 0. Venkatachalam, A.R., 1993. Software cost estimation using artificial neural networks. Proceedings of the 1993 International Joint Conference on Neural Networks, pp: 987-990. S. Kumar, B.A. Krishna, and P.S. Satsangi, "Fuzzy systems and neural networks in software engineering projectmanagement‖. Journ- al of Applied Intelligence, Vol. 4, 1994, pp. 31-52. Hodgkinson, A. C. and P.W. Garratt, 1999. A NeuroFuzzy Cost Estimator, in Proceddings of the 3rd International Conference on Software Engineering and Applications – SAE.,. pp: 401-406. R. Babuska, Fuzzy Modeling for Control, Kluwer Academic Publishers, Dordrecht, 1999. LoftiZadeh, A., 1994. Fuzzy Logic, Neural Networks and Soft Computing, Communication of ACM 37(3): 77-84. LoftiZadeh, A., 2001., The Future of Soft Computing, In Joint 9th IFSA World Congress and 20th NAFIPS International Conference, Vancouver, Canada. Pedrycz, W., Gomide, F., 1998. An Introduction to Fuzzy Sets. The MIT Press. Xu, Z., Khoshgoftaar, T.M., 2004. Identification of fuzzy models of software cost estimation. Elsevier Fuzzy Sets and Systems 145 (1), 141–163. L.M. Cuauhtemoc, Y.M. Cornelio, G.T. Agustin. Fuzzy Logic Systems for Software Development Effort Estimation Based Upon Clustering of Pro- grams Segmented by Personal Practices‖, Elec- tronics, Robotics and Automotive Mechanics Conference (CERMA'06), 2006, pp. 367-372. Moon Ting Su, TeckChaw Ling, KeatKeongPhang, Chee Sun Liew, Peck Yen Man, Enhanced Software Development Effort And Cost Estimation Using Fuzzy Logic Model, Malaysian Journal of Computer Science, Vol. 20(2), 2007 Venus Marza, Amin Seyyedi, and Luiz Fernando Capretz. Estimating Development Time of Software Projects Using a Neuro Fuzzy Approach, World Academy of Science, Engineering and Technology 46 2008. Parvinder S. Sandhu, PorushBassi, and Amanpreet Singh Brar. Software Effort Estimation Using Soft Computing Techniques, World Academy of Science, Engineering and Technology 46 2008. ImanAttarzadeh and Siew Hock Ow, Software Development Effort Estimation based on a New Fuzzy Logic Model, International Journal of Computer Theory and Engineering, Vol 1. No. 4 October 2009. Ch. Satyananda Reddy, KVSVN Raju. An Improved Fuzzy Approach for COCOMO s Effort Estimation using Gaussian Membership Function, JOURNAL OF SOFTWARE, VOL. 4, NO. 5, JULY 2009 Wei Lin Du, Danny Ho, Luiz Fernando Capretz. Improving Software Effort Estimation Using Neuro-Fuzzy Model with SEER-SEM, Global Journal of Computer Science and Technology, Vol. 10 Issue 12 (Ver. 1.0) October 2010. AbouBakarNauman, Romana Aziz. Development of Simple Effort Estimation Model based on Fuzzy Logic using Bayesian Networks, IJCA Special Issue on “Artificial Intelligence Techniques - Novel Approaches & Practical Applications” AIT, 2011. Rahul Kumar Yadav,Dr. S. Niranjan,Software Effort Estimation Using Fuzzy Logic: A Review, International Journal of Engineering Research & Technology (IJERT) Vol. 2 Issue 5, pg. 1377-1384, May 2013. ISSN: 2278-0181. Krishanmoorthy Srinivasan and Douglas Fisher, “Machine Learning Approaches to Estimating Software Development Effort”, 1995.

Copyright © 2014 IJECCE, All right reserved 1170