GagandeepSingh Kalra(7469955) SarjakShirish Shah (7496952) Parikshat Sharma (7481780) Software Engineering Project Managementsubmitted to Professor Shervin Shirmohammadi in partial fulfillment of the requirements for the course ELG 5100 Ranking and Clustering Software Cost Estimation Models through a Multiple Comparisons Algorithm
AGENDA Introduction to Cost Estimation Why Cost Estimation Cost Estimation Methods Advantages and Disadvantages of methods Which one is Accurate? Performance Analysis Comparison of different models Future Scope and Conclusion
Introduction Cost Estimation: Cost estimation is a process or an approximation of the probable cost of a product, program, or a project, computed on the basis of available information. The factors that affect the cost estimation process: Size Programmer ability Experience of the developer Complexity of the project Requirements
Why Cost Estimation ? Accurate Cost Estimation is very important for every kind of project, the primary reason being that if we do not estimate the projects in a proper way; the cost of the project is very high sometimes which has even seen to reach 150-200% more than the original cost. It also helps : To schedule work. To make good decisions. To support preplanning. To determine whether the project is worth doing.
Cost Estimation Methods Non Algorithmic Algorithmic
3 1 2 Expert Judgement Method Estimation by Analogy Top Down Estimation Non Algorithmic Methods Bottom Up Estimation 4 5 Pricing to Win
Uses Delphi Technique. Expert Judgement : Consultation with experts. Example of Using Delphi
Critical role is played by the similarity measures between a pair of projects. A distance is calculated between the software project being estimated and each of the historical software projects and then finds the most similar project to generate the effort estimate. Estimation by Analogy :
When there is no detailed information available about the project this estimation is very useful as it assesses the overall system functionality. • Bottom up Cost Estimation : • Start at the component level. • Estimate the effort required for each component. • Add these efforts to reach a final estimate. Top Down Cost Estimation : • Pricing to Win : Whatever the customer has to spend on the project replicates the software cost.
1 Function Point Analysis 2 COCOMO Algorithmic Models Putman’s Model 3 MOPSO 4 4 SVR 5
There are two steps in counting function points: a. Counting the user functions:- A raw count of functions is generated in the first step for different complexity levels. The function count (FC) is calculated by the sum of the above numbers weighted according to the complexity level. b. Adjusting for environmental processing complexity:- The final function points is arrived at by multiplying FC by an adjustment factor. This adjustment factor allows the FC to be modified by at most 35% or -35%. Function Point Analysis : Size is calculated in terms of the functions that the system has to deliver to the user.
Basic COCOMO :Determines effort as a function of program size. EFFORT = a* (KLOC)b Where a and b depend on project type. Where TDEV is development time in months and E is effort in Person months. COCOMO Model : Constructive Cost Model (COCOMO) is widely used algorithmic software cost model.
EFFORT = a* (KLOC)b * EAF Where EAF is Effort Adjustment Factor which is calculated through the rating given to the each of the attributes mentioned above. Intermediate COCOMO : Intermediate COCOMO Model computes software development effort as a function of program size and set of cost drivers
This model is proposed by Putnam and is an empirical software effort estimation model. EQUATION: Technical constant C= size * B1/3 * T4/3 Total Person Months B=1/T4 *(size/C)3 T= Required Development Time in years C is a parameter dependent on the development environment and is determined on the basis of historical data of the past projects. Rating: C=2,000 (poor) C=8000 (good) C=12,000 (excellent). Putman’s Model :
The MOPSO model effort is calculated by using the following formula: Effort = a*(size)b * EAF + C a and b are cost parameters: a=3.96 b=1.12 c is bias factor: c=5.42 Multiple Objective Particle Swarm Optimization (MOPSO) :
In ε-SVR a function f(x) that has at most ε deviation from the actual targets y for all training data. Errors less than εare ignored but any deviation larger than εis not accepted. Support Vector Regression(SVR) :
MRE (Magnitude of Relative Error): MRE calculates the error in an individual estimate for each data set. • RMSE (Root Mean Square Error): It measures differences between values predicted by a model or estimator and the values actually observed from the thing being modelled or estimated. It is just the square root of the mean square error as shown in equation given below: Comparison Algorithms
MARE or MMRE (Mean Magnitude of Relative Error): It measures the percentage of the absolute values of the relative errors, by averaging it over the number of items (n):- PRED (N): It calculates the average percentage of estimates that lie within N% of actual values. If the percentage of predictions that fall within p % of the actual is denoted as PRED (p), k is the number of projects where MRE is less than or equal to p, and n is the number of projects then, PRED (p) = k / n
Performance Analysis The table below shows the COCOMO Data set which includes 63 historical projects.
Graphical representation SVR estimated efforts are comparatively closer to the measured effort.
The MARE ( Mean Absolute Relative Error) and Prediction are calculated using the previously mentioned formulas and the results obtained are shown below. Comparisons of results through MARE and Prediction
Graphical representation • It is observed SVR gives better results in comparison to Intermediate COCOMO and MOPSO models. • The MARE and Prediction Accuracy is good.
Future Scope and Conclusion The accuracy of the model is measured in terms of its error rate and prediction. It is observed from the results that Support Vector Regression (SVR) gives more accurate estimation for the software project effort. On testing the performance of the model in terms of the MARE and Prediction the results can be useful. In future work we can come up with some more advanced data mining algorithms and machine learning languages which can extract information from a data set and transform it in to a structure which is readily understandable so that the overall software cost estimation process can be improved.
References Swetakumari, ShashankPushkar. “ Performance analysis of software cost estimation methods : A review” volume 3 issue 7, July 2013. Swetakumari, ShashankPushkar.” Comparisons and Analysis of different software cost estimation methods” volume 4 no. 1,2013. VahibKhatibi , DAYAN N.A.Jawawi.”Software cost estimation methods : A Review”Faculty of Computer Science and Information System UniversitiTechnologi Malaysia (UTM), Johor,Malaysia, volume 2,2011. Alex J Samola and Bernhard Scholkopf. “ A tutorial on Support Vector regression” August 2004, Volume 14, Issue 3, pp 199-222
THANK YOU !! ANY QUESTIONS?