Use case based estimation
  
How long will your software development project take? How long is a piece of string? If you are in  software development, you are always faced with the problem of estimation. It is difficult to predict  accurately how long software development will take because of the underlying complexities in  requirements that are not always well understood. Many techniques exist, some very complex,  others requiring PhD's in Computer science, Mathematics and Quantum Physics. Even something  like function point counting, which seems to be straightforward (you appoint highly paid  consultants) seems difficult and may have huge variations, depending on who did the count.
For the average develop manager who often do not have the time and resources to do a proper  function point count or other estimation we offer a basic estimation method using a use case based  approach. This idiot's guide to the idiot's guide of estimation is a quick approach to getting an 80%  correct estimation for a software development project. The downside of this approach is that you  will have to have some idea of how long it takes to deliver work across a systems development life  cycle.
  
Step 1. Develop use cases to the correct level of granularity.
If use cases are to be used as a basis for estimation, it is important to properly develop them to  the correct granularity level. Xpdian has formulated a definition of an elementary use case which  has proven successful for good estimation. The definition is as follows:
An elementary use case is a self contained interaction that is executed by one primary actor, in one  place, with no intervening time delays. 
This definition implies a systems use case that will be started by a user, executed and completed  without time delays. With other words, it is an atomic transaction that is started and finished. To  demonstrate the principle we will use the following example:
  
graphic
Figure 1. Estimation example
  
Step 2. Allocate points
In this example we have four granular transactions represented by use cases. Several estimation  methods advocate that, depending on complexity, scores of between 5 and 15 points be allocated  to each use case. We are going to standardize that number on 10 points per use case.
This implies => 4 use cases x 10 points = 40 points
  
Step 3. Estimate effort
Estimating the effort now is dependent on the time it will take to deliver a point. Industry resources  suggest that a total of 20 man hours per point across the whole systems development lifecycle can  be used as a starting point. The SDLC will then include the following phases:
  • Business analysis
  • Systems analysis
  • Design
  • Construction
  • Testing 
  • Rollout
To deliver the above example will then take:
Total time required  = 40 points x 20 man hours
                              = 800 man hours
Assuming six hour days (effective effort) are worked    => 800/6
                                                                                =  133 days to deliver the entire SDLC
Taking into account the average effort involved in the SDLC phases, we can now calculate the  following:
Phases      
% effort
Estimated duration (man  days)
Business analysis
30
40
Systems analysis
20
27
Design
10
13
Construction
25
33
Testing 
10
13
Rollout
5
7
Total
 
 
133
Figure 2. Estimation per SDLC phase
Conclusion
The above mentioned timeframe may change significantly depending on the ability of your  organization to deliver points per time period. You may want to use the method initially to detect  the ability of the organization to deliver and then refine it over time. The success of the method is  greatly dependent on the correct definition of the use cases at the right level of granularity and  getting the scope of the project right. 
This simplified method is derived from a more complex and scientific method which we will discuss  in an upcoming article.
Making life easy!
Google
 
Web xpdian.com