Effort estimation is one of the most important aspects of project implementation irrespective of the methodology in which the project will be implemented. If we have understood the scope in its discrete functionalities and are able to arrive with a good Work-Breakdown Structure [WBS] it would be easy to estimate the time taken to implement requirements. Other factors that would affect a realistic estimation are non-functional requirements such as:
- Performance
- Security Related issues
- Rich UI Requirements (Technical Complexities)
- Environment
- Resource availability and so forth
These factors will often creep up at the time of actual implantation of the application design and practice. Hence it is important to consider these factors along with the actual complexity of the Function Points.
Software industries follow several approaches for effort estimations and among them the most widely used are given below:
Estimation approach |
Category |
Examples of support of implementation of estimation approach |
Analogy-based estimation | Formal estimation model | ANGEL, Weighted Micro Function Points |
WBS based (bottom up) estimation | Expert estimation | Project Management Software, company specific activity templates |
Parametric models | Formal estimation model | COCOMO, SLIM , True Planning for Software |
Size-based estimation models | Formal estimation model | Function Point Analysis, Use Case Analysis , Story Points –Based estimation (Agile Based Development) |
Size-based estimation model has more accuracy while estimating the efforts, while others are very specific to the organization and may not yield accurate results. However, these can be applied at the initial estimations such as ball-park estimations.
USE CASE BASED ESTIMATION IS DISCUSSED BELOW:
A Use-Case is a series of related interactions between a user and a system that enables the user to achieve a goal.
Use-Cases are a way to capture functional requirements of a system. The user of the system is referred to as an ‘Actor’. Use-Cases are fundamentally in text form.
Use-Case Points – Definition
Use-Case Points (UCP) is a software estimation technique used to measure the software size with use cases. The concept of UCP is similar to FPs.
The number of UCPs in a project is based on the following:
- The number and complexity of the use cases in the system.
- The number and complexity of the actors on the system.
- Various non-functional requirements (such as portability, performance, maintainability) that are not written as use cases.
- The environment in which the project will be developed (such as the language, the team’s motivation, etc.)
Estimation with UCPs requires all use cases to be written with a goal and at approximately the same level, giving the same amount of detail. Hence, before estimation, the project team should ensure they have written their use cases with defined goals and at detailed level. Use case is normally completed within a single session and after the goal is achieved, the user may go on to some other activity.
Don’t miss my next two blogs where I will elaborate more on the topic of `Effort Estimation’.