Project Estimation with Use Case Points

Posted: June 1, 2008 in SDLC


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:


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 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 use 0.5
T7 Easy to install 0.5
T8 Portable 2
T9 Easy to change 1
T10 Concurrent 1
T11 Special Security Feature 1
T12 Provides direct access for third parties 1
T13 Special user training facilities are required 1


TCF = 0.6 + (.01*Total Factor).


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 Factor Description Weight
E1 Familiarity with UML 1.5

Application Experience

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


ECF = 1.4 + (-0.03*Total Factor).


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.


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


In a similar manner, the Actors are classified as Simple, Average or Complex based on their interactions.

Actor Type Description Weight

The Actor represents another system with a defined API.

Average The Actor represents another system interacting through a protocol, like TCP/IP. 2

The Actor is a person interacting via an interface.


Finally, the UUCP is computed by adding the UUCW and the UAW. For the sample data used in the figures, the UUCP = UUCW + UAW.

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:


For the sample values used in this article:

TCP = 1.07, ECF = 0.62, UUCP = 264, PF = 20.

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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s