Whenever we develop a software project, main questions that arise in our mind is how much it will cost to develop and how much time it will take for development. These estimates are necessary and needed before initiating development. But main critical problem that arises during software cost estimation is lack of case studies of projects usually created in a well-documented manner.
The software industry has inconsistently defined and explained metrics or atomic units of measure, data from real and actual projects are largely and highly suspect in terms of consistency and comparability. There are many questions as debates among developers and vendors of software cost estimation models and tools.
The main topics of these debates are of given below :
- Which model of cost estimation should be used?
- Whether or not to measure software size in source lines of code or function points.
- What constitutes a good estimate?
Nowadays, there are several models available of cost estimation like COCOMO model, Checkpoint, ESTIMACS, SLIM, Knowledge Plan, etc.). Among all of them, COCOMO model is one of most open and well-documented cost estimation models. At present, most of real-world use of cost models is bottom-up rather than top-down.
Below, diagram is given that illustrates and represents predominant practice.
The manager of software project defines and describes target cost of software, and after then until target cost can be justified, it manipulates parameters and size.
The process is described in diagram is very necessary to analyze and predict cost risks and understand sensitivities and trade-offs objectively. It simply forces manager of software project to examine and find out risks associated with achieving target costs and to discuss and explain this gained information with other stakeholders.
Following are the attributes that Good Software Cost Estimate Contains :
- It is simply conceived i.e. planned and supported by project manager, architecture team, development team, and test team responsible for performing work and task.
- All the stakeholders generally accept it as ambitious but realizable.
- It is based on a well-defined and efficient cost model of software on a credible basis.
- It is also based on a similar project experience database that includes and contains similar processes, relevant technologies, relevant environments, relevant quality requirements, and all similar people.
- It is also defined and explained in much amount of detail so that all of its key risks are simply understood and probability of success is objectively assessed.
Extrapolating from a good estimate, an ideal estimate would be derived from a mature cost model with an experience base that generally reflects more similar projects that are done by same team with similar mature processes and tools.
Use of Cost Estimation –
- One needs to choose and determine how many engineers are required for project to develop and establish a schedule during planning stage.
- While monitoring project’s progress, one needs to access whether project is progressing towards achieving goal according to procedure and whether it takes corrective action or not.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Cost Estimation Models in Software Engineering
- Software Engineering | Project size estimation techniques
- Software Engineering | Application Composition Estimation Model (COCOMO II | Stage 1)
- Estimation Technique in Agile
- Automation Estimation Tools
- Software Engineering | Cost Performance Index (CPI)
- Software Engineering | Cost Variance (CV) and Schedule Variance (SV)
- Cost and efforts of software maintenance
- Cost of Quality in Software Testing
- Difference between Cost Performance Index (CPI) and Schedule Performance Index (SPI)
- Difference between Cost Variance and Schedule Variance
- Cost and Schedule Estimating Process
- Software Engineering | Halstead’s Software Metrics
- Software Engineering | Classification of Software Requirements
- Software Engineering | Classification of Software
- Software Engineering | Software Project Management Complexities
- Software Engineering | Role and Responsibilities of a software Project Manager
- Software Engineering | Seven Principles of software testing
- Software Engineering | Agile Software Development
- Software Engineering | Software Maintenance