Sie sind auf Seite 1von 32

Software Estimation

Estimation Framework
Collect Project
Inputs

Key Definition: Software size is the volume of


software in terms of functionalities covered

Estimate
Software Size
Estimate Effort

Historical Project
Data

Estimate
Schedule

Resource
Availability
Current Price
Data

Estimate Price
Re-estimate,
if needed

Approve the
Estimate
Actual Project
Data (size,
effort, schedule,
pricing)

Approved
Estimates

Actual Data

Analyze the
Estimation
Process

Size oriented metrics

Lines of Code

The most commonly used measure of source code


program length is the number of lines of code (LOC).
The abbreviation NCLOC is used to represent a noncommented source line of code.
NCLOC is also sometimes referred to as effective lines
of code (ELOC).
NCLOC is therefore a measure of the uncommented
length.
The commented length is also a valid measure,
depending on whether or not line documentation is
considered to be a part of programming effort.
The abbreviation CLOC is used to represent a
commented source line of code

Size oriented metrics

By measuring NCLOC
separately we can define:
total

and

CLOC

length (LOC) = NCLOC + CLOC

KLOC is used to denote thousands of


lines of code

Algorithmic Models
Effort Equation obtained through
regression analysis
E= a + bKLOC^c
Where E is the effort in person months
a, b and c are constants

Algorithmic Models

Formulae for the relation between size


and effort
Halstead
E = 0.7KLOC1.50
Boehm
E = 2.4KLOC1.05
Walston Felix E = 5.2KLOC0.91

COCOMO

COCOMO

The COnstructive COst MOdel (COCOMO) is one of the bestdocumented algorithmic cost estimation models. In its simplest form,
Basic COCOMO, the formula that relates effort to software size,
reads
Here, b and c are constants that depend on the kind of project that
is being executed. COCOMO distinguishes three classes of project:
Organic A relatively small team develops software in a known environment. The
people involved generally have a lot of experience with similar projects in their
organization. They are thus able to contribute at an early stage, since there is no
initial overhead. Projects of this type will seldom be very large projects.
Embedded The product will be embedded in an environment which is very
inflexible and poses severe constraints. An example of this type of project might
be air traffic control or an embedded weapons system.
Semidetached This is an intermediate form. The team may include a mixture of
experienced and inexperienced people, the project may be fairly large, though
not excessively large, etc

COCOMO

For the various classes of project, the parameters of Basic COCOMO take
on the following values:
b

Organic

2.4

1.05

Semi-detatched

3.0

1.12

embedded

3.6

1.20

Size versus effort in Basic COCOMO


KLOC

Organic (E = 2.4KLOC1.05)

Semidetached (E =
3.0KLOC1.12)

Embedded (E =
3.6KLOC1.20)

2.4

3.0

3.6

10

26.9

39.6

57.1

50

145.9

239.4

392.9

100

302.1

521.3

904.2

1 000

3 390.0

6 872.0

14 333.0

COCOMO

For the various classes of project, the parameters of Basic COCOMO take
on the following values:
b

Organic

2.4

1.05

Semi-detatched

3.0

1.12

embedded

3.6

1.20

Size versus effort in Basic COCOMO


KLOC

Organic (E = 2.4KLOC1.05)

Semidetached (E =
3.0KLOC1.12)

Embedded (E =
3.6KLOC1.20)

2.4

3.0

3.6

10

26.9

39.6

57.1

50

145.9

239.4

392.9

100

302.1

521.3

904.2

1 000

3 390.0

6 872.0

14 333.0

UCP Use Case


Points

Use Case Points (UCP)

In general, applications with large, complicated use cases take more effort
to design and implement than small applications with less complicated use
cases. Moreover, the time to complete the application is affected by:

The number of steps to complete the use case.


The number and complexity of the actors.
The technical requirements of the use case such as concurrency, security and performance.
Various environmental factors such as the development teams experience and knowledge.

Use Case Points (UCP) is an estimation method that provides the ability to
estimate an applications size and effort from its use cases. Based on work
by Gustav Karner in 1993, UCP analyzes the use case actors, scenarios
and various technical and environmental factors and abstracts them into an
equation. The equation is composed of four variables:

Technical Complexity Factor (TCF).


Environment Complexity Factor (ECF).
Unadjusted Use Case Points (UUCP).
Productivity Factor (PF).

Use Case Points (UCP)


UCP = TCF * ECF * UUCP * PF

In general, applications with large, complicated use cases take more effort
to design and implement than small applications with less complicated use
cases. Moreover, the time to complete the application is affected by:

The number of steps to complete the use case.


The number and complexity of the actors.
The technical requirements of the use case such as concurrency, security and performance.
Various environmental factors such as the development teams experience and knowledge.

Use Case Points (UCP) is an estimation method that provides the ability to
estimate an applications size and effort from its use cases. Based on work
by Gustav Karner in 1993, UCP analyzes the use case actors, scenarios
and various technical and environmental factors and abstracts them into an
equation. The equation is composed of four variables:

Technical Complexity Factor (TCF).


Environment Complexity Factor (ECF).
Unadjusted Use Case Points (UUCP).
Productivity Factor (PF).

Use Case Points (UCP)


TCF = .06 + (.01*Total Factors)

Rate 0-5, multiply with the weight and finally sum up to get the Total Factors
Technical Factor

Description

Weight

T1

Distributed system

T2

Performance

T3

End User Efficiency

T4

Complex internal
Processing

T5

Reusability

T6

Easy to install

0.5

T7

Easy to use

0.5

T8

Portable

T9

Easy to change

T10

Concurrent

T11

Special security features 1

T12

Provides direct access


for third parties

T13

Special user training


facilities are required

Use Case Points (UCP)


ECF = 1.4 + (-0.03*Total Factors)

Rate 0-5, multiply with weight and finally sum up to get the Total Factors

Use Case Points (UCP)


UUCP = 1.4 + (-0.03*Total Factors)

The Unadjusted Use Case Weight (UUCW) based on the total number of activities (or steps)
contained in all the use case Scenarios.
The Unadjusted Actor Weight (UAW) based on the combined complexity of all the use cases
Actors.
Total Factors UUCW+UAW
UUCW = total use cases in each category, multiply by Weight and finally sum-up to get UUCW
UAW = total number of actors in each category, multiply with its weight and finally sum-up

Use Case Type

Description

Simple

A simple user interface and touches only a


5
single database entity; its success scenario has
3 steps or less; its implementation involves less
than 5 classes.

Average

Complex

Weight

More interface design and touches 2 or more


database entities; between 4 to 7 steps; its
implementation involves between 5 to 10
classes.

10

Involves a complex user interface or


processing and touches 3 or more database
entities; over seven steps; its implementation
involves more than 10 classes.

15

Actor Type

Description

Weight

Simple

The Actor represents another


system with a defined API.

Average

The Actor represents another


system interacting through a
protocol, like TCP/IP.

Complex

The Actor is a person interacting 3


via an interface.

Use Case Points (UCP)


UUCP = 1.4 + (-0.03*Total Factors)

The Unadjusted Use Case Weight (UUCW) based on the total number of activities (or steps)
contained in all the use case Scenarios.
The Unadjusted Actor Weight (UAW) based on the combined complexity of all the use cases
Actors.
Total Factors UUCW+UAW
UUCW = total use cases in each category, multiply by Weight and finally sum-up to get UUCW
UAW = total number of actors in each category, multiply with its weight and finally sum-up

Use Case Type

Description

Simple

A simple user interface and touches only a


5
single database entity; its success scenario has
3 steps or less; its implementation involves less
than 5 classes.

Average

Complex

Weight

More interface design and touches 2 or more


database entities; between 4 to 7 steps; its
implementation involves between 5 to 10
classes.

10

Involves a complex user interface or


processing and touches 3 or more database
entities; over seven steps; its implementation
involves more than 10 classes.

15

Actor Type

Description

Weight

Simple

The Actor represents another


system with a defined API.

Average

The Actor represents another


system interacting through a
protocol, like TCP/IP.

Complex

The Actor is a person interacting 3


via an interface.

Use Case Points (UCP)


Productivity Factor (PF)

The Productivity Factor (PF) is a ratio of the number of man hours per use case point based on
past projects. If no historical data has been collected, a figure between 15 and 30 is suggested
by industry experts. A typical value is 20.

Final Calculation

UCP = TCP * ECF * UUCP * PF

Functional Point Model

What are functional points


Function Point Definition
A method of representing the size of a software system in terms of the
functionality it delivers to the user
Measures independently of technology used for implementation
Allows one to compare the functional size of different systems

Types of FPs
Development Project Count
measures the functions provided to the users with the first installation of the
software delivered when the project is complete

Enhancement Project Count


measures the modifications to the existing application that add, change or delete
user functions delivered when the project is complete
when an enhancement project is installed, the application function point count
must be updated to reflect changes in the applications functionality

Application Count
provides a measure of the current functions the application provides to the user
commonly referred to as the Baseline or Installed Function Point count
initialized when the development project Function Point count is completed
updated every time completion of an enhancement project alters the applications
functions

Inputs to FP calculation
Suggested Input Documents

Requirements Document
Data Flow Diagrams
Data Models
Entity Relationship Diagrams
Flow Charts
Interface Descriptions
Reports Layouts
File Layouts
Screen Layouts
User Manual/Guide
Tutorial Documentation

Elementary Processes
External Input (EI) FPA Definition
It is an elementary process that processes data or control information that enters from
outside the application boundary
It maintains one or more ILFs and/or alters the behavior of the application

External Output (EO) FPA Definition


It is an elementary process that generates data or control information, using processing
logic that is sent outside the application boundary
In addition to retrieval of data or control information, the processing logic must contain at
least one mathematical formula/calculation or create derived data or maintain one/more
ILF(s) or alter the behavior of the system
Error Messages etc..

External query (EQ) FPA Definition


It is an elementary process that retrieves data or control information that is sent outside
the application boundary
The processing logic contains no mathematical formulas / calculations, creates no
derived data, does not maintain any ILFs and does not alter the behavior of the system
It is made up of both the input and the output

Internal Logical File (ILF) & External Interface File (EIF)

ILF- FPA Definition

EIF- FPA Definition


An EIF is a user identifiable group of
logically related data or control
information referenced by the
application, but maintained outside
the boundary of the application

Example
Example
Employee information
Leave Master
Identify system
boundaries

Example
Example
Employee
information

Salary
Informati
on

An ILF is a user identifiable group


of logically related data or control
information maintained within the
boundary of the application

Payroll

FPA Estimation process flow


Understand requirements, determine type of count, define system boundary, identify
elementary processes
Identify ILFs and EIFs
Determine ILF, EIF complexity
Determine EI, EO, EQ
Determine EI, EO, EQ complexity
Calculate UFP using UFP translation table
UFP = Unadjusted Function Point
TDI= Total Degree
of Influence

Calculate total UFP

Determine TDI of 14 general system characteristics

Calculate adjusted FP

Functional Point Complexity Matrix


Function

Low

Avg

High

ILF

10

15

EIF

10

EI

EO

EQ

Value Adjustment Factor

The Fi ( i=1 to 14) are Value Adjustment


Factors (VAF) based on the response to the
following questions
1.
2.
3.
4.
5.
6.
7.

Does the system require reliable backup and recovery?


Are specialized data communications required to transfer
information to or from the application ?
Are there distributed processing functions ?
Is performance critical ?
Will the system run in a heavily utilized operational
environment ?
Does the system require online data entry?
Is the online data entry running into multiple screens ?

Value Adjustment Factor


8.
9.
10.
11.
12.
13.
14.

Are the ILFs updated online ?


Is the internal processing complex ?
Is the code designed to be reusable ?
Are the conversion and installation included in the design ?
Is the system designed for multiple installations ?
Is the application designed to facilitate change?
Are the inputs, outputs ,files or inquiries complex ?

Each of these questions are answered on a scale of 0(not


important ) - 5 (absolutely essential )

FP Formula Size Calculation


To compute the function points (FP) following
relationship is used
FP = count total * [0.65 + (0.01 * (Fi)) ]

Effort Calculation

Past data indicates (Java) 1FP = 11 PDs


Distribute total effort to

Analysis (20%)
Design (25%)
Development (30%)
Testing (15%)
Implementation Go Live & Training (10%)

Overheads like

Project Management
Performance Engineering
QA
.

Exercise

Student information system

Maintain student information

Personal information

Students are able to see the fee (paid and to be paid infuture) Interface with Finance Department for Fees & Deposits.
Students are able to pay fees Interface with payment gateway
Students are able to see marks and apply for re-evaluation
Interface with Evaluation System
Students are able to select courses & electives Interface with
Institutes Curriculum
All other systems are developed in Java, Oracle as DB, OS Unix
Internet based system is required

Das könnte Ihnen auch gefallen