Download presentation
Presentation is loading. Please wait.
1
Software effort estimation
2
Agenda Estimation Methodologies - Basics
Estimation Using Function Points Estimation Using Use Case Points Comparison of the Methodologies Tips to Improve Estimation Accuracy
3
Software estimation - Basics
A process of finding the size of a software application from its specifications and hence the effort Estimation process and estimation methodology are not the same Methodology is a part of estimation process Process deals with the guidelines for carrying out the work of estimation in terms of who is responsible for carrying out the estimate, who reviews, who approves, what is the norm for time allowed for carrying out the estimation and so on. Methodology deals with how the specification is broken down into application units that in turn constitutes the size of the application. What do we estimate for? There are many parameters involved in estimation such as size, effort, duration and so on and hence it is important to understand what parameters are estimated and what others are derived from the estimated parameters. Hence, the first step is to understand the basic parameters involved. Basic parameters of estimation Size: Size of the application expressed in various units such as Lines Of Code (LOC), Function Points (FP), Use Case Points (UCP) and so on Effort: The time that it takes for one person to build the whole application expressed in person hours or person days or person months. This is different from duration. Cost: Money that should be spent on the project for deploying resources for the length of time that they are involved in the project. Duration: Elapsed time in working calendar days required to execute a task. Duration can also refer to the elapse time of the complete project also. Resources: Number of people or a fraction of availability of the number of human resources to be deployed for a task and to the project.
4
…Software estimation - basics
Depending on the estimation methodology, size or effort is the first parameter that is estimated and all others are derived. Size: Function Points and Use Case Points methodologies estimate the size of the application expressed in terms of Function Points (FP) and Use Case Points (UCP). Effort: In case of expert estimation, also called the WBS based estimation, effort is estimated directly. Otherwise, if FP or UCP is being used, the effort is determined from the size based on productivity norms Effort norm is usually person hours or person days / FP and PH or PD / UCP. If N is the norm in terms of person days and S is the size of the application in terms of FPs or UCPs, then effort E = S * N. The productivity norms should be taken from the historical database of the organization and if it is not available, then industry averages should be used. Duration and resources: To be determined based on effort. Within a certain range, effort and duration have a linear relationship and effort divided by the number of resources deployed would yield the duration ( D = E / R where D is the duration in hours or days, E is the effort in person hours or person days and R is the number of persons). A famous industry saying should be remembered here that if one mother takes nine months to deliver a baby we cannot put nine mothers to deliver a baby in one month. That is, when the number of persons allocated to execute the task starts increasing from one, the duration starts reducing correspondingly in a linear fashion. However, beyond a limit, further addition of resources cannot reduce the duration and in worst scenarios, it can spoil the task execution also. This limit, should be decided based on experience and expertise. Cost: Determined based on number of resources deployed, billing rates and duration to which they are deployed. Some times cost is directly determined based on effort, an average billing rate and cost of material resources to be procured.
5
…Software Estimation – basics
Inputs needed for estimation Important consideration and the questions that is often asked is – what would be a sufficient level of detail to provide accurate estimate? RFP (Request For Proposal)? RS (Requirements Document)? Or Functional Specification? The answer is that as more and more details are available, it is possible to arrive at more accurate estimates. However, it should be possible to estimate with a neatly documented RFP. Sometimes, estimators tend to rush to estimate with poor level of details available and this must be avoided. If a poorly documented RFP is provided to estimate and submit a proposal, the estimators must interact with the prospective customer gain a level of clarity that would be available in a well documented RFP Practical feel of poorly documented and well documented RFPs In order to provide a practical touch of such RFPs, two sample RFPS attached, one poorly documented and the other well documented file names of these documents being self explanatory. The poorly documented RFP does not contain much of details of the requirements or functionality of the application which is essential for estimation but elaborates on technical architecture. The well documented RFP provides a glimpse of requirements but contains references to other documents such as screen shots that accompany the RFP thus providing adequate details for the estimators. If required level of inputs are not present, it results in that many more assumptions and assumptions are sources for risks.
6
Estimation Methodologies
With specification as input and size or effort required as the output, there are many techniques or methods to translate the input into output. Estimation methods – current industry trend There are informal and formal methods of estimation having varied degrees of effectiveness There are no one-size fits all solution to software effort estimation By the time an estimation methodology matures, technology changes so much that the estimation methodology would be obsolete Hence, there is no single well established methodology that can yield accurate results for all types of applications Why still use formal methodologies then? They can still yield far more accurate estimates than ad hoc estimates Informal method Expert estimation or WBS based estimation – directly estimates effort. Formal methods Function points – estimates the size of functionality in terms of data and transactions Use Case points – estimates the size of functionality in terms of use cases There are many more methods, but these two are predominantly in use
7
Estimation methodologies - Overview
Work Breakdown Structure (WBS) WBS is a planning method where a project or module is decomposed into work items called activities Effort is estimated for each leaf node of this work breakdown structure and aggregated to arrive at the overall effort estimate Wide band Delphi Technique A group discussion method to arrive at consensus when a group of experts are involved in estimating Is another form of expert estimation and can be used along with WBS method Use Case points Estimates the size of an application in terms of number of use cases and their complexity Complexity of use cases determined based on actors and transactions in the use case Function Points Estimates the size of an application in terms of transactions and data Complexity of functionality determined by size of data in motion (transactions) and data at rest (database)
8
Estimation methodologies – Expectation setting
WBS or expert estimation is not a formal methodology and results can be very subjective. Use of certain discipline, can however improve accuracy greatly Use of formal methodologies require certain generalizations when used for applications of different technologies They can improve accuracy greatly but cannot be 100% perfect
9
What can formal methodologies do for you?
With estimation techniques, you can… Estimation techniques are not… Overall Plan (Iteration 1 + 2) Team Size Effort (Person Days) Phase Onsite Offshore Weeks Cost ($) Analysis 5 125 61,000 Design 2 8 6 60 240 79,200 CUT 16 11 110 880 236,720 IT & ST 50 400 107,600 Acceptance 4 120 83,520 TOTAL 33 465 1640 568,040 … work out the size / effort with better accuracy. However… … a method to predict size based on pre-determined parameters
10
What can formal methodologies do?
Provide a formal structure to the estimation work out Make estimates easy for review and concurrence Less experienced professional can estimate and a senior can review Disagreements over estimation elements can be sorted out by guidelines Take up continuous improvement based on comparison of estimates and actuals Essentially use of formal methodologies can greatly improve the accuracy of estimates
11
What the methodologies don’t do
A methodology does not automatically guarantee accurate estimates!!! It is no substitute for the estimator’s clarity of vision and application of mind
12
Estimation Tools What do the tools do for you and what they don’t?
Sizing is a manual task and will be an input to most costing tools Breaking down the specification into units of estimation method is completely manual work Tools helps you determine, cost, schedule, ramp up plan etc. based on the size or effort estimated Some of the popular estimation tools Construx Estimate™ SLIM-Estimate EstimateExpress SEER-SEM PRICE TruePlanning
13
Estimation basics - Key takeaways
No well established methodology in vogue in the industry Function Points and Use Case Points are the most well known methodologies though not the most widely used ones WBS is not a formal estimation methodology Each formal methodology has it’s own paradigm of size such as Function Points and Use Case Points Formal methodologies improve accuracy but don’t guarantee it Sizing is always done manually. Tools come after sizing is done On the lighter side… Murphy’s law: Everything takes longer than you think Our corollary: By using formal methodologies, you improve the accuracy of how long “you think it takes” Stock Meyer’s theorem: If it looks easy, it’s tough; If it looks tough, it’s damn well impossible Our corollary: Formal methodologies bring in uniformity in the way it “looks”
14
Work breakdown structure
15
What is Work Breakdown Structure?
What is WBS (Work Breakdown Structure)? A hierarchical structure used to organize tasks by splitting them into various sub-tasks. Two types – work break down and functionality break down The term ‘work’ in the work breakdown is overused – it can denote breakdown of functionality as well. WBS estimation For the WBS, effort is assigned to each leaf node and aggregated Also called expert estimation Both, breaking down the work and estimating involves experience and expertise…
16
WBS - Exercise Please refer to use case 1 (User administration) and determine the total effort required to develop this use case as a project. The total effort should include project management effort (10%) and buffer (10%) as well. Assumption is that this one use case is developed as a complete application involving GUI, design of tables and documentation of same, coding, unit testing and system testing. Estimation must include user documentation effort also.
17
Lessons from the exercise
This exercise has been conducted for over 15 batches and 300 participants across more than 5 organizations. Every time, the results follow a similar pattern and a typical pattern of each workshop is plotted below. The estimates that the participants come up with even after clear instructions about the scope of work has huge variance and participants who are all technical people come up with estimates of 7 person days to 165 person days. This huge variance makes estimates very unreliable and calls for using standard methodologies. And when the same batches use formal methodologies, the variance reduces very much as will be shown in later slides.
18
A disciplined implementation of WBS method
Previous exercise calls for refining the WBS method and / or usage of formal methodologies Characteristics of a good WBS based estimate Breakdown is hierarchical and structured Granularity is optimal Duplicates are eliminated Assumptions are clearly documented If breakdown is based on work (not functionality) WBS should be based on life cycle model Effort estimate for the WBS unit based on complexity and norm Examples of WBS An average WBS sheet… A neat WBS sheet… MVC Points sheet… Note: The sample estimation sheets attached only provide a look and feel of the category of estimation and are not exercises. Hence, no specification is associated with the estimation sheets in this slide.
19
WBS estimate – flow chart
Get inputs RFP, Q & A Tips Break down specs into WBS elements Complexity guidelines Classify complexities of elements Effort Norms Assign effort to each element and aggregate Estimated Effort
20
Tips for arriving at good WBS estimate
To assess level of granularity, a leaf node should consume about 1% to 10% of the overall project effort Account for learning curve separately Watch out for implicit tasks (such as external interfaces) Consider risks Classify complexity Express functionality breakdown in terms of use cases / user activity Account for reuse if applicable
21
Work Breakdown Structure Estimation
Key takeaways WBS estimation can lead to a large variance of estimates Applying the best practices covered can reduce the subjectivity and increase confidence level
22
Increased accuracy with structured WBS
It can be observed here that the accuracy has greatly improved compared to the results of using unstructured WBS. The range has reduced from 7 – 165 to around 15 – 75. And more results conform to the 40 – 60 range. Just bringing in discipline into WBS can improve results, but formal methodologies can yield a much better consistency as shown in later slides.
23
Wide band Delphi Technique
24
Wideband Delphi What is Wideband Delphi? When is it useful?
An iterative method of getting expert opinions to arrive at an educated consensus on a complex topic such as estimation Simply put, it is a specific type of group discussion involving experts in different areas of a software application The goal of Wideband Delphi is to minimize subjectivity involved in effort estimation by getting multiple expert opinions and arriving at group consensus When is it useful? When the s/w application to be developed is large and involves multiple complexities in technologies, environment and /or processes When no single person has enough knowledge to estimate for all aspects of application When the risks of inaccurate estimation are high
25
Wide band Delphi - Process
Estimation team is formed and specs distributed Individuals prepare estimates and document assumptions Moderator briefs the team and the discussion starts Individuals state estimate and assumptions in round robin Summary Other participants correct their estimates and assumptions Moderator prepares summary and redistributes Estimates converge OR stale mate occurs Moderator enforces closure and arrives at final estimate
26
WBD – Roles and responsibilities
Moderator Ensure that participants have done the preparation Ensure that each participants narrates his /her estimates and corresponding assumptions Ensure that the meeting does not degenerate into an argumentative mode or a negotiation Take a final call when there is no convergence Participant Come to the meeting prepared with estimates and assumptions Provides his / her estimates and corresponding reasoning / assumptions Is open to changes and corrects his / her assumptions and estimates based on other participant’s assumptions. Does not get into an argument trying to convince others Does not compromise without reasoning Does not negotiate If the participants haven’t done the estimates, call off the meeting, ask the participants to prepare individual estimates and assemble back.
27
Do’s and Don’ts in WBD DO’s Don’ts Back ground preparation (Home work)
Documenting assumptions Listening to other’s assumptions and applying corrections to one’s own estimates Don’ts Negotiating estimates in the meeting Arguing and trying to convince others The iterative approach crumbling to one big group discussion
28
Typical Worksheets Work sheet for individual estimators
Name of the Unit Initial estimate Change 1 Change 2 Final Remarks Total Work sheet for the moderator Name of the Unit Estimate 1 Estimate 2 Estimate 3 Estimate 4 Final Total
29
Factors influencing accuracy
Size of the team Experience of the members Time spent in the individual preparation as well as the group sizing meeting Moderator’s ability to resolve the issues
30
Advantages of Wideband Delphi
No estimation method is perfect; if it were, it would be called prediction, not estimation; However, the Wideband Delphi technique reduces subjectivity, ambiguity and variance in estimation process and improves accuracy The team approach leverages the value of combining multiple expert perspectives and can result in the best possible estimate
31
WBD – Key take aways WBD is a group decision making technique and can be used along with any estimation methodologies including WBS or can be used independently. If used with free format estimates, the group of experts express their estimates in effort directly. If used with formal methodologies, experts express their estimates in the units of the methodology such as FP or UCP Leverages expertise of multiple experts
32
Function points methodology
33
Function points –overview
Elements of function points methodology Illustration Hands-on exercise
34
Function points – methodology overview
Assesses the size of an application in terms of it’s functionality delivered to the user. Views an application to be consisting of mainly data and transactions. The number of data elements, number of transactions and their complexities put together determine size Introduced a paradigm shift when most estimation methods were based on lines of code (LOC) as a sizing unit
35
Function points – Procedure overview
Determine the System Boundaries Count Unadjusted FP using… Internal Logical Files (ILF) DATA FPs External Interface Files (EIF) External Inputs (EI) External Outputs (EO) Transaction FPs External Inquiries (EQ) Rate General System Characteristics Determine VAF and Final Function Point count Convert FP count into Effort, Schedule & Cost
36
Defining application boundary
Application boundary indicates the border between the software being measured and the user It encloses the logical data maintained by the application (ILFs) It also assists in identifying the logical data referenced by but not maintained within this application (EIFs)
37
Example of application boundary
External Inputs PAYROLL SYSTEM Employee IT Declaration External Outputs Internal Logical Files (ILF) EMPLOYEE PAYSLIP IT PROJECTIONS External Inquiries MY DATA HR SYSTEM External Interface Files
38
Components of Function points
Components accounting for functional requirements Data elements Internal Logical Files (ILF) External Logical Files (EIF) Both are also called data at rest Transaction elements External Inputs (EI) External Inquiry (EQ) and External Output (EO) The three elements are also called data in motion Elements to classify complexities File Types Referenced (FTR), Data Element Types (DET) and Record Element Types (RET) Components accounting for non-functional requirements General system characteristics Value Adjustment Factor (VAF) detemined by rating GSCs.
39
FP Components with respect to boundary
Tables Master Transaction Internal Logical Files (ILF) External Inputs (EI) External Inputs Screens External Outputs (EO) External Outputs Reports External Inquiries (EIQ) External Inquiries Lookups Error Messages External Interface Files (EIF)
40
Function points flow – identify elements
RFP Q & A Gather inputs Identify ILFs, EIFs, EIs, Eos & EQs Unadjusted FP Classify complexities based on DETs, RETs and FTRs Determine VAF by rating 14 GSCs Adjusted (Final) FP Multiply unadjusted FPs by VAF Estimated Effort Multiply FP with productivity norm End of FP Estimation
41
FP elements – ILF, EIF ILF – Internal Logical File
Is a user identifiable group of logically related data that resides entirely within the application boundary and is maintained through External Inputs EIF – External Interface Files An External Interface File is a user identifiable group of logically related data maintained outside the application boundary The data resides entirely outside the application boundary and is maintained by another applications external inputs
42
FP Elements - External Inputs (EI)
Internal Logical Files (ILF) External Inputs (EI) EI – External Inputs An External Input processes data that comes from outside the application boundary An EI must maintain one or more ILFs
43
FP Elements - External Inquiry (EQ)
Internal Logical Files (ILF) An External Inquiry is a process made up of input-output combination that requires immediate retrieval of data from business point of view and does not result in any update of data in any ILF (Looksups, Combo Boxes, Lists, etc) EQs will access one or more ILFs / EIFs
44
FP Elements - External Outputs (EO)
Internal Logical Files (ILF) Derived Data EO – External Outputs An External output is a process that generates data that is to be sent to outside the application boundary (Reports) An EO is generated using one or more ILFs and EIFs An EO may result in updates to ILFs
45
Determine complexities
RFP Q & A Gather inputs Identify ILFs, EIFs, EIs, Eos & EQs Unadjusted FP Classify complexities based on DETs, RETs and FTRs Determine VAF by rating 14 GSCs Adjusted (Final) FP Multiply unadjusted FPs by VAF Estimated Effort Multiply FP with productivity norm End of FP Estimation
46
Factors influencing complexity…
DET – Data Element Type Is a UNIQUE user recognizable field in the ILF / EIF (Example: Attribute or Column) RET – Record Element Type User recognizable SUB-GROUP of DETs in the ILF / EIF (Example: Employee Info, Location Info, etc)
47
…Factors influencing complexities…
FTR – File Type Referenced An FTR is an ILF / EIF that is accessed to complete the External Input The ILF / EIF may be accessed for adding, modifying, deleting or reading data An ILF / EIF must be counted as one FTR irrespective of the number of times or modes in which it is accessed by the EI
48
…Factors influencing complexity
Influence of ILF and EIF are determined through DET and RET Influence of EI / EO / EQ is determined through DET and FTR
49
Illustration of DET, RET and FTR
EMPLOYEE EMPLOYEE NUMBER DATA Element It is the smallest unit of data that is meaningful for the purpose at hand. EMPLOYEE NAME FIRST NAME LAST NAME DATA Structure It is made up of data elements DATE OF BIRTH DATE OF JOIN PHONE DATA Stores Place where data structures are kept until needed Area Code Number Extension In the example above how many DETs, RETs and FTRs do you find?
50
Complexity and unadjusted FP Count
The complexity classification of ILF and EIF, and corresponding function points are given in the table below:
51
Complexity and Unadjusted FP - EI, EO & EQ
52
Unadjusted Function Points - table
53
Unadjusted Function Points - Illustration
Type of Component Complexity of Components Low Average High Total External Inputs 0*3=0 0*4=0 1*6=6 6 External Outputs 1*5=5 0*7=0 5 External Inquiry 1*3=3 0*6=0 3 Internal Logical Files 2*7=14 0*10=0 0*15=0 14 External Interface Files Total Number of Unadjusted FP (UFP) 33
54
Revising FP components – another overview
External User External Input External Output External Inquiry Other Applications Application Boundary ILF EIF External Input External Output
55
Determining Value Adjustment Factor
RFP Q & A Gather inputs Identify ILFs, EIFs, EIs, Eos & EQs Unadjusted FP Classify complexities based on DETs, RETs and FTRs Determine VAF by rating 14 GSCs Adjusted (Final) FP Multiply unadjusted FPs by VAF Estimated Effort Multiply FP with productivity norm End of FP Estimation
56
Value Adjustment Factor (VAF)
The five classified FP elements dealt with accounted for application complexity arising out of functional requirements How to account for non-functional requirements?...through VAF The Value Adjustment Factor (VAF) is based on what are called 14 General System Characteristics (GSC's) Each characteristic has associated descriptions that help determine the degrees of influence of the characteristics. The degrees of influence range on a scale of 0 to 5. The ratings are: 0 Not present, or no influence Incidental influence 2 Moderate influence Average influence 4 Significant influence Strong influence throughout The Degree of Influence (Sum of ratings) can take on a value in the range of 0 to 70 ( 0 X 14 to 5 X 14)
57
Fomula to calculate VAF
Value Adjustment Factor (VAF) = (Total DI * 0.01) Since DI can take on a value between 0 to 70, VAF varies between 0.65 and 1.35 VAF can change UFP value up to ± 35%.
58
GSC at a glance
59
Finding VAF – Illustration…
General System characteristics Value Data Communications 4 Distributed Data Processing 2 Performance 5 Heavily used configuration Transaction rate 3 On-Line data entry End-user efficiency On-Line update Complex processing Reusability 1 Installation ease Operational ease Multiple sites Facilitate change Total 38 VAF =TDI* = (38*.01) = 1.03
60
Determining final (Adjusted) FP
RFP Q & A Gather inputs Identify ILFs, EIFs, EIs, Eos & EQs Unadjusted FP Classify complexities based on DETs, RETs and FTRs Determine VAF by rating 14 GSCs Adjusted (Final) FP Multiply unadjusted FPs by VAF Estimated Effort Multiply FP with productivity norm End of FP Estimation
61
Calculating adjusted function points
Multiply unadjusted function points by VAF to obtain final FP FP = UAF * VAF Where: UAF = Unadjusted Function Points VAF = Value Adjustment Factor
62
Adjusted function points - Illustration
Type of Component Complexity of Components Low Average High Total External Inputs 0*3=0 0*4=0 1*6=6 6 External Outputs 1*5=5 0*7=0 5 External Inquiry 1*3=3 0*6=0 3 Internal Logical Files 2*7=14 0*10=0 0*15=0 14 External Interface Files Total Number of Unadjusted FP 33 VAF =TDI*.01=(38*.01)+0.65 1.03 Adjusted Function Point -> 1.03*UFP = 1.03 * 33 34
63
Determine effort from function points
RFP Q & A Gather inputs Identify ILFs, EIFs, EIs, Eos & EQs Unadjusted FP Classify complexities based on DETs, RETs and FTRs Determine VAF by rating 14 GSCs Adjusted (Final) FP Multiply unadjusted FPs by VAF Estimated Effort Multiply FP with productivity norm End of FP Estimation
64
Determining effort from final FP count
Size in FPs Person Hours per FP Potential# of Use Cases 10 1-2 100 3-5 5-10 1000 9-11 20-35 5000 15-18 50-65 10000 25-35 Depending on Adjusted FPs select appropriate person hrs/FP from Table. For ex, if Adj FPs = 1100 we could take 10 person hrs/FP. Effort = 1100*10= person hours. For practicality, please use the Wipro norms available on Veloci-Q
65
Determining effort from final FP count
Type of Component Complexity of Components Low Average High Total External Inputs 0*3=0 0*4=0 1*6=6 6 External Outputs 1*5=5 0*7=0 5 External Inquiry 1*3=3 0*6=0 3 Internal Logical Files 2*7=14 0*10=0 0*15=0 14 External Interface Files Assume it is a part of medium project (around 1000 FP) Effort = 34*11~ 374 PHrs ~ PDays Total Number of Unadjusted FP 33 VAF =TDI*.01=(38*.01)+0.65 1.03 Adjusted Function Point -> 1.03*UFP = 1.03 * 33 34
66
End of estimation flow chart
RFP Q & A Gather inputs Identify ILFs, EIFs, EIs, Eos & EQs Unadjusted FP Classify complexities based on DETs, RETs and FTRs Determine VAF by rating 14 GSCs Adjusted (Final) FP Multiply unadjusted FPs by VAF Estimated Effort Multiply FP with productivity norm End of FP Estimation
67
Advanced counting rules - ILF and EIF
Internal Logical Files (ILF) – If answer is Yes to all Entity Counting Rules Does the Rule Apply? State the Reason The group of data or control information is logical and user identifiable? The group of data is maintained through an elementary process within the application boundary being counted? External Interface Files (EIF) – If answer is Yes to all Entity Counting Rules Does the Rule Apply? State the Reason The group of data or control information is logical and user identifiable? The data is referenced by, and external to, the application being counted? The group of data is not maintained by the application being counted? The group of data is maintained in an ILF of another application?
68
Advanced counting rule - EI?
External Inputs (EI) – If answer is Yes to all Entity Counting Rules Does the Rule Apply? State the Reason Does the Transactional Function meet the requirements of an Elementary Process? Does the Transactional Function satisfy the primary intent of an EI? The data or control information is received from outside the application boundary? At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system? One of the Following must apply Processing logic is unique from the processing logic performed by other external inputs for the system? The set of data elements identified is different from the sets identified for other external inputs for the application? The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application?
69
Advanced counting rules – EQ, EO
Entity Counting Rules Does the Rule Apply? Does the Transactional Function meet the requirements of an Elementary Process? Does the Transactional Function satisfy the primary intent of an EQ? The function sends data or control information external to the application boundary? One of the Following must apply Processing logic is unique from the processing logic performed by other external inputs for the system? The set of data elements identified is different from the sets identified for other external inputs for the application? The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application? All the Following must Apply The processing logic of the elementary process retrieves data or control information from an ILF or EIF? The processing logic of the elementary process does not contain a mathematical formula or calculation? The processing logic of the elementary process does not create derived data? The processing logic of the elementary process does not alter the behavior of the system?
70
Estimation using FP - Illustration
Please refer to use case #1 (User administration) and follow the estimation illustration (Attached in the exercise slide of WBS)
71
Counting ILF Authorized Users is an ILF ENTITY ILF Counting Rules
Does it Apply? Authorized Users The group of data or control information is logical and user identifiable? Yes. Each authorized user is an identifiable entity The group of data is maintained through an elementary process within the application boundary being counted Yes. The elementary process maintains authorized users, like approvals coordinator, administrative assistant. reporting manager, Thesaurus Czar etc. Authorized Users is an ILF
72
Counting ILF Error Messages is not an ILF ENTITY ILF Counting Rules
Does it Apply? Error Messages The group of data or control information is logical and user identifiable? Yes. Each error message can be identified using the error code. These is logical as it is required for the error handling. The group of data is maintained through an elementary process within the application boundary being counted No. The elementary process maintains the error messages are outside the system boundary. Error Messages is not an ILF
73
Counting EIF Error Messages is an EIF ENTITY EIF Counting Rules
Does it Apply? Error Messages The group of data or control information is logical and user identifiable? Yes. User require the ability to retrieve the information for error reporting The data is referenced by and external to the application being counted? Yes, this data is external to the application being counted The group of data is not maintained by the application being counted? Yes, this is not maintained by the application. The group of data is maintained in an ILF of another application? Yes. This is a maintained by an external system. Error Messages is an EIF
74
Counting EI ADD USER is an EI ENTITY EI Counting Rules Does it Apply?
Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EI? The Data or control information is received from outside the application boundary? At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system Yes. The Authorized users ILF is maintained One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external inputs for the application The set of data elements is identified is different from the sets identified for other external inputs for the application The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application? ADD USER is an EI
75
Counting EI EDIT _USER is an EI ENTITY EI Counting Rules
Does it Apply? EDIT_USER Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent or an EI? The Data of control information is received from outside the application boundary? At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system Yes. The Authorized users ILF is maintained One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external inputs for the application The set of data elements is identified is different from the sets identified for other external inputs for the application The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application? No. This is same as ADD_USER counted earlier EDIT _USER is an EI
76
Counting EI DELETE_USER is an EI ENTITY EI Counting Rules
Does it Apply? DELETE_USER Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EI? The Data or control information is received from outside the application boundary? At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external inputs for the application The set of data elements is identified is different from the sets identified for other external inputs for the application The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application? Yes. Only the search fields are given as input and set of fields for display are read. No, this is same as ADD/EDIT user DELETE_USER is an EI
77
Counting EI SEARCH_USER is not an EI ENTITY EI Counting Rules
Does it Apply? SEARCH_USER Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EI? No. It is not updating any ILF The Data of control information is received from outside the application boundary? At least one ILF is maintained if the data entering the boundary is not control information that alters the behavior of the system NO. No ILF is maintained One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external inputs for the application The set of data elements is identified is different from the sets identified for other external inputs for the application The ILFs or EIFs referenced are different from the files referenced by other external inputs in the application? Yes. Only the search field(s) is/are needed to perform the Search user. No, this is same as ADD/EDIT user SEARCH_USER is not an EI
78
Counting EQ SEARCH_USER is an EQ ENTITY EQ Counting Rules
Does it Apply? SEARCH_USER Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EQ? Yes. The primary intent is to present information to the User. The Function sends data or control information external to the application boundary? One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external outputs or external inquiries in the application The set of data elements is identified is different from the sets identified for other external outputs and external inquiries in the application Yes. The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application? ALL of the following must Apply: The processing logic of the elementary process retrieves data or control information from an ILF or EIF? Yes. Data is retrieved from the Authorized users The processing logic of the elementary process does not contain a mathematical formula or calculation? Yes. Data is only retrieved and displayed The processing logic of the elementary process does not create derived data? Yes. Derived data is not created. The processing logic of the elementary process does not maintain an ILF? The processing logic of the elementary process does not alter the behavior of the system? SEARCH_USER is an EQ
79
Counting EQ DISPLAY_USER is an EQ ENTITY EQ Counting Rules
Does it Apply? DISPLAY_USER Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EQ? Yes. The primary intent is to present information to the User. The Function sends data or control information external to the application boundary? One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external outputs or external inquiries in the application The set of data elements is identified is different from the sets identified for other external outputs and external inquiries in the application Yes. The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application? Yes, this will bring only two data fields and display on a screen. ALL of the following must Apply: The processing logic of the elementary process retrieves data or control information from an ILF or EIF? Yes. Data is retrieved from the Authorized users The processing logic of the elementary process does not contain a mathematical formula or calculation? Yes. Data is only retrieved and displayed The processing logic of the elementary process does not create derived data? Yes. Derived data is not created. The processing logic of the elementary process does not maintain an ILF? The processing logic of the elementary process does not alter the behavior of the system? DISPLAY_USER is an EQ
80
Counting EQ USER_LIST is not EQ ENTITY EQ Counting Rules
Does it Apply? USER_LIST Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EQ? Yes. The Function sends data or control information external to the application boundary? One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external outputs or external inquiries in the application The set of data elements is identified is different from the sets identified for other external outputs and external inquiries in the application The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application? ALL of the following must Apply: The processing logic of the elementary process retrieves data or control information from an ILF or EIF? Yes. Data is retrieved from the EMPLOYEE ILF The processing logic of the elementary process does not contain a mathematical formula or calculation? No. The count of each group is given along with the group. The processing logic of the elementary process does not create derived data? No. Group totals are derived. The processing logic of the elementary process does not maintain an ILF? The processing logic of the elementary process does not alter the behavior of the system? USER_LIST is not EQ
81
Counting EO USER_LIST is an EO ENTITY EO Counting Rules Does it Apply?
Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EO? Yes. The Function sends data or control information external to the application boundary? One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external outputs or external inquiries in the application The set of data elements is identified is different from the sets identified for other external outputs and external inquiries in the application The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application? ONE of the following must Apply: The processing logic of the elementary process contains at least one mathematical formula or evaluation? The processing logic of the elementary process creates derived data? The processing logic of the elementary process maintains at least one ILF? The processing logic of the elementary process alters the behavior of the system? No. USER_LIST is an EO
82
Counting EO ERROR_MESSAGE is an EO ENTITY EO Counting Rules
Does it Apply? ERROR_MESSAGE Does the transactional function meet the requirements of an Elementary Process? Yes Does the transactional function satisfy the Primary Intent of an EO? Yes. The Function sends data or control information external to the application boundary? One of the following must Satisfy: Processing logic is unique from the processing logic performed by other external outputs or external inquiries in the application The set of data elements is identified is different from the sets identified for other external outputs and external inquiries in the application The ILFs or EIFs referenced are different from the files referenced by other external outputs and external inquiries in the application? ONE of the following must Apply: The processing logic of the elementary process contains at least one mathematical formula or evaluation? The processing logic of the elementary process creates derived data? The processing logic of the elementary process maintains at least one ILF? The processing logic of the elementary process alters the behavior of the system? No. ERROR_MESSAGE is an EO
83
Calculation of the Complexity
ILF Authorized user RET – 1 DET - 10 Complexity ->Low EIF Error Messages RET - 1 DET - 3 Complexity-> Low RET 1-19 20-50 >50 1 L A 2-5 H >5 RET 1-19 20-50 >50 1 L A 2-5 H >5
84
Calculation of the Complexity
EI ADD_USER FTR – 1; DET - 12 Complexity ->Low EDIT_USER DELETE_USER EO USER_LIST ERROR_MESSAGE FTR – 1; DET - 4 FTR 1-4 5-15 >15 0- 1 L A 2 H >2 FTR 1-5 6-19 >19 0- 1 L A 2-3 H >3
85
Calculation of the Complexity
EQ SEARCH_USER FTR – 1; DET - 8 Complexity-> Low DISPLAY_USER FTR – 1; DET - 7 FTR 1-5 6-19 >19 0- 1 L A 2-3 H >3
86
Calculating Unadjusted FP
Type of Component Complexity of Components Low Average High Total External Inputs 3*3=9 9 External Outputs 2*4=8 8 External Inquiry 2*3=6 6 Internal Logical Files 1*7=7 7 External Interface Files 1*5=5 5 Total Number of Unadjusted FP 35
87
Finding VAF General System characteristics Value Data Communications 4
Distributed Data Processing 2 Performance Heavily used configuration Transaction rate On-Line data entry 5 End-user efficiency 3 On-Line update Complex processing Reusability 1 Installation ease Operational ease Multiple sites Facilitate change Total 22
88
Calculating Function Points
Type of Component Complexity of Components Low Average High Total External Inputs 3*3=9 9 External Outputs 2*4=8 8 External Inquiry 2*3=6 6 Internal Logical Files 1*7=7 7 External Interface Files 1*5=5 5 Assume this is a part of a medium project (around 1000 FP) Effort (11hrs/FP) ->335 PHrs. ~ 42 PD Total Number of Unadjusted FP 35 VAF =(22*.01)+.65 0.87 Function Point-> UFP*0.87 30.45
89
FPA for Enhancement Project
It has been found that in terms of equivalent functionality, a change is equivalent to 0.5 of a new function and a deletion of functionality is equivalent to 0.25 of a new function
90
FPA for Enhancements New Functions Functions Changed Functions Deleted
Change in GSC
91
Calculate the Following
Total UFP before Change (TUFP b) Total UFP for NEW functions (TUFP new) Total UFP for Changed functions before and after the change (UFP Chg b UFP Chg a) Total UFP for Deleted Functions (TUFP d) VAF before enhancement (VAF b) VAF after enhancement (VAF a)
92
FPA for Enhancement Projects
FPC for enhancement = (UFP new * VAF a) + 0.5 * (UFP chga * VAF a) + 0.25 * (UFP d * VAF b) + (TUFP b – UFP Chgb – UFP d) * (ABS(VAF a – VAF b))
93
Exercise – Estimation using FP methodology
Please refer to the specifications in LMN case study. Carry out the estimates using the Function Points methodology. Note Sample blank worksheets and filled estimation sheets are attached for reference.
94
Function Points – Key takeaways
Function Points is a very useful methodology from a customer’s perspective as it measures size of the functionality being implemented irrespective of the size of the application in terms of LOC. Largely applicable for any commercial application that predominantly consist of data and transactions. The size and complexities of data and transactions handled in the application determines the size of the application Application is broken down into transactional units (EI, EO and EQ) and data units (ILF, EIF). Will need some learning curve for estimators as it is not intuitive to visualize an internet based application having multiple layers in terms of simply transactions and data. But it is possible and feasible.
95
Use Case Points
96
Use Case Points - Overview
Developed by Gustav Karner Views application to be consisting of use cases. Application size is determined by the number of actors, number of use cases involved in the application
97
Use case points – components of size
Sizing functional requirements Actors Use cases Technical complexity factors (TCF) Environmental complexity factors (ECF) Productivity norms to determine effort from size
98
Use case points – flow chart
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
99
Definitions - Actor Actor
someone or something outside the system that interacts with the system” Can be a human, machine or other system Can be active or passive To identify Actors, ask the following questions: Which user groups require help from the system to perform their tasks? Which user groups are needed to execute the system's most obvious main functions? Which user groups are required to perform secondary functions, such as system maintenance and administration? Will the system interact with any external hardware or software system?
100
Definitions – Use case Use Case:
A sequence of actions a system performs that yields an observable result of value to a particular actor Is depicted as an oval in use case diagrams To identify use cases, ask the following questions: What are the primary tasks the actor wants the system to perform? Will the actor create, store, change, remove, or read data in the system? Will the actor need to inform the system about sudden, external changes? Does the actor need to be informed about certain occurrences in the system? Will the actor perform a system start-up or shutdown?
101
Understanding UCP in detail – step 1a and 2a
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
102
Step1a and 2a: Identify actors and determine actor weights
Identify actors for the system as explained previously Categorize the actors as simple, average and complex A Simple actor represents another system with a defined API. An Average actor is another system interacting through a protocol like TCP/IP or it is a person interacting through a text-based interface (like an ASCII terminal). A complex actor is a user interacting through a GUI interface Assign weightage to each classified actor according to the table Actor Type Weight Factor Simple 1 Average 2 Complex 3
103
Illustration – Determine actor weights…
Actor A: Customer thru TCP/IP Take Order API Actor C: API being used by Ret Prod Return Product Actor B: Sales pers. directly using sw
104
…Illustration Simple actors Average actors Complex actors
Actor C Average actors Actor A Complex actors Actor B Actor Weight (AW) for the application = 6 Actor Weight Type Weight Factor # of Actors Total Weight simple 1 1 * 1 = 1 Average 2 2 * 1 = 2 Complex 3 3 * 1 = 3 Grand total of actor weights (AW) 6
105
Understanding UCP in detail – step 1b and 2b
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
106
Step 1b and 2b: Identify use cases and use case weight
Identify use cases as explained previously Determine complexity and hence use case weight based on number of transactions in the use case A transaction is defined as an event occurring between the actor and system, the event being performed completely or not at all Use Case Type No. of Transactions Weighting Factor Simple <4 5 Average 4-7 10 Complex > 7 15
107
Use case and use case weight - Illustration
Consider the following sample use case The use case describes the transfer of loan responsibility from one person (group) to another person (group) Actor: Loans in-charge 2.1 Basic Flow User System 1. The responsible notifies the financial institution that he/she wants to transfer a specific loan application to another responsible 2. The authorized user input the loan id into the system. The system displays the name of the applicant and the reference number of the application.
108
…Illustration… User System
3. The user verifies that the application is correct based on the name of the applicant and the reference number. 4a.If the verification succeeds the user modifies the responsible and submit the change. 4b. Else the user cancels the operation and system go to the previous menu. 4c. The system updates the records and display ‘saved’ message. 4d. Goes back to previous menu.
109
…Determining use case weights
The number of transactions in the use case Input loan id & display the loan details Allow the user to change the loan responsible & update the records There are 2 transactions – So the complexity is Low and the Weight is 5 Use case Weight Type Weight Factor # of use cases of this type Total Weight simple 5 1 5 * 1 = 5 Average 10 10 * 0 = 0 Complex 15 15 * 0 = 0 Grand total of use case weights (UCW)
110
Understanding UCP in detail – step 3
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
111
Step 3: Calculate Unadjusted Use Case Points
Unadjusted Use Case Points is the sum of actor weights and use case weights UUCP = AW UCW where AW is Actor Weight & UCW is Use Case Weights In the Transfer Loan Responsible use case, UUCP = 3+5 = 8
112
Understanding UCP in detail – step 4a, 4b
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Technical Complexity Factor (TCF) 4b- Determine Environmental Complexity Factor (ECF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
113
Step 4a: Calculate Technical Complexity Factor
Description Weight Rating (0-5) Tf(Weight*Ratg) T1 Distributed System 2 T2 Response or thruput objectives T3 End User Efficiency 1 T4 Complex Internal Processing T5 Reusable Code T6 Easy to install 0.5 T7 Easy to use T8 Portable T9 Easy to change T10 Concurrent T11 Includes Security Features T12 Provides Access for 3rd parties T13 Special User Trg Facilities Rqd.
114
Technical Complexity Factor (TCF)
Rating of 0 means factor is irrelevant for project, 5 means it is essential. TFactor = sigma(Tf) where Tf is Wt*Rating for each factor Tech Comp Factor (TCF) = *TFactor
115
Sample TCF TCF=0.6+(0.01*58) = 1.18 Factor Description Weight
Rating (0-5) Tf(Weight*Ratg) T1 Distributed System 2 5 10 T2 Response or thruput objectives T3 End User Efficiency 1 4 T4 Complex Internal Processing T5 Reusable Code 3 T6 Easy to install 0.5 T7 Easy to use T8 Portable 6 T9 Easy to change T10 Concurrent T11 Includes Security Features T12 Provides Access for 3rd parties T13 Special User Trg Facilities Rqd. 58 TCF=0.6+(0.01*58) = 1.18
116
Step 4b: Calculating Environmental Complexity Factor (ECF)
Description Weight Rating(0-5) Ef(Wt*Rat) F1 Familiar with RUP 1.5 F2 Application Experience 0.5 F3 Object Oriented Experience 1 F4 Lead Analyst Capability F5 Motivation F6 Stable Requirements 2 F7 Part Time Workers -1 F8 Difficult Prog Lang
117
…Environmental Complexity Factor(ECF)
Calculate Environmental Factor (EF): EFactor = sigma(Ef) where for each Factor Ef = Rating * Weight ECF = (-0.03*EFactor)
118
Sample ECF Factor Description Weight Rating (0-5) Ef(Weight*Ratg) F1
Familiar with RUP 1.5 3 4.5 F2 Application Experience 0.5 F3 Object Oriented Experience 1 2 F4 Lead Analyst Capability F5 Motivation 4 F6 Stable Requirements 8 F7 Part Time Workers -1 F8 Difficult Prog Lang -2 19.5 ECF = (-0.03*19.5) = 0.815
119
Understanding UCP in detail – step 5
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
120
Step 5: Calculate Adjusted Use Case Points
Adjusted Use Case Points (UCP) is: UCP = TCF*EF*UUCP where UUCP is unadjusted Use Case Points from Step 3 UCP for the transfer loan responsible use case: UCP = 8*1.18*.815 = 7.65
121
Understanding UCP in detail – step 6
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
122
Step 6 : Effort Calculation in person hours
Let the no. of factors below 3 in F1-F6 in the Environment Factor Table be n1 Let no. of factors above 3 in F7-F8 be n2. If n1 + n2 <= 2 Use 20 person hrs per UCP ( 2.5 person days per UCP) Use 28 person hrs per UCP > Use 36 person hrs per UCP
123
… Effort Calculation Transfer Loan responsible use case n1 = 1 n2 = 0
n1 + n2 = 1, which is <=2, so use 20 phrs / UCP Effort = 7.65 * 20 = 153 Phrs. Add 10% buffer, Total Effort = 153 * 1.1= Phrs.
124
Understanding UCP in detail – step 6
RFP Q & A Gather inputs 1a - Identify actors 1b - Identify use cases 2a -Determine actor weights by classifying actors 2b - Determine use case weights by classifying use cases 3 - Determine Unadjusted Use Case Points (UUCP) by summing up actor weights and use case weights 4a - Determine Environmental Complexity Factor (ECF) 4b- Determine Technical Complexity Factor (TCF) 5 - Adjusted Use Case Points (UCP) = UUCP * TCF * ECF 6 - Determine effort from UCP and productivity norm Estimated Effort End of UCP Estimation
125
Results from Case Studies
Company Project Use Case Estimate Expert Estimate Actual Effort Deviation use case est. Deviation exp. est. Mogul A 2550 2730 3670 -31% -26% B 2340 2860 -5% -18% C 2080 2100 2740 -24% -23% CGE&Y 10831 7000 10043 +8% -30% 14965 12600 12000 +25% +5% IBM 4086 2772 3360 +22% Students project 666 742 -10% 487 396 +23% 488 673 -25%
126
Adapting the method Correctness of the use case model Level of detail:
The use case model should include the functional requirements of all the user groups Level of detail: The use case model should be described at an appropriate level of detail. The main challenges are to obtain balanced use cases and avoid ”infinite” expansion. Possible solutions are guidelines and good examples of use case models. Usage of Rational’s ”9 use cases at a level guideline”
127
Use Case Points – Key takeaways
The Use case points method has produced estimates close to actual effort in several projects. This indicates that the use case points method may support expert knowledge when a use case model for the project is available. Some tailoring to the company may be useful to obtain maximum benefits from the method. Customize the productivity norm for the organization
128
Illustration of Use case points methodology
129
User Administration use case
Please refer to the User Administration use case (use case #1 attached in the slide on WBS method exercise) Step – 1a and 2a: Determine Actor Weight The admin user is the only actor As this is a GUI it is a complex actor AW = 3 Step-1b and 2b: Determine Use case Weight Count or estimate number of transactions…
130
Calculate the UCW Number of transactions Totally 10 transactions
List of Auth Users Add User (2 transactions) Modify User (2 transactions) Delete User (2 transactions) Search Screen (2 transactions) Browser search Keyword Search Display user Totally 10 transactions Use case is complex and hence UCW = 15 Step 3: Determine Unadjusted Use case points UUCP = AW + UCW = = 18
131
Calculating TCF Factor Description Weight Rating (0-5) Tf(Weight*Ratg)
Distributed System 2 4 T2 Response or thruput objectives 3 6 T3 End User Efficiency 1 T4 Complex Internal Processing T5 Reusable Code T6 Easy to install 0.5 T7 Easy to use T8 Portable T9 Easy to change T10 Concurrent T11 Includes Security Features T12 Provides Access for 3rd parties T13 Special User Trg Facilities Rqd. TCF=0.6+(0.01*38) 0.98 38
132
Sample ECF Factor Description Weight Rating (0-5) Ef(Weight*Ratg) F1
Familiar with RUP 1.5 3 4.5 F2 Application Experience 0.5 F3 Object Oriented Experience 1 2 F4 Lead Analyst Capability F5 Motivation 4 F6 Stable Requirements 6 F7 Part Time Workers -1 F8 Difficult Prog Lang -2 17.5 ECF = (-0.03*17.5) = 0.875
133
Calculate Effort Effort = 1.1*308.7 = 340 Phrs. = 45 pd
Step 5: Calculate Adjusted Use case points From the previous slides, UUCP= 18 TCF = .98 ECF = .875 UCP =18*.98*.875 =15.44 Step 6: Determine effort from Adjusted Use case points Choose productivity norm n1 = 1, n2 = 0 and n1 + n2 = 1; Therefore, use 20 Phrs / UCP Effort =15.44*20 = Phrs. Including 10% buffer, Effort = 1.1*308.7 = 340 Phrs. = 45 pd
134
Conclusion
135
Results with formal methodologies
Results improve further by use of formal methodologies. As compared to a divergent result set compared to 7 pd to 165 pds in unstructured WBS, the results more or less conform to a range of 45 to 55 pd and very exceptional ones falling outside the range of 40 to 60.
136
Current paradigm of estimation methods
Summary of current formal estimation methodologies Pros Has industry bodies backing them, especially the Function Points Expresses the size of functionality as visible to the customer. Hence they are customer-friendly estimation methods Wider applicability irrespective of technologies Cons Because the sizing units are abstract and not specific to a technology, it is difficult to visualize the application in terms of the sizing units Because sizing units do not directly correspond to code units, it is cumbersome to validate the conversion of size to effort at a unit level. Closed – involves empirical equations in arriving at size Difficult to add new complexity factors by the users Difficult for organization to adapt and take it through continuous improvement with user level customization and optimization
137
New paradigm There is a new trend - Open estimation methodologies
Standardize work break down elements into sizing units Define complexity factors for classifying sizing units Define effort norms of sizing units of various complexities Specific – applicable to specific technologies and application types Sizing units specific to technology / application type. Easy to visualize Sizing units correspond to code units Open – does not involve empirical equations in arriving at size Easy to add new complexity factors by end users Possible for organizations to adapt and take it through continuous improvement with user level customization and optimization
138
New paradigm - methodologies
Some methodologies in the new paradigm Template points Used for portal development by implementing content management packages Data points Used for data migration projects Interface points Used for Enterprise Application Integration projects MVC Points Used for J2EE and .Net development projects
139
New methodologies – closer look
Template points Customization of content management products essentially involve customizing pre-built templates Complexity of each template is determined by difficulty involved in customizing it Templates classified into simple, medium and complex based on number of hooks and complexity of processing involved in each hook Data points A table / file is a sizing unit Complexity of structure such as if the data is nested or not determines complexity of unit Complexity of processing / transforming data while migrating
140
Interface points Alternate names - integration points and message points One interface point is one link between a source system and a destination system to carry a set of related data (message) Ex:- an interface between works management system (Oracle application) and Customer management system (A CRM application on SAP) for booking appointments is one interface point. Can also be viewed as an object involving a fields & operations Complexity of an interface is defined based on Complexity of the data How many hierarchies? Complexity of the technology to establish connectivity / build adapters Processing (operation performed on data) Straight forward mapping between fields to fields Looping through data fields for mapping between source and destination Any processing / transformation to be done More than 250 applications have used this successfully
141
Comparison of estimation methodologies
WBS FP UCP Estimation steps Inputs Well documented RFP Well documented RFP Well documented RFP Breakdown units Functionality / Ad hoc units ILF, EIF, EI EO and EQ Use cases Complexity classification Ad hoc / None DETs RETs, FTRs Transactions, Actors Adjustment factors Nothing specific 14 GSCs 13 TCFs & 8 ECFs Sizing units No sizing. Direct effort Function Points Use case points
142
Comparison of results
143
When to use what model Formal methodologies may be a little unintuitive and involves learning curve, but they can be far more accurate Both Function Points and Use case Points are largely useful for commercial applications whose size and complexity are characterized by transactions and data When to use what When a quick estimate is required, especially ball park figure, go for UCP as the methodology is simpler and does not need too many details When time and details are available, go for FP as classification of complexity of use cases can be very subjective in UCP When the application cannot be characterized by transactions and data, go for refined / improvised WBS method. When the specification is large and complex, and the estimation accuracy is critical, use WBD with any of the three methods Have more than one team carry out the estimates using any of the methods and reconcile the estimates using WBD
144
Thank you
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.