Professional Documents
Culture Documents
Based on
Software Requirements
By
Khaqan Zaheer
Agenda 2
- Background
- Effort Estimation Process
- Estimation Issues and solutions
- Types of estimation methods
- COCOMO Model
- IFPUG Method
- Summary
Background 3
Software Size
No of requirements
Source Lines of Code
Function Points
Object Points
Software development Effort
Product Characteristics
Production Resources
Organizational Characteristics
Development Time
Software Development Cost
Background
4
Characterize Predict
Processes,
Products &
Resources
Evaluate Improve
5
Background
Determine Objectives
Who needs what data for what purpose(s)
Gather Data
Well-Defined Requirements
Focus Should Be Given To ‘Hard’ Data
Analyze Data Using A Variety Of Methods
Re-estimate Costs Throughout The Project
Refine and Make Changes As Necessary
Effective Monitoring i.e., Planned Vs Actual
Compare End Costs With Estimated Costs
Project Postmortem Analysis
Issues and Problems 7
Advantages: Empirical
Disadvantages: Subjective
Estimating by Analogy 11
Size estimation is derived from the global properties of the software project,
and then the project is partitioned into various low-level components.
Advantages:
1. Objective, repeatable
2. Has modifiable and analyzable formulas
3. Efficient and able to support sensitivity
analysis
The Selection and Use of Estimation
18
Methods
No one method is necessarily better or worse than the other, in
fact, their strengths and weaknesses are often complementary to
each other.
1.Do not depend on a single cost or schedule estimate, use several
techniques or cost models, compare the results
2.Document the assumptions made when making the estimates
3.Monitor the project to detect when assumptions that turn out to
be wrong jeopardize the accuracy of the estimate.
4.Improve software process
5.Maintaining a historical database
Commercial Tools of Cost Estimation
19
(Cont’d)
Some Promising Tools:
Effort=MM = a * KLOC b
Duration=Time development = c * MM d
a b c d
Has
three series of models:
The Early prototyping level
The Early Design Model
The Post-Architecture Model
Early prototyping level 25
COCOMO-II
Estimates can be made after the requirements have been agreed
Basedon standard formula for algorithmic models
PM = A SizeB M + PM where
m
Where
EAF Is the Effort Adjustment Factor derived from the Cost
Drivers
EIs an exponent derived from the five Scale Drivers
E= (sum of scale factors/100) + 1.01
Post Architectural model 32
Architecture)
Platform factors
Cost Drivers Very Low Nom High Very Extra
Low High High
Execution time 1.00 1.11 1.31 1.67
constraints (TIME)
Main storage 1.00 1.06 1.21 1.57
constraints (STOR)
Platform volatility 0.87 1.00 1.15 1.30
(PVOL)
Effort Multipliers (Post- 41
Architecture)
Personnel factors
Architecture)
Project factors
FSM (I)
Functional User Requirements (FUR): A sub-set of the user
requirements. The FURs represent the user practices and procedures
that the software must perform to fulfill the users’ needs.
ISOBase
of FUR defined Terminology
14143-1 by and used by an for
Functional Component (BFC): An elementary unit
FSM Method for
measurement purposes.
FSM (II)
BFC Type: A BFC is classified as one and only one BFC
Type.
Transaction Functions
External Input
External Output
External Inquiry
Data Functions
Internal Logical File
External Interface File
ISO Approved FSM Methods 49
Procedure
1. Identify Elementary processes from the
Functional User Requirements
2. Identify the BFCs and their types.
3. Rate the complexity of each BFC Type.
4. Assign Function Points to each BFC Type
according to the complexity rates.
5. Calculate the functional size by summing the FPs
assigned to each distinct BFC Type.
IFPUG FPA – BFC Types 51
Transaction Functions
External Input
External Output
External Inquiry
Data Functions
Internal Logical File
External Interface File
52
Identify Transaction
Functions (I)
External Input (EI): an Elementary Process that processes data or
control information that comes from outside the application’s
boundary.
The primary intent of an EI is to maintain one or more ILFs and/or to
alter the behavior of the system.
E.g. “The user will be able to add a new employee to the application.”
Identify Transaction Functions 53
(II)
External Output (EO): an elementary process that
sends data or control information outside the
application’s boundary.
The primary intent of an external output is to present
information to a user through processing logic other than or in
addition to the retrieval of data or control information.
The processing logic must contain at least one mathematical
formula or calculation, or create derived data. An external
output may also maintain one or more ILFs and/or alter the
behavior of the system.
E.g. “The user will be able to calculate and report the monthly
salaries of all employees.”
54
Identify Transaction
Functions (III)
External Inquiry (EQ): an elementary process that sends data or control
information outside the application boundary.
The primary intent of an external inquiry is to present information
to a user through the retrieval of data or control information. The
processing logic contains no mathematical formula or calculation,
and creates no derived data.
No ILF is maintained during the processing, nor is the behavior of
the system altered.
E.g. “The user will be able to retrieve the contact details of an
employee.”
Identify Data Functions (I) 55
Function Points - Complexity weights for EO
61
Function Points assignments for
Data Functions
Complexity weights for ILF & EIF
Data Functions
Function Points - Complexity weights for EIF
Calculate Functional Size
External input:
add new customers
delete customer
Deposit transaction
withdrawal transaction
Internal logical file
customer file
External Inquiry:
query account balance
External interface file:
none
External outputs:
display warning message of an excessive overdraft
request a report of overdrawn customers
66
Function-point assignments
References 67