lecture 2 estimation-revisited estimate size, then estimate effort, schedule and cost from size...

34
Lecture 2 Estimation- revisited Estimate size, then Estimate effort, schedule and cost from size Reuse, reuse, reuse CS 552

Post on 21-Dec-2015

222 views

Category:

Documents


4 download

TRANSCRIPT

Lecture 2 Estimation-revisitedEstimate size, thenEstimate effort, schedule and cost from sizeReuse, reuse, reuse

CS 552

Time

Staff-month

Ttheoretical

75% * Ttheoretical

Impossible design

Linear increase

Boehm: “A project can not be done in less than 75% of theoretical time”

Ttheoretical = 2.5 * 3√staff-months

But, how can I estimate staff months?

Sizing Software Projects

Effort = (productivity)-1 (size)c

productivity ≡ staff-months/kloc

size ≡ kloc

Staff

months

Lines of Code or

Function Points

500

Understanding the equations

Consider a transaction project of 38,000 lines of code, what is the shortest time it will take to develop? Module development is about 400 SLOC/staff month

Effort = (productivity)-1 (size)c

= (1/.400 KSLOC/SM) (38 KSLOC)1.02

= 2.5 (38)1.02 ≈ 100 SMMin time = .75 T= (.75)(2.5)(SM)1/3

≈ 1.875(100)1/3

≈ 1.875 x 4.63 ≈ 9 months

Productivity per staff-month:» 50 NCSLOC for OS code (or real-time system)

» 250-500 NCSLOC for intermediary applications (high risk, on-line)

» 500-1000 NCSLOC for normal applications (low risk, on-line)

» 10,000 – 20,000 NCSLOC for reused code

Reuse note: Sometimes, reusing code that does not provide the exact functionality needed can be achieved by reformatting input/output. This decreases performance but dramatically shortens development time.

Bernstein’s rule of thumb

Productivity: Measured in 2000

Classical rates (customized) 130 – 195 NCSLOC/sm

Evolutionary or Incremental approaches (customized)

244 – 325 NCSLOC/sm

New embedded flight software (customized)Reused Code

17 – 105 NCSLOC/sm

1000-2000 NCSLOC/sm

Code for reuse 3 x code for customized

3

15

3037.5

47

75

113142

475638

81

1

10

100

1000

1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005

ExpansionFactor

TechnologyChange:

RegressionTesting

4GL Small ScaleReuse

MachineInstructions

High LevelLanguages

MacroAssemblers

DatabaseManagers

On-LineDev

Prototyping SubsecTimeSharing

ObjectOrientedProgramming

Large ScaleReuse

Order of MagnitudeEvery Twenty Years

Each date is an estimate of widespread use of a software technology

The ratio ofSource line of code to a machine level line of code

Trends in Software Expansion

QSE Lambda Protocol

Prospectus Measurable Operational Value Prototyping or Modeling sQFD Schedule, Staffing, Quality Estimates ICED-T Trade-off Analysis

Software Engineer’s Challenges

Is it feasible? How much will it cost? When will I get it? What is the plan for producing it? What is the basis for you answers?

Function Point Method

External Inputs External Outputs External Inquiries Internal Logical Files External Interface Files

External Input

External Inquiry

External Output

InternalLogical

Files

External Interface

File

Five key components are identified based on logical user view

Application

Complexity

RecordElement

Types

Data Elements (# of unique data fields)

or File Types Referenced

Low Average High Low

Low Average

HighAverage High

Components: Low Avg. High Total

Internal Logical File (ILF) __ x 7 __ x 10 __ x 15 ___

External Interface File (EIF) __ x 5 __ x 7 __ x 10 ___

External Input (EI) __ x 3 __ x 4 __ x 6 ___

External Output (EO) __ x 4 __ x 5 __ x 7 ___

External Inquiry (EQ) __ x 3 __ x 4 __ x 6 ___

___Total Unadjusted FPs

Data Relationships

Each identified component is assigned a Function Point size value based upon the make-up and complexity of the data

1 3

3

CalculationsCalculations

When to Count

CORRECTIVEMAINTENANCE

PROSPECTUS ACHITECTURE TESTING DELIVERY REQUIREMENTS

IMPLEMENTATION

SIZING

SIZING

ChangeRequest

ChangeRequest SIZING SIZING

SIZING

SIZING

Definition:Indicates the border between application and external systeems or users

Functionality: What Does a User See?

Data going into an application -- inputs Data coming out of an application -- outputs, inquiries Data, inside or outside an application -- logical files

Data

Data

InputsOutputs

Application

References/Feeds

Identify the counting boundary

An External Input (EI) processes data that comes from outside the application’s boundary.

1.0

Transaction

ON-LINE ENTRY

Multi-Screen

UPDATECUSTOMER

INFORMATION

CUSTOMER INFO FILE

Definition of an input

External Input

Definition of an output

An External Output (EO) generates data that is sent outside the application boundary.

END USER

Summary SUMMARIZECUSTOMER

INFO

1.0

CUSTOMER INFO FILE

External Output

Definition of an inquiry

An External Inquiry (EQ) is an output that results in data retrieval. The result contains no derived data.

DISPLAYCUSTOMER

INFO

1.0

END USER

Selected Customer

Info

CUSTOMER INFO FILE

External Inquiry

Definition of a file

An Internal Logical File (ILF) is a user-identifiable group of logically related data that is maintained within the boundary of the application.

UPDATECUSTOMER

INFO

1.0

CUSTOMER INFO FILE

END USER

Customer Info

Updated Customer Info

Internal Logical File

Definition of a interface file

An External Interface File (EIF) is a user-identifiable group of data referenced by the application, but maintained within the boundary of another application.

UPDATES

ZIP CODE TABLE

ENDUSER

1.0

VALIDATEZIP CODE &

UPDATE CUSTOMER

INFO

CUSTOMER INFO FILE

UPDATES

VALID ZIP CODES

External Interface File

Case History: Prospectus for Plastic Molding Inc

Provide a system to inventory and control plastic molds for a variety of customers. Please track molds on hand that can re reused, parts and customer’s bill of materials. Employees need to get data from the molds inventory and form the parts inventory. Customers need to be able to modify their bills of materials. Vendor supply system needs to input data and the system needs to supply parts lists for a mold to the Inventory Manager who may modify them. The system will ncrease mold reuse by 30%. The number of customers is growing. Please use a web-based SOA system that is extendable.

Use Cases

Actors

• Customer

• Employees

• Vendor System Three Logical Files

• Parts List

• Mold List

• Bills of Materials

Change Bill of Materials

ViewBill of MaterialsBy Customer

Create & Submit Parts List

Change Bill of Materials

Other Use Cases:

1. Parts update

2. Parts Inquiry

3. Mold Inquiry

Logical view

EMPLOYEE

LIST OF MOLDSWORK CENTERS

PARTS

PLANT MOLDS

PLANT INFORMATION CENTER

EMPLOYEE

BILL OF MATERIALS

PARTS LISTING

INVENTORY MANAGER

ORDER PARTS & CHANGE MOLD INVENTORY

CUSTOMER can changeBILL OF MATERIALS

2 External Inquiries

3 Internal Logical Files

1 External Output

Interfaces VENDOR INFORMATION

2 External Input

Components: Low Avg. High Total

Internal Logical File (ILF) 0 x 7 2x10 1x 15 = 35External Interface File (EIF) 0x 5 0x 7 0x 10 = 0External Input (EI) 0 x 3 0x4 2x 6 = 12External Output (EO) 1x 4 0X 5 0x7 = 4External Inquiry (EQ) 0x 3 2x 4 0x 6 = 8

Total 59

COMPONENTS ARE ASSESSED BASED UPON COMPLEXITY:

Data Element Types (Fields or Attributes)

File Types Referenced (ILFs or EIFs) Record Element Types (Data Sub-Groups)

Function Point Count

Complexity

DETERMINE THE FUNCTION POINT COUNT

Downside

Function Point terms are confusing Too long to learn, need an expert Need too much detailed data Does not reflect the complexity of the application Does not fit with new technologies Takes too much time “We tried it once”

Risk factors

Estimates will also vary based upon a variety of risk factors:

• Technology Applied such as tools, languages, reuse, platforms• Process/Methodology including tasks performed, reviews,

testing, object oriented • Customer/User and Developer skills, knowledge, experience• Environment including locations, office space• System Type such as information systems; control systems,

telecom, real-time, client server, scientific, knowledge-based, web

• Industry such as automotive, banking, financial, insurance, retail, telecommunications

Baseline current levels of performance

PERFORMANCEPRODUCTIVITY

CAPABILITIES

PERFORMANCE

SOFTWAREPROCESS

IMPROVEMENT

TIME TO MARKET

EFFORT

DEFECTSMANAGEMENT

SKILL LEVELS

PROCESS

TECHNOLOGYPRODUCTIVITY

IMPROVEMENT INITIATIVES / BEST PRACTICES

RISKS

MEASUREDBASELINE

0.00

5.00

10.00

15.00

20.00

25.00

30.00

35.00

0 100 200 400 800 1600 3200 6400

SubPerformance

BestPractices

IndustryAverages

Organization Baseline

Rate of DeliveryFunction Points per Staff Month

0200

400600800

100012001400

1600

180020002200

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36

SoftwareSize

Establish a baseline

Performance Productivity

A representative selectionof projects is measured

Size isexpressedin terms of functionalitydelivered to theuser

Rate of delivery is a measure of productivity

Organizational Baseline

9

Using the equations

For a 59 funciton point project to be wirtten in C++, we need to write 59 x 53 = 3127 SLOC

Effort = (productivity)-1 (size)c

= [1/(.9 x 53 KSLOC/SM)] (3.127 KSLOC)1.02

= 2.1 (3.127 )1.02 ≈ 7 SM

Monitoring improvements

Track Progress

Rate of DeliveryFunction Points per Person Month

0200

400600800

100012001400

1600

180020002200

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36

SoftwareSize

Second year

Feedback

SIZEREQUIREMENT

REQUIREMENT

Analyst

ESTABLISHPROFILE

SELECT MATCHING

PROFILE

GENERATE ESTIMATE

WHAT IFANALYSIS

ACTUALS

Counter ProjectManager Software PM / User Metrics

DataBase

Plan vs. ActualReport

ProfileSize Time

The estimate is based on the best available information.A poor requirements document

will result in a poor estimate

Accurate estimating is a function of using historical data with an effective

estimating process.

Change of scope

Initial New Estimate

Function Points 60 120

Effort (staff months) 7 14 +7

Schedule (months) 3 5 +2

Staffing Levels (FTE) 3 3 -0-

Production Rate (FP/mo) 9 9 -0-

Additional Additional AdditionalNew FP Effort Cost Schedule

@ $10k/sm Change in Scope Count (staff mo.) ($000)___ (months)

Add Vendor Function 10 5 50 2.0

Graphical Displays 2 0.5 5 .4

Banking System 2 0.5 5 .4

Mandatory Changes 1 1 10 .2

Total 15 7 $70 3.0 mos.

Communicating impact and options

OPTIONS

1. Increase funding level and schedule

2. Simplify Function

2. Reduce functionality, or do not accept change

3. Trade off quality and maintenance costs for schedule

4. Delay delivery of change

5. Add one more person

Computing Function Points

See http://www.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/artan/functionpoints.htm

Specification for CS 552 Development Plan

Project Feature List Development Process Size Estimates Staff Estimates Schedule Estimates Organization Gantt Chart