Use case points
View on WikipediaUse case points (UCP or UCPs) is a software estimation technique used to forecast the software size for software development projects. UCP is used when the Unified Modeling Language (UML) and Rational Unified Process (RUP) methodologies are being used for the software design and development. The concept of UCP is based on the requirements for the system being written using use cases, which is part of the UML set of modeling techniques. The software size (UCP) is calculated based on elements of the system use cases with factoring to account for technical and environmental considerations. The UCP for a project can then be used to calculate the estimated effort for a project.
History
[edit]The UCP technique was developed by Gustav Karner in 1993 while employed at what was known at the time as Objectory Systems, which later merged into Rational Software and then IBM. The UCP method was created to solve for estimating the software size of systems that were object oriented. It is based on similar principles as the Function Point (FP) estimation method, but was designed for the specific needs of object oriented systems and system requirements based on use cases.[1][2][3]
Method
[edit]The method for determining the size estimate to develop a system is based on a calculation with the following elements:
- Unadjusted Use Case Weight (UUCW) – the point size of the software that accounts for the number and complexity of use cases.
- Unadjusted Actor Weight (UAW) – the point size of the software that accounts for the number and complexity of actors.
- Technical Complexity Factor (TCF) – factor that is used to adjust the size based on technical considerations.
- Environmental Complexity Factor (ECF) – factor that is used to adjust the size based on environmental considerations.
Once the previous four elements have been calculated, the final size estimate can be calculated. This final number is known as the use case points or UCP for a software development project.
The following sections walk through the various calculations to determine the UCP for a project.
Unadjusted Use Case Weight (UUCW)
[edit]The UUCW is one of the factors that contribute to the size of the software being developed. It is calculated based on the number and complexity of the use cases for the system. To find the UUCW for a system, each of the use cases must be identified and classified as Simple, Average or Complex based on the number of transactions the use case contains. Each classification has a predefined weight assigned. Once all use cases have been classified as simple, average or complex, the total weight (UUCW) is determined by summing the corresponding weights for each use case. The following chart shows the different classifications of use cases based on the number of transactions and the weight value assigned for each use case within the classification.
| Use Case Classification | No. of Transactions | Weight |
|---|---|---|
| Simple | 1 to 3 transactions | 5 |
| Average | 4 to 7 transactions | 10 |
| Complex | 8 or more transactions | 15 |
- UUCW = (Total No. of Simple Use Cases x 5) + (Total No. Average Use Cases x 10) + (Total No. Complex Use Cases x 15)
Unadjusted Actor Weight (UAW)
[edit]The UAW is another factor that contributes to the size of the software being developed. It is calculated based on the number and complexity of the actors for the system. Similar to finding the UUCW, each of the actors must be identified and classified as Simple, Average or Complex based on the type of actor. Each classification also has a predefined weight assigned. The UAW is the total of the weights for each of the actors. The following chart shows the different classifications of actors and the weight value assigned.
| Actor Classification | Type of Actor | Weight |
|---|---|---|
| Simple | External system that must interact with the system using a well-defined API | 1 |
| Average | External system that must interact with the system using standard communication protocols (e.g. TCP/IP, FTP, HTTP, database) | 2 |
| Complex | Human actor using a GUI application interface | 3 |
- UAW = (Total No. of Simple actors x 1) + (Total No. Average actors x 2) + (Total No. Complex actors x 3)
Technical Complexity Factor (TCF)
[edit]The TCF is one of the factors applied to the estimated size of the software in order to account for technical considerations of the system. It is determined by assigning a score between 0 (factor is irrelevant) and 5 (factor is essential) to each of the 13 technical factors listed in the table below. This score is then multiplied by the defined weighted value for each factor. The total of all calculated values is the technical factor (TF). The TF is then used to compute the TCF with the following formula:
- TCF = 0.6 + (TF/100)
| Factor | Description | Weight |
|---|---|---|
| T1 | Distributed system | 2.0 |
| T2 | Response time/performance objectives | 1.0 |
| T3 | End-user efficiency | 1.0 |
| T4 | Internal processing complexity | 1.0 |
| T5 | Code reusability | 1.0 |
| T6 | Easy to install | 0.5 |
| T7 | Easy to use | 0.5 |
| T8 | Portability to other platforms | 2.0 |
| T9 | System maintenance | 1.0 |
| T10 | Concurrent/parallel processing | 1.0 |
| T11 | Security features | 1.0 |
| T12 | Access for third parties | 1.0 |
| T13 | End user training | 1.0 |
Environmental Complexity Factor (ECF)
[edit]The ECF is another factor applied to the estimated size of the software in order to account for environmental considerations of the system. It is determined by assigning a score between 0 (no experience) and 5 (expert) to each of the 8 environmental factors listed in the table below. This score is then multiplied by the defined weighted value for each factor. The total of all calculated values is the environment factor (EF). The EF is then used to compute the ECF with the following formula:
- ECF = 1.4 + (-0.03 x EF)
| Factor | Description | Weight |
|---|---|---|
| E1 | Familiarity with development process used | 1.5 |
| E2 | Application experience | 0.5 |
| E3 | Object-oriented experience of team | 1.0 |
| E4 | Lead analyst capability | 0.5 |
| E5 | Motivation of the team | 1.0 |
| E6 | Stability of requirements | 2.0 |
| E7 | Part-time staff | -1.0 |
| E8 | Difficult programming language | -1.0 |
Use Case Points (UCP)
[edit]Finally the UCP can be calculated once the unadjusted project size (UUCW and UAW), technical factor (TCF) and environmental factor (ECF) have been determined. The UCP is calculated based on the following formula:
- UCP = (UUCW + UAW) x TCF x ECF
Example
[edit]To illustrate the process of calculating the UCP, an Online Shopping System will be used. The diagram below depicts the Use Case Diagram for the system to be developed.
Unadjusted Use Case Weight (UUCW)
[edit]To calculate the UUCW, the use cases must be defined and the number of transactions for each use case identified. The Online Shopping System use case diagram is depicting that nine use cases exist for the system. Assuming 2 of these use cases are simple, 3 are average and 4 are complex, the calculation for UUCW is as follows:
- UUCW = (Total No. of Simple Use Cases x 5) + (Total No. Average Use Cases x 10) + (Total No. Complex Use Cases x 15)
- For the Online Shopping System, the UUCW = (2 x 5) + (3 x 10) + (4 x 15) = 100
- UUCW = 100
Unadjusted Actor Weight (UAW)
[edit]To calculate the UAW, the actors must be identified. The Online Shopping System use case diagram is depicting five actors; One simple for the Payment Processing System and four complex for each of the human users actors (i.e. Online Customer, Marketing Administrator, Warehouse Clerk, Warehouse Manager.) The calculation for UAW is as follows:
- UAW = (Total No. of Simple Actors x 1) + (Total No. Average Actors x 2) + (Total No. Complex Actors x 3)
- For the Online Shopping System, UAW = (1 x 1) + (0 x 2) + (4 x 3) = 13
- UAW = 13
Technical Complexity Factor (TCF)
[edit]To calculate the TCF, each of the technical factors is assigned a value based on how essential the technical aspect is to the system being developed. The diagram below shows the assigned values for the Online Shopping System. The values are multiplied by the weighted values and the total TF is determined.
| Factor | Description | Weight | Assigned Value | Weight x Assigned Value |
|---|---|---|---|---|
| T1 | Distributed system | 2.0 | 5 | 10 |
| T2 | Response time/performance objectives | 1.0 | 5 | 5 |
| T3 | End-user efficiency | 1.0 | 3 | 3 |
| T4 | Internal processing complexity | 1.0 | 2 | 2 |
| T5 | Code reusability | 1.0 | 3 | 3 |
| T6 | Easy to install | 0.5 | 1 | 0.5 |
| T7 | Easy to use | 0.5 | 5 | 2.5 |
| T8 | Portability to other platforms | 2.0 | 2 | 4 |
| T9 | System maintenance | 1.0 | 2 | 2 |
| T10 | Concurrent/parallel processing | 1.0 | 3 | 3 |
| T11 | Security features | 1.0 | 5 | 5 |
| T12 | Access for third parties | 1.0 | 1 | 1 |
| T13 | End user training | 1.0 | 1 | 1 |
| Total (TF): | 42 | |||
Next, the TCF is calculated:
- TCF = 0.6 + (TF/100)
- For the Online Shopping System, TCF = 0.6 + (42/100) = 1.02
- TCF = 1.02
Environmental Complexity Factor (ECF)
[edit]To calculate the ECF, each of the environmental factors is assigned a value based on the team experience level. The diagram below shows the assigned values for the Online Shopping System. The values are multiplied by the weighted values and the total EF is determined.
| Factor | Description | Weight | Assigned Value | Weight x Assigned Value |
|---|---|---|---|---|
| E1 | Familiarity with development process used | 1.5 | 3 | 4.5 |
| E2 | Application experience | 0.5 | 3 | 1.5 |
| E3 | Object-oriented experience of team | 1.0 | 2 | 2 |
| E4 | Lead analyst capability | 0.5 | 5 | 2.5 |
| E5 | Motivation of the team | 1.0 | 2 | 2 |
| E6 | Stability of requirements | 2.0 | 1 | 2 |
| E7 | Part-time staff | -1.0 | 0 | 0 |
| E8 | Difficult programming language | -1.0 | 4 | -4 |
| Total (EF): | 10.5 | |||
Next, the ECF is calculated:
- ECF = 1.4 + (-0.03 x EF)
- For the Online Shopping System, ECF = 1.4 + (-0.03 * 10.5) = 1.085
- ECF = 1.085
Use Case Points (UCP)
[edit]Once the Unadjusted Use Case Weight (UUCW), Unadjusted Actor Weight (UAW), Technical Complexity Factor (TCF) and Environmental Complexity Factor (ECF) has been determined, the Use Case Points (UCP) can be calculated with the following formula:
- UCP = (UUCW + UAW) x TCF x ECF
- For the Online Shopping System, UCP = (100 + 13) x 1.02 x 1.085 = 125.06
- UCP = 125.06
For the Online Shopping System, the total estimated size to develop the software is 125.06 Use Case Points.
Now that the size of the project is known, the total effort for the project can be estimated. For the Online Shopping System example, 28 man hours per use case point will be used.
- Estimated Effort = UCP x Hours/UCP
- For the Online Shopping System, Estimated Effort = 125.06 x 28
- Estimated Effort = 3501 Hours
Further development
[edit]One major weakness of the Use Case Points method is that it has never been thoroughly calibrated using regression analysis due to a lack of a statistically sufficient number of projects. Moreover, the linear model of Karners approach does not take the diseconomies of scale into account that occur in software development projects.[4] Still, the easily applicable sizing approach and counting rules provide many benefits for estimations in early phases and thus allow to quickly yield the FSM (functional size measurement, in this case UUCW + UAW) of an application or IT product. This FSM can then be combined with statistically validated estimation models like COCOMO II to gain more reliable estimation results.[4]
See also
[edit]References
[edit]- ^ Murali Chemuturi, Software Estimation Best Practices, Tools and Techniques for Software Project Estimators, J.Ross Publishing, 2009, p. 84-87
- ^ Dennis, Alan R., Barbara Haley Wixom, and David Tegarden. Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, Third Edition, John Wiley & Sons, 2009, Chapter 5 - Functional Modeling
- ^ Dennis, Alan R., Barbara Haley Wixom, and David Tegarden. Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, Fourth Edition, John Wiley & Sons, 2012, Chapter 2 - Project Management
- ^ a b Carl Friedrich Kress, Olivier Hummel, Mahmudul Huq: A Practical Approach for Reliable Pre-Project Effort Estimation. In: CEUR Workshop Proceedings, Vol. 1138, p. 23, 2014
External links
[edit]Use case points
View on GrokipediaHistory and Background
Origins and Development
The Use Case Points (UCP) method was invented by Gustav Karner in 1993 while working at Objectory AB, a software development company founded by Ivar Jacobson focused on object-oriented methodologies.[3] Karner's work addressed the need for a sizing technique tailored to Objectory's process, which emphasized use cases as a core artifact for capturing requirements.[3] Inspired by function point analysis—a metric originally proposed by Allan Albrecht in 1979 for measuring functional size in structured programming—UCP adapted the concept to object-oriented systems by leveraging use case specifications instead of data functions and transactions.[3] This adaptation incorporated Objectory's requirements analysis phase, enabling early-phase functional size measurement (FSM) for software projects to support resource estimation in man-hours and cost prediction.[3] The method's initial purpose was to provide a standardized, repeatable way to forecast effort after requirements capture but before detailed design, overcoming limitations in traditional function points such as subjectivity in counting and lack of consideration for personnel factors.[3] Key events in UCP's early evolution include its publication in Objectory's internal documentation through Karner's 1993 paper, "Resource Estimation for Objectory Projects," which outlined the core model.[3] Following Rational Software's acquisition of a majority stake in Objectory AB in 1995, the methodology transitioned into the Rational Objectory Process and later the Rational Unified Process (RUP) in the late 1990s, facilitating broader dissemination as Rational merged with IBM in 2003.[4] This integration with RUP and UML—where use cases became a standard modeling element—marked the shift from proprietary Objectory tool to a widely referenced estimation technique in object-oriented software engineering post-1990s.[5]Adoption in Software Engineering
The use case points (UCP) method, proposed by Gustav Karner in 1993, experienced early adoption in the 1990s primarily within object-oriented software development projects that emphasized UML-based modeling.[6] As UML was standardized in 1997, incorporating use case diagrams as a core artifact for capturing functional requirements, UCP emerged as a complementary estimation technique for sizing efforts in these environments, particularly in projects following methodologies like Objectory.[6] This integration aligned UCP with the growing prevalence of use cases in requirements engineering, enabling early-phase predictions in OO paradigms.[7] Adoption expanded significantly in the 2000s, driven by the widespread use of modeling tools such as Rational Rose, which supported UML use case creation and facilitated UCP calculations within Rational Unified Process (RUP) workflows—a structured approach that served as a precursor to agile practices.[8] Interest peaked around 2005, with UCP applied in diverse software projects to validate estimates against historical data, as demonstrated in a 2002 ISECON study that compared UCP predictions to expert judgments and found promising accuracy for practical application.[9] The method also featured prominently in IEEE publications on software estimation, with over 27 studies by 2020 exploring its refinements and empirical validations in conference proceedings.[6] As of 2021, UCP maintains relevance in requirements-driven software projects, particularly those relying on use case specifications for effort forecasting, with a systematic review identifying 75 studies focused on its calibration and adaptation using techniques like regression and machine learning.[6] Ongoing research underscores its utility in object-oriented contexts, though adoption remains more limited in fully agile environments favoring story points.Fundamental Concepts
Use Cases and Actors
In the Use Case Points methodology, a use case represents a description of the system's functionality from a user's perspective, outlining the interactions between actors and the system to achieve a specific goal.[3] Use cases typically involve primary actors, who initiate the interaction to accomplish their objectives, and secondary actors, who assist the system or are impacted by the outcome during the process. This structure ensures that use cases capture complete sequences of system behavior, including preconditions, postconditions, and flows of events. Actors are external entities that drive or participate in use case executions, such as human users, other software systems, or hardware components interacting with the target system.[3] In this methodology, actors are classified as simple if they are external systems interacting via a defined API (weight 1); average if interactions occur via protocols (e.g., TCP/IP) or humans use a terminal interface (weight 2); complex if humans interact via a graphical user interface (weight 3).[3][10] These classifications reflect the varying levels of interface simplicity and system responsiveness required. Within a use case, transactions form the core units of measurement, consisting of the steps in the main success path along with alternative paths and exception handling scenarios.[3] Each transaction details a discrete system response to an actor's action, ensuring the use case provides a comprehensive view of potential interaction flows without branching into implementation details.[11] The methodology benefits from use cases authored according to consistent standards, such as those in the Unified Modeling Language (UML), to ensure clear, unambiguous descriptions of actor-system interactions, goals, and scenarios to enable reliable analysis.[3]Complexity Assessment
In use case points estimation, the complexity of use cases is evaluated based on the number of transactions they encompass, where a transaction represents an atomic unit of interaction between the actor and the system. Use cases are classified as simple (1-3 transactions, weight 5), average (4-7 transactions, weight 10), or complex (more than 7 transactions, weight 15). This classification provides a structured way to gauge the functional scope and effort required for implementation.[2] Actor complexity is assessed according to the nature of the interface and interaction mechanism. Actors are classified as simple (API interactions, weight 1), average (protocol-based like TCP/IP or text-based human interaction, weight 2), or complex (graphical user interfaces for humans, weight 3). Such distinctions account for the varying levels of integration challenges posed by different actor types.[2] To accurately count transactions, count the steps in the main success scenario of the use case; alternative and exception flows are generally not included unless they add unique steps, while excluding post-conditions that merely describe the resulting system state without additional processing. This approach ensures a comprehensive yet focused measure of the system's behavioral demands. For instance, validating user input and updating a database record would each count as separate transactions if they occur in sequence or branch.[2] Common pitfalls in this assessment include overcounting trivial steps, such as basic data displays or acknowledgments that do not alter system state, which can artificially elevate complexity ratings. Conversely, underestimating the number of branches in alternative flows—such as error handling paths or conditional decisions—may lead to incomplete complexity evaluations and subsequent estimation inaccuracies. Adhering to consistent definitions of transactions mitigates these issues.[2]Estimation Methodology
Unadjusted Actor Weight (UAW)
The Unadjusted Actor Weight (UAW) represents the initial measure of system size contributed by its actors, which are external entities interacting with the system, such as users or other systems.[2] Actors are weighted according to their complexity because the nature of the interface required for interaction influences development effort; for instance, integrating with a simple automated system demands less effort than supporting a human through a sophisticated graphical interface.[2] This weighting scheme originates from Gustav Karner's 1993 Use Case Points method, as documented in subsequent analyses.[2] The formula for calculating UAW is:Unadjusted Use Case Weight (UUCW)
The Unadjusted Use Case Weight (UUCW) represents the initial measure of functional size contributed by the use cases in a software project, serving as a key component in the Use Case Points (UCP) estimation method developed by Gustav Karner in 1993.[12] This weight quantifies the complexity of user interactions without considering technical or environmental factors, focusing solely on the scenarios described in the use cases. To calculate UUCW, use cases are first classified based on the number of transactions, where a transaction is a step in the main success scenario, with extensions counted only if they represent new actions that advance the use case toward its goal. Use cases are categorized as simple (3 or fewer transactions, weighted at 5 points), average (4 to 7 transactions, weighted at 10 points), or complex (more than 7 transactions, weighted at 15 points).[2] The process involves: (1) identifying and counting all use cases from the project's requirements; (2) determining the transaction count for each use case by analyzing its main flow and relevant extensions; (3) assigning each use case to the appropriate complexity category; and (4) summing the weighted values across all use cases. The resulting formula is:Technical Complexity Factor (TCF)
The Technical Complexity Factor (TCF) adjusts the unadjusted use case points for the technical attributes of the project that influence development effort, such as system architecture and performance demands. Introduced by Gustav Karner in his 1993 resource estimation model for Objectory projects, the TCF scales the estimate based on 13 technical factors, each rated on a scale from 0 (irrelevant) to 5 (essential), with a neutral default of 3 if no specific information is available.[3] The TCF is calculated using the formula:| Factor ID | Description | Weight |
|---|---|---|
| F₁ | Distributed systems (e.g., data or processing across multiple sites) | 2 |
| F₂ | Application performance objectives (e.g., response time constraints) | 1 |
| F₃ | End-user efficiency (e.g., online transaction speed for users) | 1 |
| F₄ | Complex internal processing (e.g., intricate algorithms) | 1 |
| F₅ | Reusability (e.g., code components intended for reuse in other projects) | 1 |
| F₆ | Installation ease (e.g., simplicity of setup for end users) | 0.5 |
| F₇ | Operational ease and usability (e.g., intuitive interface design) | 0.5 |
| F₈ | Portability (e.g., adaptability across hardware or software platforms) | 2 |
| F₉ | Changeability (e.g., ease of future modifications) | 1 |
| F₁₀ | Concurrency (e.g., handling multiple simultaneous users) | 1 |
| F₁₁ | Special security features (e.g., custom encryption or access controls) | 1 |
| F₁₂ | Direct access for third parties (e.g., API exposure to external systems) | 1 |
| F₁₃ | Special user training facilities (e.g., need for extensive documentation or sessions) | 1 |
Environmental Complexity Factor (ECF)
The Environmental Complexity Factor (ECF) adjusts the unadjusted use case points to account for environmental and human factors that influence development productivity, such as team experience, motivation, and project stability. These elements can either enhance efficiency or introduce challenges that extend effort requirements.[2] Originally proposed by Gustav Karner in 1993 as part of the Use Case Points method for Objectory projects, the ECF incorporates eight specific factors weighted to reflect their relative impact on overall project performance.[12] The ECF is computed using the formula:| Factor | Weight | Description |
|---|---|---|
| Familiarity with the project domain | 1.5 | Assesses the team's prior experience with the project's domain; higher ratings for greater familiarity enhance productivity. |
| Application experience | 0.5 | Evaluates the team's domain knowledge in the application's field; beneficial for reducing learning curves. |
| Object-oriented experience | 1.0 | Measures proficiency in object-oriented analysis and design; crucial for projects using OO methodologies. |
| Lead analyst capability | 0.5 | Gauges the skill and experience of the lead requirements analyst; strong leadership streamlines development. |
| Motivation | 1.0 | Reflects the team's overall drive and commitment; high motivation accelerates progress. |
| Stable requirements | 2.0 | Considers the likelihood of requirements remaining unchanged; stability (high rating) minimizes rework. |
| Part-time staff | -1.0 | Accounts for the percentage of part-time workers; higher proportions (high rating) negatively affect coordination and output. |
| Difficult programming | -1.0 | Examines the complexity of the programming language or tools; more challenging environments (high rating) increase effort. |
