Sie sind auf Seite 1von 7

Project Estimation with Use Case Points - The Code Project - Application Design

Página 1 de 7

- The Code Project - Application Design Página 1 de 7 All Topics >> Application Design

All Topics >> Application Design >> Methodologies (Beginner) http://www.codeproject.com/gen/design/usecasep.asp

Project Estimation with Use Case Points

By RoyClem.

Generic

Windows

Win32, VS

Dev

Posted

: 22 Mar 2005

Views

: 69,042

An introduction to project estimation with Use Case Points.

Introduction

16 votes for this article.

Use Case Points. Introduction 16 votes for this article. Popularity: 5.6 . Rating: 4.65 out of

Popularity: 5.6. Rating: 4.65 out of 5.

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 Points

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:

The number of steps to complete the use case. The number and complexity of the actors. The technical requirements of the use case such as concurrency, security and performance. Various environmental factors such as the development teams’ experience and knowledge.

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:

1. Technical Complexity Factor (TCF).

2. Environment Complexity Factor (ECF).

3. Unadjusted Use Case Points (UUCP).

4. Productivity Factor (PF).

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

Página 2 de 7

UCP = TCP * ECF * UUCP * PF

The necessary steps to generate the estimate based on the UCP method are:

1. Determine and compute the Technical Factors.

2. Determine and compute the Environmental Factors.

3. Compute the Unadjusted Use Case Points.

4. Determine the Productivity Factor.

5. Compute the product of the variables.

Technical Complexity Factors

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 Description Weight Factor T1 Distributed system 2 T2 Performance 1 T3 End User Efficiency
Technical
Description
Weight
Factor
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
1
features
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:

http://www.codeproject.com/gen/design/usecasep.asp?print=true

12/09/2007

Project Estimation with Use Case Points - The Code Project - Application Design

Página 3 de 7

Technical Description Weight Perceived Factor Complexity Calculated Factor (weight*perceived complexity)> T1
Technical
Description
Weight
Perceived
Factor
Complexity
Calculated Factor
(weight*perceived
complexity)>
T1
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 Factors

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 Description Weight Factor E1 Familiarity with UML 1.5 E2 Application Experience 0.5 E3 Object
Environmental
Description
Weight
Factor
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

http://www.codeproject.com/gen/design/usecasep.asp?print=true

12/09/2007

Project Estimation with Use Case Points - The Code Project - Application Design

Página 4 de 7

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 Description Weight Perceived Calculated Factor Factor Impact (weight*perceived complexity) E1
Environmental
Description
Weight
Perceived
Calculated Factor
Factor
Impact
(weight*perceived
complexity)
E1
Familiarity with UML
1.5
4
6
E2
Application Experience
0.5
2
1
E3
Object Oriented
1
5
5
Experience
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
26
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

Unadjusted Use Case Points (UUCP)

Unadjusted Use Case Points are computed based on two computations:

1. The Unadjusted Use Case Weight (UUCW) based on the total number of activities (or steps) contained in all the use case Scenarios.

2. The Unadjusted Actor Weight (UAW) based on the combined complexity of all the use cases Actors.

UUCW

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
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
5
http://www.codeproject.com/gen/design/usecasep.asp?print=true

12/09/2007

Project Estimation with Use Case Points - The Code Project - Application Design

Página 5 de 7

implementation involves less than 5 classes. Average More interface design and touches 2 or more
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.
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.

UAW

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
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.

http://www.codeproject.com/gen/design/usecasep.asp?print=true

12/09/2007

Project Estimation with Use Case Points - The Code Project - Application Design

Página 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 Description Weight Number of Actors Result Simple The Actor represents another system with
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.

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 don’t 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

Página 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, don’t 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 expert’s 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. Project Estimation using Use Case Metrics.

2. Test Effort Estimation Using Use Case Points.

3. Use Case Points Method.

4. How to Prepare Quotation Using Use Case Points.

About RoyClem

to Prepare Quotation Using Use Case Points . About RoyClem Roy is a software developer wh

Roy is a software developer who digs all aspects of software development, from design to implementation.

Click here to view RoyClem's online profile.

Click here to view RoyClem's online profile. Discussions and Feedback 47 comments have been posted for

Discussions and Feedback

view RoyClem's online profile. Discussions and Feedback 47 comments have been posted for this article. Visit

47 comments have been posted for this article. Visit http://www.codeproject.com/gen/design/usecasep.asp to post and view comments on this article.

Updated: 22 Mar 2005

Article content copyright RoyClem, 2005 everything else Copyright © CodeProject, 1999-2007.

http://www.codeproject.com/gen/design/usecasep.asp?print=true

12/09/2007