Estimation in software engineering
Encyclopedia
The ability to accurately estimate the time and/or cost taken for a project
to come in to its successful conclusion is a serious problem for software engineers
. The use of a repeatable, clearly defined and well understood software development process
has, in recent years, shown itself to be the most effective method of gaining useful historical data that can be used for statistical estimation. In particular, the act of sampling more frequently, coupled with the loosening of constraints between parts of a project, has allowed more accurate estimation and more rapid development times.
Project
A project in business and science is typically defined as a collaborative enterprise, frequently involving research or design, that is carefully planned to achieve a particular aim. Projects can be further defined as temporary rather than permanent social systems that are constituted by teams...
to come in to its successful conclusion is a serious problem for software engineers
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
. The use of a repeatable, clearly defined and well understood software development process
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...
has, in recent years, shown itself to be the most effective method of gaining useful historical data that can be used for statistical estimation. In particular, the act of sampling more frequently, coupled with the loosening of constraints between parts of a project, has allowed more accurate estimation and more rapid development times.
Methods
Popular methods for estimation in software engineering include:- Analysis Effort methodAnalysis Effort methodThe analysis effort method is a method for estimating the duration of software engineering projects. It is best suited to producing initial estimates for the length of a job based on a known time duration for preparing a specification. Inputs to the method a numeric factors which indicate Size ,...
- COCOMOCOCOMO**********************************************************************************************The Constructive Cost Model is an algorithmic software cost estimation model developed by Barry W. Boehm...
(This model is obsolete and should only be used for demonstration purposes.) - COCOMO™ II
- COSYSMOCosysmoThe Constructive Systems Engineering Cost Model was created by Ricardo Valerdi while at the University of Southern California Center for Software Engineering. It gives an estimate of the number of person-months it will take to staff systems engineering resources on hardware and software projects...
- Evidence-based SchedulingEvidence-based SchedulingEvidence-based Scheduling is a software estimation approach created by Joel Spolsky, a commentator on software engineering principles.One of the core ideas of Evidence-based Scheduling, that adds to the normal estimation practices, is the idea of including all time spent, regardless of...
Refinement of typical agile estimating techniques using minimal measurement and total time accounting. - Function Point Analysis
- Parametric EstimatingEstimation theoryEstimation theory is a branch of statistics and signal processing that deals with estimating the values of parameters based on measured/empirical data that has a random component. The parameters describe an underlying physical setting in such a way that their value affects the distribution of the...
- PRICE SystemsPRICE SystemsPRICE Systems was founded in 1975 as a business within the RCA Corporation. It is generally acknowledged as the earliest developer of parametric cost estimation software....
Founders of Commercial Parametric models that estimates the scope, cost, effort and schedule for software projects. - Proxy-based estimatingProxy-based estimatingPROxy-Based Estimating is an estimating process used in the Personal Software Process to estimate size and effort.Proxy Based Estimating , is the estimation method introduced by Watts Humphrey...
(PROBE) (from the Personal Software ProcessPersonal Software ProcessThe Personal Software Process is a structured software development process that is intended to help software engineers understand and improve their performance, by using a "disciplined, data-driven procedure"...
) - Program Evaluation and Review TechniqueProgram Evaluation and Review TechniqueThe Program ' Evaluation and Review Technique, commonly abbreviated PERT, is a statistical tool, used in project management, that is designed to analyze and represent the tasks involved in completing a given project...
(PERT) - SEER-SEMSEER-SEMSEER for Software is an algorithmic project management software application designed specifically to estimate, plan and monitor the effort and resources required for any type of software development and/or maintenance project...
Parametric Estimation of Effort, Schedule, Cost, Risk. Mimimum time and staffing concepts based on Brooks's law - SLIMPutnam modelThe Putnam model is an empirical software effort estimation model.The original paper by Lawrence H. Putnam published in 1978 is seen as pioneering work in the field software process modelling....
- The Planning Game (from Extreme ProgrammingExtreme ProgrammingExtreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...
) - Weighted Micro Function PointsWeighted Micro Function PointsWeighted Micro Function Points is a modern software sizing algorithm invented by Logical Solutions in 2009 which is a successor to solid ancestor scientific methods as COCOMO, COSYSMO, maintainability index, cyclomatic complexity, function points, and Halstead complexity...
(WMFP) - Wideband DelphiWideband delphiThe Wideband Delphi estimation method is a consensus-based technique for estimating effort. It derives from the Delphi Method which was developed in the 1940s at the RAND Corporation as a forecasting tool...
- The Use Case Points method (UCP)
- CETINITK methodMethodology to evaluate complexity and cost of developing and maintaining application software for creating information systems - this is an algorithmic model assessment value software, developed by a consortium of Kazakh IT companies: Kazakhstan Association of IT-companies Company System...
See also
- Software development effort estimationSoftware development effort estimationSoftware development efforts estimation is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input...
- Software metricSoftware metricA software metric is a measure of some property of a piece of software or its specifications. Since quantitative measurements are essential in all sciences, there is a continuous effort by computer science practitioners and theoreticians to bring similar approaches to software development...
- Project managementProject managementProject management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...
- Cost overrunCost overrunA cost overrun, also known as a cost increase or budget overrun, is an unexpected cost incurred in excess of a budgeted amount due to an under-estimation of the actual cost during budgeting...
- RiskRiskRisk is the potential that a chosen action or activity will lead to a loss . The notion implies that a choice having an influence on the outcome exists . Potential losses themselves may also be called "risks"...
- Comparison of development estimation softwareComparison of development estimation softwareA comparison of notable Software development effort estimation software.-See also:* Software Sizing* Software metric* Software development effort estimation* Software parametric models* Cost estimation models...
External links
- Software Estimation chapter from Applied Software Project Management (O'Reilly)
- Article Estimating With Use Case Points from Methods & Tools
- The Dynamics of Software Projects Estimation
- Resources on Software Estimation from Steve McConnellSteve McConnellSteven C. McConnell is an author of many software engineering textbooks including Code Complete, Rapid Development, and Software Estimation...
- Links on tools and techniques of software estimation