The success of any software project largely depends on effective estimation of project effort, time, and cost. Estimation helps in setting realistic targets for completing a project. The most important estimation that is required to be fairly accurate is that of effort and schedule. This enables you to obtain a reasonable idea of the project cost.
You can carry out effort and schedule estimation with the help of certain estimation models at each phase of the software development life cycle (SDLC).
Software Effort and Schedule Estimation course includes:
- The Basic Concepts of Effort and Schedule Estimation
- Process for Effort and Schedule Estimation
- Effort and Schedule Estimation Models
This course will enable you to:
- Explain the basic concepts related to effort and schedule estimation for a software project.
- Describe the process used for estimating the effort and schedule for a software project.
- Describe the different models available for estimating the effort and schedule for software projects.
You receive a certificate of completion after successfully completing this course.
Estimation helps determine the resources required, the budget, the schedule, and the milestone dates for a project. You need to consider four basic factors while estimating for a project.
- Size of the product to be built
- Effort required for building the product
- Project schedule
- Project cost
Estimation of project effort and schedule is important because the cost of building the product is the estimated effort multiplied by the probable manpower costs. Some of the factors that influence the effort and schedule estimates are the scale factors and cost drivers. The calibration process helps in validating whether the estimates arrived at are workable or not. The process of effort and schedule estimation involves:
- Collecting data from past projects
- Selecting the technique to be used
- Determining size
- Determining the influencing factors
- Determining the adjusted effort
- Distributing the effort and schedule across the SDLC
- Determining the total development time
- Storing historical data
Effort forms the basis for schedule estimation. Therefore, any adjustments made to the schedule also affect the effort required to complete the project. There are various techniques available for cost (effort and schedule) estimation. These can be classified as follows:
- Model-based: COCOMO and Putnam’s Software Lifecycle Model (SLIM)
- Expertise-based: Delphi and rule-based
- Learning-oriented: Neural and case-based
- Dynamics-based: Abdel-Hamid-Madnick technique
- Composite: Bayesian Approach and COCOMO II
Most organizations use the model-based technique for effort and schedule estimation. Estimation models are algorithmic models and work on a basic formula with inputs such as size of software (in KLOC or FP) and environmental factors or multipliers, which play a major role in adjusting the effort required for a project.
There are two approaches to model-based estimation. The top-down (Macro-estimating) approach begins at the system level and the bottom-up (Micro-estimating) approach begins at the component level.
The features of a typical cost estimation model include consistent application to information available, usable as early as possible in the software project, and stands on data available from past projects. The most commonly used cost estimation models are:
- COCOMO 81
- COCOMO II
- Putnam’s SLIM
The three levels of the COCOMO 81 model that Barry W. Boehm proposed are basic, intermediate, and detailed.
COCOMO II is the modern update of COCOMO 81 and conserves the original COCOMO strengths, while addressing new and emerging software practices.