![]() |
Development Lifecycle »
Design and Architecture »
Methodologies
Beginner
License: The Code Project Open License (CPOL)
Project Estimation with Use Case PointsBy RoyClemAn introduction to project estimation with Use Case Points. |
Windows, Visual Studio, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
Object-oriented applications frequently rely on Use Cases to describe the business processes of a software application. Since use cases consist of the strategic goals and scenarios that provide value to a business domain, they can also provide insight into an application�s complexity. Deriving a reliable estimate of the size and effort an application needs, is possible by examining the actors and scenarios of a use case. Use Case Points is a project estimation method that employs a project�s use cases to produce an accurate estimate of a project�s size and effort.
Use case modeling is an accepted and widespread technique to capture the business processes and requirements of a software application. Since they provide the functional scope of the application, analyzing their contents provides valuable insight into the effort and size needed to design and implement the application. In general, applications with large, complicated use cases take more effort to design and implement than small applications with less complicated use cases. Moreover, the time to complete the application is affected by:
Use Case Points (UCP) is an estimation method that provides the ability to estimate an application�s size and effort from its use cases. Based on work by Gustav Karner in 1993, UCP analyzes the use case actors, scenarios and various technical and environmental factors and abstracts them into an equation.
The equation is composed of four variables:
Each variable is defined and computed separately, using perceived values and various constants. The complete equation is:
UCP = TCP * ECF * UUCP * PF
The necessary steps to generate the estimate based on the UCP method are:
Thirteen standard technical factors exist to estimate the impact on productivity that various technical issues have on an application. Each factor is weighted according to its relative impact. A weight of 0 indicates the factor is irrelevant and the value 5 means that the factor has the most impact.
|
Technical Factor |
Description |
Weight |
|
T1 |
Distributed system |
2 |
|
T2 |
Performance |
1 |
|
T3 |
End User Efficiency |
1 |
|
T4 |
Complex internal Processing |
1 |
|
T5 |
Reusability |
1 |
|
T6 |
Easy to install |
0.5 |
|
T7 |
Easy to use |
0.5 |
|
T8 |
Portable |
2 |
|
T9 |
Easy to change |
1 |
|
T10 |
Concurrent |
1 |
|
T11 |
Special security features |
1 |
|
T12 |
Provides direct access for third parties |
1 |
|
T13 |
Special user training facilities are required |
1 |
Figure 1: Technical Factors.
For each project, the technical factors are evaluated by the development team and assigned a value from 0 to 5 according to their perceived complexity � multithreaded apps. require more skill and time than single threaded applications, for example, as do reusable apps. A perceived complexity of 0 means the technical factor is irrelevant for this project; 3 is average; 5 means it has strong influence.
Each factor�s weight is multiplied by its perceived complexity to produce its calculated factor. The calculated factors are summed to produce the Total Factor.
So, using sample perceived complexity values, the Technical Total Factor might be computed as follows:
|
Technical Factor |
Description |
Weight |
Perceived Complexity |
Calculated Factor (weight*perceived complexity)> |
|
Distributed System |
2 |
5 |
10 | |
|
T2 |
Performance |
1 |
4 |
4 |
|
T3 |
End User Efficiency |
1 |
2 |
2 |
|
T4 |
Complex internal Processing |
1 |
4 |
4 |
|
T5 |
Reusability |
1 |
2 |
2 |
|
T6 |
Easy to install |
0.5 |
5 |
2 |
|
T7 |
Easy to use |
0.5 |
3 |
2 |
|
T8 |
Portable |
2 |
3 |
6 |
|
T9 |
Easy to change |
1 |
3 |
3 |
|
T10 |
Concurrent |
1 |
2 |
2 |
|
T11 |
Special security features |
1 |
2 |
2 |
|
T12 |
Provides direct access for third parties |
1 |
5 |
5 |
|
T13 |
Special user training facilities are required |
1 |
3 |
3 |
|
Total Factor |
47 |
Figure 2: Calculating the Technical Total Factor.
In Figure 2, the Total Factor is 47 derived by summing all the calculated factors. To produce the final TCF, two constants are computed with the Total Factor. The complete formula to compute the TCF is as follows:
TCF = 0.6 + (.01*Total Factor). For Figure 1, the TCF = 1.07
Environmental Complexity estimates the impact on productivity that various environmental factors have on an application. Each environmental factor is evaluated and weighted according to its perceived impact and assigned a value between 0 and 5. A rating of 0 means the environmental factor is irrelevant for this project; 3 is average; 5 means it has strong influence.
|
Environmental Factor |
Description |
Weight |
|
E1 |
Familiarity with UML |
1.5 |
|
E2 |
Application Experience |
0.5 |
|
E3 |
Object Oriented Experience |
1 |
|
E4 |
Lead analyst capability |
0.5 |
|
E5 |
Motivation |
1 |
|
E6 |
Stable Requirements |
2 |
|
E7 |
Part-time workers |
-1 |
|
E8 |
Difficult Programming language |
2 |
Figure 3: Example Environmental Factors.
Each factor�s weight is multiplied by its perceived complexity to produce its calculated factor. The calculated factors are summed to produce the Total Factor.
Using sample values for perceived impact, the Environmental Total Factor might be computed as:
|
Environmental Factor |
Description |
Weight |
Perceived Impact |
Calculated Factor (weight*perceived complexity) |
|
E1 |
Familiarity with UML |
1.5 |
4 |
6 |
|
E2 |
Application Experience |
0.5 |
2 |
1 |
|
E3 |
Object Oriented Experience |
1 |
5 |
5 |
|
E4 |
Lead analyst capability |
0.5 |
2 |
1 |
|
E5 |
Motivation |
1 |
1 |
1 |
|
E6 |
Stable Requirements |
2 |
5 |
10 |
|
E7 |
Part-time workers |
-1 |
0 |
0 |
|
E8 |
Difficult Programming language |
2 |
1 |
2 |
|
Total Factor |
26 |
Figure 4: Calculating the Environmental Total Factor.
In Figure 4, the Total Factor is 26 derived by summing all the calculated factors. To produce the final ECF, two constants are computed with the Total Factor. The complete formula to compute the ECF is as follows:
ECF = 1.4 + (-0.03*Total Factor). For Figure 4, the ECF = 0.62
Unadjusted Use Case Points are computed based on two computations:
Individual use cases are categorized as Simple, Average or Complex, and weighted depending on the number of steps they contain - including alternative flows.
|
Use Case Type |
Description |
Weight |
|
Simple |
A simple user interface and touches only a single database entity; its success scenario has 3 steps or less; its implementation involves less than 5 classes. |
5 |
|
Average |
More interface design and touches 2 or more database entities; between 4 to 7 steps; its implementation involves between 5 to 10 classes. |
10 |
|
Complex |
Involves a complex user interface or processing and touches 3 or more database entities; over seven steps; its implementation involves more than 10 classes. |
15 |
Figure 5: Use Case Categories.
The UUCW is computed by counting the number of use cases in each category, multiplying each category of use case with its weight and adding the products.
|
Use Case Type |
Description |
Weight |
Number of Use Cases |
Result |
|
Simple |
A simple user interface and touches only a single database entity; its success scenario has 3 steps or less; its implementation involves less than 5 classes. |
5 |
8 |
40 |
|
Average |
More interface design and touches 2 or more database entities; between 4 to 7 steps; its implementation involves between 5 to 10 classes. |
10 |
12 |
120 |
|
Complex |
Involves a complex user interface or processing and touches 3 or more database entities; over seven steps; its implementation involves more than 10 classes. |
15 |
4 |
60 |
|
Total UUCW |
220 |
Figure 6: Computing UUCW.
In a similar manner, the Actors are classified as Simple, Average or Complex based on their interactions.
|
Actor Type |
Description |
Weight |
|
Simple |
The Actor represents another system with a defined API. |
1 |
|
Average |
The Actor represents another system interacting through a protocol, like TCP/IP. |
2 |
|
Complex |
The Actor is a person interacting via an interface. |
3 |
Figure 7: Actor Classifications.
The UAW is calculated by counting the number of actors in each category, multiplying each total by its specified weighting factor, and then adding the products.
|
Actor Type |
Description |
Weight |
Number of Actors |
Result |
|
Simple |
The Actor represents another system with a defined API |
1 |
8 |
8 |
|
Average |
The Actor represents another system interacting through a protocol, like TCP/IP |
2 |
12 |
24 |
|
Complex |
The Actor is a person interacting via an interface. |
3 |
4 |
12 |
|
Total UAW |
44 |
Figure 8: Computing UAW.
Finally, the UUCP is computed by adding the UUCW and the UAW. For the sample data used in the figures, the UUCP = 220 + 44 = 264.
The Productivity Factor (PF) is a ratio of the number of man hours per use case point based on past projects. If no historical data has been collected, a figure between 15 and 30 is suggested by industry experts. A typical value is 20.
The Use Case Points is determined by multiplying all the variables:
UCP = TCP * ECF * UUCP * PF
For the sample values used in this article:
UCP = 1.07 * 0.62 * 264 * 20 = 3502.752 or 3503 hours.
Dividing the UCP by 40 hours (for one man work week) = 88 man-weeks. Therefore, for the sample values in this article, it would take one developer 88 weeks (or about 22 months) to complete the application.
The Use Case Points estimate tends to be high when compared to human experts. This might be a good thing since many software projects are late, but, the estimate may still be too high. In order to produce accurate results, the variables in the equation need to be adjusted and tweaked � especially in the beginning.
Use Case Points have the potential to produce reliable results because its estimates are produced from the actual business processes � the use cases - of a software application. Additionally, in many traditional estimation methods, influential technical and environmental factors are often not adequately given enough consideration. Use Case Points includes and abstracts these subjective factors into an equation. When tweaked, over time, Use Case Points can provide estimates that are very reliable.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 22 Mar 2005 Editor: Sumalatha K.R. |
Copyright 2005 by RoyClem Everything else Copyright © CodeProject, 1999-2009 Web11 | Advertise on the Code Project |