Académique Documents
Professionnel Documents
Culture Documents
Pgina 1 de 7
Introduction
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 applications 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 projects use cases to produce an accurate estimate of a projects size and effort.
Each variable is defined and computed separately, using perceived values and various constants. The complete equation is:
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007
Project Estimation with Use Case Points - The Code Project - Application Design
Pgina 2 de 7
The necessary steps to generate the estimate based on the UCP method are: 1. 2. 3. 4. 5. Determine and compute the Technical Factors. Determine and compute the Environmental Factors. Compute the Unadjusted Use Case Points. Determine the Productivity Factor. Compute the product of the variables.
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 factors 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:
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007
Project Estimation with Use Case Points - The Code Project - Application Design
Pgina 3 de 7
Description
Weight
Distributed System Performance End User Efficiency Complex internal Processing Reusability Easy to install Easy to use Portable Easy to change Concurrent Special security features
2 1 1 1 1 0.5 0.5 2 1 1 1
Provides direct access for 1 third parties Special user training facilities are required 1
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
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007
Project Estimation with Use Case Points - The Code Project - Application Design
Pgina 4 de 7
Figure 3: Example Environmental Factors. Each factors 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 Calculated Factor Impact (weight*perceived complexity) 4 2 5 2 1 5 0 1 Total Factor 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
E1 E2 E3 E4 E5 E6 E7 E8
Familiarity with UML Application Experience Object Oriented Experience Lead analyst capability Motivation Stable Requirements Part-time workers Difficult Programming language
6 1 5 1 1 10 0 2 26
A simple user interface and touches only a 5 single database entity; its success scenario has 3 steps or less; its
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007
Project Estimation with Use Case Points - The Code Project - Application Design
Pgina 5 de 7
implementation involves less than 5 classes. Average More interface design and touches 2 or more database entities; between 4 to 7 steps; its implementation involves between 5 to 10 classes. Involves a complex user interface or processing and touches 3 or more database entities; over seven steps; its implementation involves more than 10 classes. 10
Complex
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 Simple Description 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. Weight Number of Use Cases 5 8 Result 40
Average
More interface design and touches 10 2 or more database entities; between 4 to 7 steps; its implementation involves between 5 to 10 classes. 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
12
120
Complex
60
220
In a similar manner, the Actors are classified as Simple, Average or Complex based on their interactions. Actor Type Simple Average Description The Actor represents another system with a defined API. The Actor represents another system interacting through a protocol, like TCP/IP. The Actor is a person interacting via an interface. Weight 1 2
Complex
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007
Project Estimation with Use Case Points - The Code Project - Application Design
Pgina 6 de 7
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 Simple Description The Actor represents another system with a defined API The Actor represents another system interacting through a protocol, like TCP/IP The Actor is a person interacting via an interface. Weight 1 Number of Actors 8 Result 8
Average
12
24
Complex
12
44
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.
Productivity Factor
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.
Final Calculation
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.
Caveats
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. The number of steps in a scenario affects the estimate. A large number of steps in a use case scenario will bias the result towards complexity and increase the Use Case Points. A small number of steps will bias it towards simplicity. Sometimes, groups of steps can be reduced to a fewer number without sacrificing the business process. Strive for a uniform level of detail but dont force a use case to conform to the estimation method.
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007
Project Estimation with Use Case Points - The Code Project - Application Design
Pgina 7 de 7
Including and extending use cases increases the complexity. Count these as a single use case. The number of actors in a use case also affects the estimate. If possible, generalize the actors into a single superactor. This reduces the complexity without affecting the use case. On the other hand, dont force a generalization where none exists. The values for the Technical and Environmental Factors need to be adjusted over time as actual data is obtained. The more projects that employ Use Case Points for their estimations will yield more accurate values for the perceived values. Compare the Use Case Point estimate with a human experts estimate. Where there is disagreement, err on the side of the human expert and adjust the Use Case Point factors accordingly. The Productivity Factor can only be obtained over time. Track the time spent designing and implementing the use cases and adjust the Productivity Factor accordingly.
Conclusion
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.
Additional Links
1. 2. 3. 4. Project Estimation using Use Case Metrics. Test Effort Estimation Using Use Case Points. Use Case Points Method. How to Prepare Quotation Using Use Case Points.
About RoyClem
Roy is a software developer who digs all aspects of software development, from design to implementation. Click here to view RoyClem's online profile.
http://www.codeproject.com/gen/design/usecasep.asp?print=true
12/09/2007