What is meant by software cost estimation?
In software engineering, cost estimation defines the calculation of the amount spent on software development and testing. This includes maintenance, managing, buying equipment, user requirement reviews, software, training, and servers. Many methods are developed to estimate the software project cost. Software cost estimation has a major impact on planning and managing a project. The software cost estimation has three estimates like project duration(time), effort(person-month), and cost(dollars).
What is meant by cost estimate?
The approximate calculation of the project cost is known as cost estimation. The estimated cost cannot be exact as there are many variables in calculating the cost like technical, political, human, and environmental. Generally, the cost estimate is measured in terms of effect. It affects both the project plan and budget.
Cost estimate in SDLC
Cost estimates need to be made throughout the software development life cycle (SDLC). Once the project requirements are outlined, then a cost estimate is made. Doing cost estimation during the entire life cycle allows for the refinement of the estimate because there is more data available.
Process of cost estimate
A set of procedures and techniques used to obtain the software cost estimation is known as the cost estimation process. There will be a set of inputs to the process and the process use the input to calculate the output. The two views of the cost estimation process are,
Classical view
The software cost estimation models will view the estimation process as a function, which is computed from the cost drivers(which affect the software cost). Cost drives include design methodology, risk assessment, skill levels, programming language, system complexity, or personal experiences. Software requirements are the primary cost driver.
In the above figure, the primary input of the process is requirements and the requirements act as the basis for estimation. The estimation process generates three different outputs like,
- Loading: manpower loading is the total count of personnels allocated to the project.
- Duration: project duration is the time required for project completion.
- Effort: The effort required for project completion and measure in units as person-months.
These outputs are computed as a fixed number either with or without the tolerance in the class view. In reality, it is more complex than the figure, as the input to the process can be modified during the software cost estimation process.
Actual view
The actual view contains the constraints and inputs that are considered besides the cost drivers. The primary constraint is the financial constraint (the budget allocated to the project). The other constraints are manpower and data. Input such as architecture, which defines the components that made up the system and the interrelationships between these components. Companies might have software processes or existing architecture; thus, for these companies the cost estimation act as their basic estimation.
An experienced estimator will detect the inconsistency and ambiguities in the requirements. In the estimation process, the estimator will try to solve all these ambiguities by modifying the requirements. If the inconsistent or ambiguous requirements stay unsolved, it will affect the estimation accuracy.
Cost estimate method
The few important techniques or methods of cost estimate are,
Algorithmic/parametric model
The algorithmic model uses mathematical equations to perform the estimation. The equations are mostly based on historical data. The inputs are function point, source line of the code(SLOC), and other cost drivers. The algorithmic models are based on the cost factor selection. The algorithm model form is,
Effort = f(x1,x2,x3,….xn).
where x1, x2, x3,...., xn are the cost factor.
Cost factor
Besides the software size, there are other cost factors. The most comprehensive set of cost factors is used and proposed by Boehm et al in the COCOMO II model. These cost factors can be divided into four different kinds,
Product factor includes reliability, database size, product complexity, reusability, and documentation match to the life-cycle needs.
Personnel factor includes application experiences, analyst capability, program capability, platform experience, personal continuity, language, and tool experience.
Project factor includes software tool usage, multisite development, and required development schedule.
Computer factor includes execution time, computer turnaround constraints, main storage constraint, and platform volatility.
Examples of algorithmic models are the Constructive Cost Model(COCOMO), COCOMO II, and software life cycle model.
Advantages
- Easy to modify the input data.
- Easy to customize and refine the formulas.
Disadvantages
- Difficult to deal the exceptional conditions.
- Factors and experience cannot be quantified.
Expert judgment
Expert judgment involves consulting with a software cost estimation expert or a group of experts. This method captures both the knowledge and experience of the estimator or experts (the person who gives the estimation based on their own experience from a similar project). The experts provide an estimation based on the understanding and experience of the proposed project. Examples of expert judgment methods are work breakdown structure, Delphi.
Advantages
- Used when there is no empirical and quantified data.
- Differentiated the factors from past project user requirements and experiences from the proposed project.
Disadvantages
- Difficult to document all the factors used by the experts.
- Estimation quality is based on the opinion of the experts.
Top-down
The other name of top-down is the macro model, using the top-down estimating method, overall cost estimation for the project is derived from the global properties of the software project, and then the project is partitioned into various low-level components. This approach is more suitable for cost estimation at the early stage. Example: Putnam model.
Advantage
- Minimum project details are required.
- Easy and fast to implement.
Disadvantage
- There is no detailed basis.
- Tend to overlook the low-level components.
Bottom-up
In the bottom-up method, each component of the software system is separately estimated and the results are aggregated to produce an estimate for the overall system. The requirement for this approach is that an initial design must be in place that indicates how the system is decomposed into different components.
Example: COCOMO, COCOMO II model.
Advantage
- More stable and detailed.
- Allow the software group to hand the estimate.
Disadvantage
- Overlook the system-level cost.
- Time-consuming.
Context and Applications
This topic is important for postgraduate and undergraduate courses, particularly for, bachelor’s in computer science engineering and associate of science in computer science.
Practice Problems
Question 1: Select the parameters or arguments involved in calculating the cost of the software project?
- Hardware cost
- Software cost
- Effort cost
- All the above
Answer: Option d is correct.
Explanation: To calculate the software development cost all the above-mentioned parameters are accounted for. And other costs like travel, training cost, etc.
Question 2: ____ is developed using the cost information which relates the software metric to the project cost.
- Expert judgment
- Parkinson’s law
- Algorithm cost modeling
- None of the above
Answer: Option c is correct.
Explanation: The algorithmic model uses the basic regression formula with parameters that are acquired from the historical data and current as well future project characteristics.
Question 3: Cost estimate is done throughout the ______.
- Software development life cycle.
- COCOMO
- Line of code
- None of the above
Answer: Option a is correct.
Explanation: The cost estimate must be done throughout the software development life cycle (SDLC). Once the project requirements are outlined then the project cost estimate can be done. Performing the cost estimation during the software development life cycle will help to refine the estimation as it has more data.
Question 4: COCOMO is a _____ model or approach to estimate the cost.
- Linear model
- Algorithmic model
- Multiplicative model
- Budget model
Answer: Option b is correct.
Explanation: The Constructive Cost Model(COCOMO), software life cycle model, and COCOMO II are an example of the algorithmic model. It is an algorithmic method to calculate effort and time.
Question 5: Which of the following is used to predict the effort as the function of FP or LOC?
- COCOMO
- FP-based estimate
- Both COCOMO and FP-based estimation
- Process-based estimate
Answer: Option C is correct.
Explanation: The formulas which are derived empirically are used in estimating the efforts using the COCOMO and FP-based estimation.
Want more help with your computer science homework?
*Response times may vary by subject and question complexity. Median response time is 34 minutes for paid subscribers and may be longer for promotional offers.
Search. Solve. Succeed!
Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.
Search. Solve. Succeed!
Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.