1.
264 Lecture 3
Time and resource estimation
Next class: Read chapters 7, 8. Hand in exercise solution after class
Form groups for homework.
Hand in todays exercises on paper.
Choose system implementation goal
Product, time, cost: you can lock 2 of the 3
What do you need? Examples (not exhaustive):
High certainty in meeting a schedule constraint
If schedule is fixed, either product or resources are fixed
but not both
Runaway prevention (with bad past history)
Low level of process maturity, recovery mode
Predictability (tied to budget, other programs)
Staff and schedule are fixed. Product must flex.
Lowest cost
Requires good people, good process
Desire for free overtime (startups, cheap companies)
These are not the same problem
Choose a method appropriate to the problem
Tables next time: fastest possible, most efficient, nominal
Exercise
What do you need?
Change from uniform to regional assortments in retail
supply chain in a large retailer
Sourcing key inputs from new overseas suppliers for
holiday season
Implementing a new bus location system for a public
transit agency that displays on smart phones and PCs
There have been many failures in the past.
Implementing electronic health records at a large
hospital
Take 10 minutes:
Recommend a goal
List top 3 factors or key unknowns to be researched
early in the decision
Solution (one of many)
What do you need?
Change from uniform to regional assortments in retail
supply chain in a large retailer
Lowest cost
Sourcing key inputs from new overseas suppliers
High certainty in meeting schedule
Implementing a new bus location system for a public
transit agency that displays on smart phones and PCs
Runaway prevention
Implementing electronic health records at a large
hospital
Runaway prevention. Difficult to tell doctors what to do.
Estimation
Image by MIT OpenCourseWare.
Estimation steps: software example
Estimate size of project:
(product)
Methods/behaviors (formerly function points) to be configured,
modified, written and/or implemented
Lines of code: depends on language, tools
(technology)
Estimate effort (person-months)
(process/people)
Estimate schedule (calendar-months)
Estimate team size as (person-months / calendar-months)
This is just algebra. Team size is not an independent variable.
Provide estimates in ranges and refine for increasing
precision as project progresses
Never give a point estimate
Use the convergence curve
This process is also used for non-software projects
Non-software metrics harder to find. Track your own.
Project size estimation (product)
Count:
Inputs: Web pages, forms, messages from
other systems, XML documents
Outputs: Web pages, reports, graphs,
messages, XML documents
Inquiries: simple Web inputs, generally
producing a single output
Logical internal files: tables or files in own
database
External interface files: tables or files used
from other systems or databases
7
Method (function point) multipliers
Function-Point Multipliers
Function Points
Program
Characteristic
Low
Complexity
Medium
Complexity
High
Complexity
Number of inputs
X3
X4
X6
Number of outputs
X4
X5
X7
Inquiries
X3
X4
X6
Logical internal files
X7
X 10
X 15
External interface files
X5
X7
X 10
Image by MIT OpenCourseWare.
Effort estimation (method/function point example)
Example of Computing the Number
of Function Points
Function Points
Program Characteristic
Low
Complexity
Medium
Complexity
High
Complexity
Number of inputs
6 X 3 = 18
2X4=8
3 X 6 = 18
Number of outputs
7 X 4 = 28
7 X 5 = 35
0X7=0
Inquiries
0X3=0
2X4=8
4 X 6 = 24
Logical internal files
5 X 7 = 35
2 X 10 = 20
3 X 15 = 45
External interface files
9 X 5 = 45
0X7=0
2 X 10 = 20
Unadjusted function-point total
304
Influence multiplier
1.15
Adjusted function-point total
350
Image by MIT OpenCourseWare.
Influence multipliers
Data communications
Distributed processing
Heavy use
Performance
Transaction rate
Online data entry
End user efficiency
Online update
Complex processing
Reusability
Installation ease
Operational ease
Multiple sites
Facilitate change
Rate each element from 0-5
Influence multiplier is 0.65 + 0.01(sum of elements),
varies between 0.65 and 1.35
10
Effort estimation: lines of code (technology)
Language
Level
Statement per
Function Point
Assembler
1.0
320
2.5
125
C++
6.5
50
Language
AWK
15.0
25
Perl
15.0
Lisp
Cont....
Level
Statement per
Function Point
Quick Basic 3
5.5
60
25
Visual Basic 3
10.0
30
5.0
65
Cobol (ANSI 85)
3.5
90
Ada 83
4.5
70
Macro assembler
1.5
215
Pascal
3.5
90
Focus
8.0
40
SAS, SPSS, other
statistics packages
10.0
30
Oracle
8.0
40
20
8.0
40
Smalltalk 80;
Smalltalk/V
15.0
Sybase
Paradox
9.0
35
~ 50
Modula 2
4.0
80
Excel, Lotus 123,
Quattro Pro, other
spreadsheets
dBase IV
9.0
35
Fortran 77
3.0
110
GW Basic
3.25
100
Approximate Language Levels
Image by MIT OpenCourseWare.
Ignore level
11
Exercise
If you had a requirements document with:
10 Web input pages,
15 output pages (reports),
20 (internal) database tables, and
no inquiries or external files,
How many function points would it contain?
Assume medium complexity for each page, report, table
Assume influence multiplier = 1.0
Technology:
If you wrote the system in C, how many lines of code
would it have?
What if you used perl (a simpler scripting language)?
If you could do it in perl instead of C, would you?
How do you decide what technology to use?
12
Solution
If you had a requirements document with 10 Web pages, 15
reports, 20 database tables, and no inquiries or external files,
how many function points would it contain?
Assume influence multiplier = 1.0
About 315 function points, if each item is medium complexity
If you wrote the system in C, how many lines of code would it
have?
About 40,000 lines of C
What if you used perl?
About 8,000 lines of perl
If you could do it in perl instead of C, would you?
Yes. The system is 20% the size and will take <20% of the
resources to write (scale diseconomies)
How do you decide what technology to use?
The one that is capable enough to solve the problem and yields
the fewest lines.
13
Hand in
Upload your answers to the goals and resource
estimation exercises
On paper. Make sure your name is on it. You may hand
in one for your group. Or
Upload to course Web site, in Word, Notepad, or any
other common format
14
MIT OpenCourseWare
http://ocw.mit.edu
1.264J / ESD.264J Database, Internet, and Systems Integration Technologies
Fall
For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.