0% found this document useful (0 votes)
41 views37 pages

Estimation For Software Project: Ashish Kumar Dwivedi

The document discusses software project estimation and cost modeling. It introduces the COCOMO model which estimates software development effort and time based on project size and complexity factors. The document provides details on calculating function points, lines of code, estimating effort, schedule and staffing for a project using the COCOMO model.

Uploaded by

HAQ
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views37 pages

Estimation For Software Project: Ashish Kumar Dwivedi

The document discusses software project estimation and cost modeling. It introduces the COCOMO model which estimates software development effort and time based on project size and complexity factors. The document provides details on calculating function points, lines of code, estimating effort, schedule and staffing for a project using the COCOMO model.

Uploaded by

HAQ
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

Estimation for Software

Project
Ashish Kumar Dwivedi
Metrics
• Process, Project and Product Metrics
• Estimation for Software Project: COCOMO
• Software metrics are analyzed and assessed by software managers.
• Measures are often collected by software engineers.
• If you don’t measure, judgment can be based only on subjective
evaluation
Software Measurements
Questions:
• Compute the function point value for a project with the following information domain
characteristics: Number of user inputs: 32, Number of user outputs: 60, Number of user
inquiries: 24, Number of files: 8, Number of external interfaces: 2, Assume that all
complexity adjustment values are average. It is also given that, out of fourteen value
adjustment factors that influence the development effort, four factors are not applicable,
each of the other four factors has value 3, and each of the remaining factors has value 4.
The computed value of the function point metric is….
• The software used to control a photocopier requires 32,000 lines of C and 4,200
lines of Smalltalk. Estimate the number of function points for the software inside
the copier
• Ans:
Function Points
STEP 1: measure size in terms of the amount of functionality in a
system. Function points are computed by first calculating an unadjusted
function point count (UFC). Counts are made for the following
categories
❑ 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
Example
Example (.)
Relation between LOC and FP
• Relationship:

• LOC = Language Factor * FP

• where
• LOC (Lines of Code)
• FP (Function Points)
Relation between LOC and FP(.)
Assuming LOC’s per FP for:
Java = 53,
C++ = 64

aKLOC = FP * LOC_per_FP / 1000

It means for the SpellChekcer Example: (Java)

LOC=52.25*53=2769.25 LOC or 2.76 KLOC


Software
Metrics
Collection
Process
Process and Project Metrics
• Software metrics are analyzed and assessed by software managers.
• Measures are often collected by software engineers.
• If you don’t measure, judgment can be based only on subjective evaluation
Estimation for Software Project
• Estimation begins with a description of the scope of the problem.
• The problem is then decomposed into a set of smaller problems, and each of
these is estimated using historical data and experience as guides.
• Problem complexity and risk are considered before a final estimate is made.
• Process and project metrics can provide historical perspective and powerful input
for the generation of quantitative estimates.
• Estimation of resources, cost, and schedule for a software engineering effort
requires experience, access to good historical information (metrics).
• Project complexity has a strong effect on the uncertainty inherent in planning.
Cost of a project
• The cost in a project is due to:
• the requirements for software, hardware and human resources
• the cost of software development is due to the human resources needed
• most cost estimates are measured in person-months (PM)
Software Cost Estimation
Effort
• Effort Equation
• PM = C * (KDSI)n (person-months)
• where PM = number of person-month (=152 working hours),
• C = a constant,
• KDSI = thousands of "delivered source instructions" (DSI) and
• n = a constant.
Productivity
• Productivity equation
• (DSI) / (PM)
• where PM = number of person-month (=152 working hours),

• DSI = "delivered source instructions"


Schedule
• Schedule equation
• TDEV = C * (PM)n (months)
• where TDEV = number of months estimated for software development.
Average Staffing
• Average Staffing Equation
• (PM) / (TDEV) (FSP)
• where FSP means Full-time-equivalent Software Personnel.
Cost Estimation Process

Cost=SizeOfTheProject x Productivity
Cost Estimation Process

Effort
Size Table
Development Time
Lines of Code
Estimation Process
Number of Use Case Number of Personnel

Function Point Errors


Project Size - Metrics
1. Number of functional requirements
2. Cumulative number of functional and non-functional requirements
3. Number of Customer Test Cases
4. Number of ‘typical sized’ use cases
5. Number of inquiries
6. Number of files accessed (external, internal, master)
7. Total number of components (subsystems, modules, procedures, routines,
classes, methods)
8. Total number of interfaces
9. Number of System Integration Test Cases
10. Number of input and output parameters (summed over each interface)
11. Number of Designer Unit Test Cases
12. Number of decisions (if, case statements) summed over each routine or
method
13. Lines of Code, summed over each routine or method
Introduction to COCOMO models
• The COstructive COst Model (COCOMO) is the most widely used
software estimation model.
• The COCOMO model predicts the effort and duration of a project
based on inputs relating to the size of the resulting systems and a
number of "cost drives" that affect productivity.
COCOMO Models
• COCOMO is defined in terms of three different models:
• the Basic model,
• the Intermediate model, and
• the Detailed model.
• The more complex models account for more factors that influence
software projects, and make more accurate estimates.
The Development mode
• The most important factors contributing to a project's
duration and cost is the Development Mode
• Organic Mode: The project is developed in a familiar, stable
environment, and the product is similar to previously developed
products. The product is relatively small, and requires little
innovation.
• Semidetached Mode: The project's characteristics are intermediate
between Organic and Embedded.
• Embedded Mode: The project is characterized by tight, inflexible
constraints and interface requirements. An embedded mode project
will require a great deal of innovation.
Effort Computation
• The Basic COCOMO model computes effort as a function of program size. The
Basic COCOMO equation is:
• E = aKLOC^b
• Effort for three modes of Basic COCOMO.

Mode a b

Organic 2.4 1.05


Semi-detache 3.0 1.12
d
Embedded 3.6 1.20
Example
Effort Computation
• The intermediate COCOMO model computes effort as a function of program size
and a set of cost drivers. The Intermediate COCOMO equation is:
• E = aKLOC^b*EAF
• Effort for three modes of intermediate COCOMO.

Mode a b

Organic 3.2 1.05


Semi-detache 3.0 1.12
d
Embedded 2.8 1.20
Effort computation(.)
• Effort Adjustment Factor
Cost Driver Very Low Nominal High Very Extra
Low High High
Required Reliability .75 .88 1.00 1.15 1.40 1.40
Database Size .94 .94 1.00 1.08 1.16 1.16
Product Complexity .70 .85 1.00 1.15 1.30 1.65
Execution Time Constraint 1.00 1.00 1.00 1.11 1.30 1.66
Main Storage Constraint 1.00 1.00 1.00 1.06 1.21 1.56
Virtual Machine Volatility .87 .87 1.00 1.15 1.30 1.30
Comp Turn Around Time .87 .87 1.00 1.07 1.15 1.15
Analyst Capability 1.46 1.19 1.00 .86 .71 .71
Application Experience 1.29 1.13 1.00 .91 .82 .82
Programmers Capability 1.42 1.17 1.00 .86 .70 .70
Virtual machine Experience 1.21 1.10 1.00 .90 .90 .90
Language Experience 1.14 1.07 1.00 .95 .95 .95
Modern Prog Practices 1.24 1.10 1.00 .91 .82 .82
SW Tools 1.24 1.10 1.00 .91 .83 .83
Required Dev Schedule 1.23 1.08 1.00 1.04 1.10 1,10
Effort Computation (..)
Total EAF = Product of the selected factors

Adjusted value of Effort: Adjusted Person Months:


APM = (Total EAF) * PM
Example
Software Development Time
• Development Time Equation Parameter Table:

Parameter Organic Semi-detac Embedded


hed
C 2.5 2.5 2.5
D 0.38 0.35 0.32

Development Time, TDEV = C * (APM **D)

Number of Personnel, NP = APM / TDEV


Distribution of Effort
• A development process typically consists of the following
stages:
• Requirements Analysis
• Design (High Level + Detailed)
• Implementation & Coding
• Testing (Unit + Integration)
Distribution of Effort (.)
The following table gives the recommended percentage distribution of Effort (APM) and
TDEV for these stages:

Percentage Distribution of Effort and Time Table:

Req Design, Implementation Testing


Analysis HLD + DD

Effort 23% 29% 22% 21% 100%

TDEV 39% 25% 15% 21% 100%


Error Estimation
• Calculate the estimated number of errors in your design, i.e.total errors found in requirements, specifications, code, user
manuals, and bad fixes:
• Adjust the Function Point calculated in step1

AFP = FP ** 1.25
• Use the following table for calculating error estimates

Error Type Error / AFP


Requirements 1
Design 1.25
Implementation 1.75
Documentation 0.6
Due to Bug Fixes 0.4
All Together Design

Classes*(2Function Points)

DI=∑ratings of selected factors Unadjusted Function Point (UFP table)


14
TCF=0.65+0.01*∑(DI)j
1 LOC=13.20*Num of Method
TCF Modify LOC=18.25*Num of Method
Min[TCF]=0.65; Max[TCF]=1.35 FP=UFP*TCF

bKLOC=∑ (LOCs for all Classes)/1000


AFP=FP*1.25
aKLOC=FP*LOC_per_FP/1000

Compute Errors = AFP*Y Java=53; C++=64

KLOC=Max[aKLOC, bKLOC]

Compute Effort: Person Month,


PM=A*(KLOC**B) Result

Adjusted PM: APM=(total EAF)*PM NP Effort time


EAF=Product of selected factor
Req APM TDEV

Factor:1-15 Development Time: TDEV=C*(APM**D)

Number of personnel: NP=APM/TDEV

You might also like