This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
• Delphi methodDelphi method• Fuzzy-logic methodFuzzy-logic method• Standard-component methodStandard-component method• Function point methodFunction point method• The Probe methodThe Probe method
• A few experts individually A few experts individually produce size estimates.produce size estimates.
• A Delphi process is used to A Delphi process is used to reach a consensus. reach a consensus.
PythiaPythia
L.Ouyang, PSP, Lecture 5
Wideband-Delphi methodWideband-Delphi method
1. Experts get the 1. Experts get the specificationspecification and an and an estimation formestimation form
2. They meet for 2. They meet for discussiondiscussion (project goals, (project goals, assumptions, estimation issues)assumptions, estimation issues)
3. Each expert 3. Each expert anonymouslyanonymously lists the lists the taskstasks and and estimatesestimates the size the size
4. The estimates go to the 4. The estimates go to the estimate estimate moderatormoderator. He tabulates the results and . He tabulates the results and returns them to the experts.returns them to the experts.
The Delphi procedureThe Delphi procedure
The estimateThe estimate
moderatormoderator
L.Ouyang, PSP, Lecture 5
Wideband-Delphi methodWideband-Delphi method
Estimator: Jerzy Nawrocki Date: 22.06.1999Estimator: Jerzy Nawrocki Date: 22.06.1999
Project: Sorting routineProject: Sorting routine
The estimates from the 1st round:The estimates from the 1st round:
e e EE MM e e e e
0 20 40 60 80 1000 20 40 60 80 100
e - estimates, e - estimates, EE - - your estimateyour estimate, , MM - - median estimatemedian estimate
Your estimate for the next round: ......... LOCYour estimate for the next round: ......... LOC
A rationale for your estimate: ............................................A rationale for your estimate: ............................................
5. The experts meet to discuss the results. 5. The experts meet to discuss the results. They review the They review the taskstasks they have defined they have defined but but notnot their their size estimatessize estimates..
6. The procedure is repeated from step 3 6. The procedure is repeated from step 3 until the estimates are acceptably nearuntil the estimates are acceptably near
The Wideband-Delphi procedureThe Wideband-Delphi procedure
The estimateThe estimate
moderatormoderator
L.Ouyang, PSP, Lecture 5
Plan of the lecturePlan of the lecture
• Delphi methodDelphi method
• Fuzzy-logic methodFuzzy-logic method• Standard-component methodStandard-component method• Function point methodFunction point method• Probe methodProbe method
L.Ouyang, PSP, Lecture 5
Fuzzy-logic methodFuzzy-logic method
Putnam’92:Putnam’92:
• We need We need accurateaccurate, not , not necessary necessary preciseprecise size size estimates.estimates.
• Let’s relate the estimate Let’s relate the estimate to the to the historical datahistorical data
Tall Middle ShortTall Middle Short
L.Ouyang, PSP, Lecture 5
Fuzzy-logic methodFuzzy-logic method
Range Low Middle High
V. small 11 000000 22 000000 44 000000
Small 44 000000 88 000000 1166 000000
Medium 1166 000000 3322 000000 6644 000000
Large 6644 000000 112288 000000 225566 000000
V. large 225566 000000 551122 000000 11 002244 000000
Fuzzy-logic size rangesFuzzy-logic size ranges
L.Ouyang, PSP, Lecture 5
Fuzzy-logic methodFuzzy-logic method
Given the smallest (Given the smallest (SS) and the ) and the largest (largest (LL) program size, find ) program size, find range boundaries A, B, C, D range boundaries A, B, C, D such that such that SS, A, B, C, D, , A, B, C, D, LL form form a a geometrical progressiongeometrical progression..
• We have a system We have a system decomposed into a set of decomposed into a set of standard components standard components (screens, files, modules (screens, files, modules etc.)etc.)
• For each standard For each standard component we have component we have historical data about its sizehistorical data about its size
• Function point methodFunction point method• Probe methodProbe method
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
Albrecht, IBM, 1979Albrecht, IBM, 1979
Basic functions:Basic functions:
• InputsInputs
• OutputsOutputs
• InquiriesInquiries
• Internal data filesInternal data files
• External interfacesExternal interfaces
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
DesignedDesigned
applicationapplication
InternalInternaldata filedata file
OutputOutput
InputInput
InquiryInquiry
AnotherAnother
applicationapplication
ExternalExternalinterfaceinterfacefilefile
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
An An outputoutput: a report, a screen, an : a report, a screen, an error message. Individual data error message. Individual data items within a report are not items within a report are not counted separately.counted separately.
An An inquiryinquiry: an on-line input that : an on-line input that results in an on-line output. An results in an on-line output. An inquiry cannot modify any internal inquiry cannot modify any internal file.file.
Output Output Inquiry Inquiry
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
Fun types Simple Aver. Complex Total
Inputs x 3 x 4 x 6
Outputs x 4 x 5 x 7
Inquiries x 3 x 4 x 6
Intern. files x 7 x 10 x 15
Interfaces x 5 x 7 x 10
Unadjusted total
2 2 2 26
3 3 3 48
2 1 0 10
2 1 0 24
0 1 0 7
115
ProblemProblem: simple, average or complex?: simple, average or complex?
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
FP = UT * CMFP = UT * CM
FP - Function pointsFP - Function points
UT - Unadjusted total (previous slide)UT - Unadjusted total (previous slide)
Are Are data communicationsdata communications required? required?
Are there Are there distributed processingdistributed processing functions?functions?
Is Is performanceperformance critical? critical?
Will the system run in a Will the system run in a heavily used heavily used operational environmentoperational environment??
Does the system require Does the system require on-line data on-line data entryentry??
Is the internal Is the internal processing complexprocessing complex??
Is the code designed to be Is the code designed to be reusablereusable??
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
Are the inputs, outputs, files or Are the inputs, outputs, files or inquiries inquiries complexcomplex??
Does the on-line data entry require Does the on-line data entry require the input the input transactiontransaction to be built to be built over over multiple screensmultiple screens or or operations?operations?
Are the master Are the master files updated on-linefiles updated on-line??
Are conversion and Are conversion and installationinstallation included in the design?included in the design?
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
Does the system require reliable Does the system require reliable backup and recoverybackup and recovery??
Is the system designed for Is the system designed for multiple multiple installationsinstallations in different in different organisations?organisations?
Is the application designed to Is the application designed to facilitate facilitate change and ease of usechange and ease of use by the user?by the user?
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
LanguageLanguage
Assembly languageAssembly language
CC
CobolCobol
FortranFortran
PascalPascal
AdaAda
o-o languageso-o languages
spreadsheetsspreadsheets
LOC/FPLOC/FP
320320
128128
105105
105105
9090
7070
3030
66
L.Ouyang, PSP, Lecture 5
Function point methodFunction point method
Modifications of the basic FP model:Modifications of the basic FP model:
• ObjectObject points (R. Kauffman, R. Kumar, points (R. Kauffman, R. Kumar, 1993)1993)
• 3D function3D function point (S.A. Whitmire, 1995) point (S.A. Whitmire, 1995)
L.Ouyang, PSP, Lecture 5
Plan of the lecturePlan of the lecture
• Delphi methodDelphi method• Fuzzy-logic methodFuzzy-logic method• Standard-component methodStandard-component method• Function point methodFunction point method
• Probe methodProbe method
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
Humphrey, CMU, 1995Humphrey, CMU, 1995
PROPROxy-xy-BBased ased EEstimatingstimating
Objects as proxies Objects as proxies
L.Ouyang, PSP, Lecture 5
Planning a software projectPlanning a software project
Conceptual designConceptual design
Size estimates Size estimates
Resource estimates Resource estimates
The schedule The schedule
The product The product
RequirementsRequirements
Size databaseSize database
Productivity databaseProductivity database
Resources availableResources available
Size, res., sched. dataSize, res., sched. data
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
1. Prepare a conceptual 1. Prepare a conceptual design (objects and design (objects and methods + their methods + their function)function)
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
2. For each method 2. For each method assign one of size assign one of size rangesranges
Very big Big Medium Small Very smallVery big Big Medium Small Very small
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
3. Knowing:3. Knowing:• programming languageprogramming language• object categoryobject category• size rangessize ranges• the number of methodsthe number of methods
estimate, using historical estimate, using historical data, size of each data, size of each object.object.
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
4. Determine initial 4. Determine initial program estimated program estimated size, X, adding the size, X, adding the values received in the values received in the previous step.previous step.
2 + 3 = 52 + 3 = 5
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
5. Apply linear 5. Apply linear regression to get regression to get estimated program estimated program size Y:size Y:
Y = Y = 11 X + X + 00
5 means 105 means 10
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
xxi i yyii - n x - n xavgavg y yavgavg
xxii22 - n x - n xavgavg
22 11 = =
00 = y = yavgavg - - 11 x xavgavg
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
6. Using the 6. Using the t distributiont distribution and and standard standard deviationdeviation compute the compute the prediction intervalprediction interval for for a given percentage. a given percentage.
For 100% theFor 100% the
interval isinterval is
[0; + [0; + ]]
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
6a. Calculate the standard deviation, 6a. Calculate the standard deviation, , of , of the regression function.the regression function.
6b. To find the two-sided value of 6b. To find the two-sided value of tt for the for the probability probability qq, look in a table of the , look in a table of the tt distribution under distribution under p(p()= (1+q)/2)= (1+q)/2 and and n-2n-2 degree of freedom.degree of freedom.
L.Ouyang, PSP, Lecture 5
The t distributionThe t distribution
Degrees p()=.6 p()=.7 p()=.85 p()=.9
5 .267 .559 1.156 1.476
6 .265 .553 1.134 1.440
7 .263 .549 1.119 1.415
8 .262 .546 1.108 1.397
9 .261 .543 1.100 1.383
L.Ouyang, PSP, Lecture 5
Probe methodProbe method
(x(xkk - x - xavgavg))22
(x(xii - x - xavgavg))22++
11
nn++11 Range = t Range = t
6c. Compute the range as follows:6c. Compute the range as follows:
L.Ouyang, PSP, Lecture 5
SummarySummary
After requirements analysis:After requirements analysis:• Function pointsFunction points
After high level design:After high level design:• Wideband-Delphi methodWideband-Delphi method• Fuzzy-logic methodFuzzy-logic method• Standard-component Standard-component
methodmethod
After low level design:After low level design:• Probe methodProbe method
L.Ouyang, PSP, Lecture 5
Further readingsFurther readings
Function Point Counting Practices Manual Function Point Counting Practices Manual Release 4.0, IFPUG, http://www.ifpug.org.Release 4.0, IFPUG, http://www.ifpug.org.
How Are Function Points Useful, Longstreet How Are Function Points Useful, Longstreet Consulting, http://www.SoftwareMetrics. Consulting, http://www.SoftwareMetrics. com/manyuser.htm.com/manyuser.htm.
R.Pressman, Software Engineering - A R.Pressman, Software Engineering - A Practitioner Approach, McGraw-Hill, New Practitioner Approach, McGraw-Hill, New York, 1997 (4th edition), Ch. 4.3York, 1997 (4th edition), Ch. 4.3
W. Humphrey, A Discipline for Software W. Humphrey, A Discipline for Software Engineering, Addison-Wesley, Reading, Engineering, Addison-Wesley, Reading, 19951995
L.Ouyang, PSP, Lecture 5
Quality assessmentQuality assessment
1. What is your general 1. What is your general impression ? (1 - 6)impression ? (1 - 6)
2. Was it too slow or too fast ?2. Was it too slow or too fast ?
3. Did you learn something 3. Did you learn something important to you ?important to you ?
4. What to improve and how ?4. What to improve and how ?