lecture 2 estimation-revisited estimate size, then estimate effort, schedule and cost from size...
Post on 21-Dec-2015
222 views
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