300 likes | 529 Views
Software Cost Estimation (SCE). By: Abdulrahman Sawayfeh April 2011. Cost estimation is very important to estimate the cost of the project. It is necessary for: Budgeting Bidding Evaluation. SCE is different from traditional project costing. How?. SCE requires extra effort
E N D
Software Cost Estimation(SCE) By: AbdulrahmanSawayfeh April 2011
Cost estimation is very important to estimate the cost of the project It is necessary for: Budgeting Bidding Evaluation
SCE is different from traditional project costing. How? SCE requires extra effort SCE is performed quickly Experience needed Bias
Causes of inaccurate estimations Imprecise and changing requirements New software projects are mostly different form the previous similar ones. Software practitioners don't collect enough information about past projects. Estimates are forced to match the resources available.
Who Should perform the estimate? Common view: People who are directly involved with the implementation are involved in the estimate Opposing view: The estimate should be performed by an independent cost estimation team who can provide an unbiased estimate.
Types of Estimation Techniques Algorithmic models Expert Judgment Machine learning
A. Algorithmic Models SCE mainly uses algorithmic models Mathematical formula is used They are generated by analyzing historical data The accuracy of the model can be improved by calibrating the model to the project environment
A. Algorithmic Models Algorithmic models provide direct estimate of effort or duration
A. Algorithmic Models Effort = project size/productivity The relation between effort and project size is assumed to be linear. Most models allow for non-linear relationships by introducing economies or diseconomies of scale In other words: productivity varies depending on project size
A. Algorithmic Models A study which consisted of 60 projects at IBM federal systems division observed the following results: PM: Person months KLOC: 1000 lines of code
B. Expert Judgment Consultation with one or more local experts. This method relies on the experience of the expert’s knowledge in similar development environments. Because every project is unique, then there are obvious risks associated with this technique because some unique features may consume resources more than expected.
B. Expert Judgment The accuracy depends on the expert competency Studies showed that about 62% of cost estimators use this techniques
B. Expert Judgment Advantages Utilizing the experience Adaptation to exceptional circumstances
B. Expert Judgment Disadvantages Accuracy is limited by the competency of the estimator Estimation can be biased Incomplete benchmarking
B. Expert JudgmentWideband DELPHI Approach Gather the opinions of a group of experts with the aim of producing an accurate unbiased estimate It is a structured technique of expert judgment
B. Expert JudgmentWideband DELPHI Approach The procedure: Specification and estimation form issued by the coordinator. A group meeting is held to discuss the product and estimation issues. Experts produce an independent estimate. Estimates are returned indicating the median estimate and the expert’s personal estimate. Another group meeting is held to discuss results. Experts prepare a revised independent estimate. Steps 3-6 are repeated until a consensus is reached by the panel of experts.
B. Expert JudgmentWideband DELPHI Approach Advantages Removes politics from estimate The estimate is usually unbiased Group discussion ensures that estimation issues are not ignored
B. Expert JudgmentWideband DELPHI Approach Disadvantages Time consuming Very skilled and experienced staff needed
This technique aims at producing accurate estimates It is based on utilization of past experience in cost estimation of new projects by establishing a learning process It mainly estimates the expected effort C. Machine Learning
This technique involves the following tools: • Neural Networks • Fuzzy Logic • Case-Based Reasoning • Analogy • Rule-Based • Regression Trees • Hybrid System C. Machine Learning
Neural Networks Different layers with neurons or processing elements C. Machine Learning
Fuzzy Logic Systems • Used for effort prediction • Rarely used • It assigns a truth value for each input variable (0 - 1), 1 represents the absolute truth • It is suitable for inexperienced estimators • If Program Y < (0.7) THEN development effort = time short (0.8) • The fuzzy rule indicates that if a truth value of greater than 0.7 then the rule will ‘fire’ and produce a short development time, with a confidence of 0.8. C. Machine Learning
Case Based Reasoning (CBR) • A method for recording observations on previous projects (documentation) • When facing similar circumstances, choose the closest case and combine matching cases C. Machine Learning Accuracy of CBR is estimated to be better than Algorithmic models and close to experience judgment.
Analogy Involves comparing one or more completed projects in a similar domain to produce new estimates. Procedure Selection of analogies Assessing similarities and differences Assessment of analogy quality Consideration of any special cases Creating the estimate A famous software uses this technique is ANGEL C. Machine Learning
Rule Based System • Used for effort prediction • Compares facts about the new project that are stored in a knowledge base against a stored set of rules • When a match is made the rule will fire, which can create a chaining effect with one rule • The process continues until there is no more rules to fire and the output is presented to the user C. Machine Learning • IF module_size > 100 AND interface_size > 5 THEN error_prone_module • IF error_prone_module AND developer_experience < 2 THEN redesign_required
Regression Trees • A regression tree is created by examining what attributes can classify the data and then an algorithm constructs the tree • Splitting nodes where appropriate C. Machine Learning
Hybrid Neural Fuzzy Systems Fuzzy concepts combined with neural networks Truth values given to input variables C. Machine Learning
Comparison between Machine Learning techniques C. Machine Learning