Estimation determines how much money, effort, resources, and time it will take to build a specific system or product.
Project scope must be understood before the estimation process begins.
A Use-Case is a series of related interactions between a user and a system that enables the user to achieve a goal.
Use-Cases are a way to capture functional requirements of a system. The user of the system is referred to as an ‘Actor’. Use-Cases are fundamentally in text form.
The Use Case Points (UCP) method can be used to estimate software development effort based on a use-case model and two sets of adjustment factors relating to the environmental and technical complexity of a project. The question arises whether all of these components are important from the effort estimation point of view.
The Use-Case Points counting process has the following steps:
1) Calculate unadjusted UCPs
1.1) Determine Unadjusted Use-Case Weight
1.2) Determine Unadjusted Actor Weight
1.3) Calculate Unadjusted Use-Case Points
2) Adjust for technical complexity
3) Adjust for environmental complexity
4) Calculate adjusted UCPs
1.1) How to determine Unadjusted Use-Case Weight?
Transaction is equivalent to a step in the Use-Case. Find the number of transactions by counting the steps in the Use-Case.
Classify each Use-Case as Simple, Average or Complex based on the number of transactions in the Use-Case. Also, assign Use-Case Weight as shown in the following table:
Karner originally proposed ignoring transactions in the extensions part of a use case. However, this was probably largely because extensions were not as commonly used in the use cases he worked with during the era when he first proposed use case points (1993).
Extensions clearly represent a significant amount of work and need to be included in any reasonable estimating effort.
So, from previous figure, we can say that we have 10 transactions.
but, Counting the number of transactions in a use case with extensions requires a small amount of caution. That is, you cannot simply count the number of lines in the extension part of the template and add those to the lines in the main success scenario.
So, we can consider step 2a1, 2b1, and 2c1 is just a notification as a result of step 2 and count them all as one transaction. So, we just have 8 transactions. and because any use case has more than 7 steps consider as complex, we will give it 15 point.
Repeat this process for each use case in the project. The sum of the weights for each use case is known as the Unadjusted Use Case Weight, or UUCW. next table shows how to calculate UUCW for a project with 40 simple use cases, 21 average, and 10 complex
1.2) How to determine Unadjusted Actor Weight?
The transactions (or steps) of a use case are one aspect of the complexity of a use case, the actors involved in a use case are another. An actor in a use case might be a person, another program, a piece of hardware, and so on. Some actors, such as a user working with a straightforward command-line interface, have very simple needs and increase the complexity of a use case only slightly. Other actors, such as a user working with a highly interactive graphical user interface, have a much more significant impact on the effort to develop a use case. To capture these differences, each actor in the system is classified as simple, average, or complex, and is assigned a weight in the same way the use cases were weighted.
In Karner’s use case point system, a simple actor is another system that is interacted with through an API (Application Programming Interface). An average actor may be either a person interacting through a text-based user interface or another system interacting through a protocol such as TCP/IP, HTTP, or SOAP. A complex actor is a human interacting with the system though a graphical user interface GUI. This is summarized, and the weight of each actor type is given, in Table 3.
Each actor in the proposed system is assessed as either simple, average, or complex and is weighted accordingly. The sum of all actor weights in known as Unadjusted Actor Weight (UAW). This is shown for a sample project in Table 4.
1.3) How to calculate Unadjusted Use-Case Points?
Combining the Unadjusted Use Case Weight (UUCW) and the Unadjusted Actor Weight (UAW) gives the unadjusted size of the overall system. This is referred to as Unadjusted Use Case Points (UUCP).
Unadjusted Use-Case Points (UUCP) = UUCW + UAW
Using our example, UUCP is calculated as:
UUCP= 560 + 40 = 600
2) How to adjust for technical complexity?
For each of the 13 Factors, you need to rate from 0 (irrelevant) to 5 (very important).
Technical Complexity Factor (TCF) = 0.6 + (0.01 * TFactor)
3) How to adjust for environmental complexity?
.
6) How to convert UCP to Man hours?
Karner originally proposed a ratio of 20 hours per use case point.
Schneider and Winters (1998) proposed a different approach, we need to calculate n1, and n2 first
- n1= count of environment factor below 3 for items F1-F6
- n2= count of environment factor above 3 for items F7-F8
- if n1+n2 <=2 ====================> need 10-20 Man hrs per UCP
- else if n1+n2 between 3,4 ==========> need 14-28 Man hrs per UCP
- else if n1+n2 >4 =================> need 18-36 Man hrs per UCP
Summary
Notes: A better approach will often be to break the use case into a set of user stories and estimate the user stories in either story points or ideal time (Cohn 2005).
Reference
Estimating With Use Case Points by Mike Cohn, mike@mountaingoatsoftware.com
https://www.cs.cmu.edu/~jhm/DMS%202011/Presentations/Cohn%20-%20Estimating%20with%20Use%20Case%20Points_v2.pdf
https://www.youtube.com/watch?v=cAfWvYSQIHA
https://www.tutorialspoint.com/estimation_techniques/estimation_techniques_use_case_points.htm#
Sizing Sheet
Web
http://groups.umd.umich.edu/cis/tinytools/cis375/f17/team9-use-case-pts/Use_Case_Point_Calculator/
Excel
https://www.researchgate.net/file.PostFileLoader.html?id=550b927bef97130f038b4660&assetKey=AS%3A273739168583683%401442275911540