Title: Project Estimation
1Project Estimation
- SEG 3100Software Development for Large Scale
Systems
2(No Transcript)
3Why Project Estimation
- Controlling software development costs
- - Costs exceeds budget in 90 of the cases
- Parkinsons Law
- Controlling software development time
- - 30 of Projects are never completed or are
cancelled Standish Report - Better project management ? Tradeoffs between
Time, Costs, Contents and Quality - Provides defensible figures at the time of
submitting/evaluating bids and contracts
4What is to be Estimated
- Total size of the project (in KLOCs)
- Effort involved (Person-Months)
- Typical duration of the project (Months)
- Optimum number of people
- Distribution of effort and time in the different
stages of the project - Expected Errors in the product, i.e. Quality
5Estimation Process Diagram
- Size
- Count of Use Cases
- Function Points
- Design Points
- Lines of Code
Effort
Development Time
Estimation Process
Number of Personnel
- Factors
- Design Complexity
- Technical
- Environmental
- Personnel
Errors
6What is needed to do Estimation
- High Level Design
- Requirements Analysis, e.g. Use Cases ? UCP
- High Level Design
- For DP applications Inputs, Outputs, Files..
- For OO applications UML Diagrams
- Nature of the Project
- Product Complexity
- Process Constraints
- Standards Requirements
- Technology Factors
- Personnel Factors Skills
7Estimation Process
- Step1 Collect Information Size and other
factors - Step2 Estimate Lines of the Code
- Step3 Compute Effort
- Step4 Compute Development Time
- Step5 Compute Number of Personnel
- Step6 Distribution of Effort
- Step7 Estimation of Errors
8Estimation Process strategy
- Step1 Size Calculations
- For general and DP designs use
- Function Points Method ? FP
- For OO based designs
- Count Number of Classes ? FP
- Step2 Estimation of Lines of the Code (LOC)
- Convert FP into LOC
- Direct estimation Count Number of Methods ? LOC
- Step3 Compute Effort
- Apply COCOMO (Constructive Cost Modeling)
formulas. - For Use Case Point Method bypass Steps 1 2.
Count Actors and Use Cases ? Development Time - Step4 Compute Development Time
- Apply COCOCMO Formulas
9Methodologies
- A. Use Case Points
- B. Function Points
- C. Object Oriented
- 1. Class base design
- 2. Rational Rose Real Time Design
- D. Miscellaneous
10Design
Classes2 Function Points Capsulesx Function
Points
Unadjusted Function Point (UFP table)
DI?ratings of selected factors
14 TCF0.650.01?(Factor)j
1 MinTCF0.65 MaxTCF1.35
Modify FPUFPTCF
LOC18.25Num of Methods (modify for RRRT)
TCF
bKLOC? (LOCs all Classes, Caps)/1000
AFPFP1.25
Error Table Y
Compute Errors AFPY
KLOCMaxaKLOC, bKLOC
uEffort UCP Method
cEffort Person Months, PMA(KLOCB)
Effort, PMMaxcEffort, uEffort
Result
Adjusted PM APM(total EAF)PM
EAFProduct of selected factor
Effort Factors1-15
Development Time TDEVC(APMD)
Number of personnel NPAPM/TDEV
11A. Use Case Points Karner 1993
- UCPs is and Effort Estimation technique. It
bypassed the size estimation stage. The number
and type of Use cases as well as the actors are
considered.
12A. Use Case Point Example
- Use Case Name Place Order
- Short description
- The customer provides address information and a
list of product codes. - The system confirms the order.
- Basic flow of events
- Customer enters name and address
- Customer enters product codes for items he wishes
to order - The system will supply a product description and
price for each item - The system will keep a running total of items
ordered as they are entered - The customer enters credit card information
- The system validates the credit card information
- The system issues a receipt to the customer
13A. Use Case Point Method
- Classify each Actor and Use Case (as simple,
average or complex). Provide reasons. - Using tables obtain the total weighted sums of
Actors and Use Cases Unadjusted Use Case
Points, UUCP - Of the 13 Technical Complexity Factors and 8
Environmental Factors, identify the ones that are
relevant to your design - Using tables, compute the values of TCF and EF
- Obtain UCP by multiplying UUCP with TCF and EF
- To obtain the Effort in (Product-Hours) multiply
UCP with the Productivity Factor per UCP. - (This varies from 10 hours to 40 Hours per UCP.
The variation is due to factors that have not
been taken into account such as nature of the
team, the project, and the processes used by the
organization)
14A. Use Case Point Calculations -1
back
Step 1. Tabulate Actors Obtain UAW, Unadjusted
Actor Weights Step 2. Tabulate Use Cases
Obtain UUCW, Unadjusted Use Case
Weights Step 3 Total Unadjusted UCP,
UUCP UAW UUCW
15A. Use Case Point Calculations -2
- Step 4 Identify grade Complexity Factors
Obtain TCF - TCF 0.6 (0.01
TFACTOR)
16A. Use Case Point Calculations -3
- Step 5 Identify grade Environment Factors
Obtain EF -
- EF 1.4 (-0.03 EFACTOR)
- Step 6 UCP UUCP TCF EF
- Step 7 Effort in Person-Hours UCP
Productivity Factor - To obtain effort in Person-Months, uEffort
Effort/200
17B. Function Points Albrecht, IBM
- Function Points measures size based on the
functionality. Estimation for Data Processing
designs requires the counting of - External inputs those items provided by the
user that describe distinct application-oriented
data (such as file names and menu selections) - External outputs those items provided to the
user that generate distinct application-oriented
data (such as reports and messages, rather than
the individual components of these) - External inquiries interactive inputs
requiring a response - External files machine-readable interfaces to
other systems - Internal files logical master files in the
system
18Unadjusted FPs for DP Designs
back
Ref COSMOS http//www.cs/umt.edu/RTSL/SoftwEng/c
osmos41
19FP Technical Complexity Factors
back
- Data Communication
- Distributed Data Processing
- Performance Criteria
- Heavily Utilized Hardware
- High Transaction Rates
- Online Data Entry
- Online Updating
- End-user Efficiency
- Complex Computations
- Reusability
- Ease of Installation
- Ease of Operation
- Portability
- Maintainability
20FP Degree of Influence
back
- Compute the Degree of Influence, DI based on
selection from the list of 14 Technical
Complexity Factors, TCF. - Identify the factors relevant for your project
and assign a grade (0 to 5) to each of the
factors selected. - DI Sum of the ratings of the selected factors
21FP Applying TCF correction
back
14 ? 1
- TCF0.650.01 (Degree of Influence)j
- MinTCF0.65, MaxTCF1.35
- Function Points FP UFP TCF
22KLOCs corresponding to Function Points
back
- Estimate for the number of KLOCs (Kilo Lines of
Code) - Assuming LOCs per FP for
- Java 53
- C 64
- aKLOC FP LOC_per_FP / 1000
23C. Object Oriented DesignsSize Calculations
back
- C1. Class Based Designs
- C2. Rational Rose Real Time Designs
24C1. Class based Designs
- Identify and classify all Classes (Boundary,
Entity) - For each class, identify and count all methods
needed to complete the design. Use Sequence
Charts if necessary - Compute LOC (C)
- - For Boundary Classes
- LOC 13.20 Num of Methods
- - For Entity Classes
- LOC 18.25 Num of Methods
- bKLOC Sum of LOCs for all Classes / 1000
25C2. Rational Rose Real Time Designs
- A Rational Rose Real Time, (RRRT) design consists
of a hierarchical arrangement of Capsules each
associated with its specific State chart. - Complexity arises due to the existence of the
number of elements (States, Transitions, Ports
and the Protocols) in the capsule. -
- If we were to write the code ourselves (instead
of letting the RRRT system generate code for us)
then assuming one method (code segment) to be
associated with each element, the total number of
lines per Capsule can be - LOC per Capsule
- 18.25 ? of (States, Transitions, Ports,
Protocols) - bKLOC Sum of LOCs for all Capsules / 1000
- (Note If you were to utilize the code generating
capability of RRRT then you have to furnish the
code for the transitions only).
26C2.Size Tabulation for RRRT Designs
back
27Step 3. Compute Effort LOC ? Effort in PM
back
- 1. Identify the type of your project
- Organic Small teams, no formal processes
- Semi-detached Average size org, some processes
are defined - Embedded Mature organization with formal
processes - 2. Computer the effort in Person-Months using
appropriate COCOMO multipliers and coefficients
from the table below - Effort Person Months, PMA(KLOCB)
28Step 3Effort Adjustment, EAF Table
back
29Step 3 Applying EAF correction to Person Months
PM ? APM
back
- Total EAF P (selected factors)
- Adjusted Effort Adjusted Person Months
- APM (Total EAF) PM
30Step 4. Computing Time for Development Adjusted
Effort ? Time
back
- Compute the estimated optimal development time
according to COCOMO. - Development Time Equation Parameter Table
- Development Time
- TDEV C(APMD)
31Step 5. Computing Number of Personnel APM/TDEV ?
NP
back
- Calculate the Number of Personnel NP
- (based on the Adjusted Effort in Person-Months
and the duration of the project). - NP APM / TDEV
32Step 6. Distribution of Effort Process Phases
back
- A development process typically consists of the
following stages - Requirements Analysis
- Design (High LevelDetailed)
- Implementation Coding
- Testing (UnitIntegration)
- For the Project to be completed on time, it is
important to allocate and budget for appropriate
effort and time at each stage. If we do not do
this the project may be over-budget, late or both.
33Step 6. Distribution of Effort Process Phases
back
- The following table gives the recommended
percentage distribution of Effort (APM) and TDEV
for these stages - Percentage Distribution of Effort and Time Table
34Step 7. Estimation of Errors
back
- Calculate the estimated number of errors in your
design, i.e. total errors found in requirements,
specifications, code, user manuals, and bad
fixes - Update the Function Points calculated in step1 to
EFP - EFP FP 1.25
- Use the following table for calculating error
estimates
35D. MiscellaneousMeasures of Size Effort
- Feature Points
- For applications involving extensive use of
algorithms and light use of files. - FP 3Algorithms 3Master Files
- Design Weights Demarco
- Powerful methodology based on the number of
Decisions (If Case) statements and the
input/output Tokens.
36D. COCOMO II, Post-Architectural Model for Effort
back
- Effort Person Months, PMA(KLOCB)
- No notion of Development Modes (OO, SD, ER)
- Parameter A 2.55
- Parameter B 1.01 0.01 Sum (Scale Factors)
- B(min) 1.06, B(max) 1.25
37Flowchart Estimation Methodologies
38Design
Classes2 Function Points Capsulesx Function
Points
Unadjusted Function Point (UFP table)
DI?ratings of selected factors
14 TCF0.650.01?(Factor)j
1 MinTCF0.65 MaxTCF1.35
Modify FPUFPTCF
LOC18.25Num of Methods (modify for RRRT)
TCF
bKLOC? (LOCs all Classes, Caps)/1000
AFPFP1.25
Error Table Y
Compute Errors AFPY
KLOCMaxaKLOC, bKLOC
uEffort UCP Method
cEffort Person Months, PMA(KLOCB)
Effort, PMMaxcEffort, uEffort
Result
Adjusted PM APM(total EAF)PM
EAFProduct of selected factor
Effort Factors1-15
Development Time TDEVC(APMD)
Number of personnel NPAPM/TDEV
39Summary
back
- From the Size Metric we have estimated Effort
its distribution, Duration, Persons and Errors - How good is estimation - 400
- Accuracy of estimation converges to the actual
value as time proceeds - Accuracy of estimation depends upon
- - Quality of the High Level Design
- - The counting process for baseline metrics
- - How well the correction factors have been
chosen and applied