u08784 software project management
DESCRIPTION
U08784 Software Project Management. lecturer: Timothy Au email: [email protected] url: www.geocities.com/timothykfau/2008 /u08784. What have we learnt last week. Project Scheduling & Tracking Project Scheduling & Tracking: WBS, CPM, Gantt Charts 4a - PowerPoint PPT PresentationTRANSCRIPT
11
U08784 U08784 Software Project ManagementSoftware Project Management
lecturer: Timothy Aulecturer: Timothy Auemail: [email protected]: [email protected]
url: www.geocities.com/timothykfau/2008/u08784url: www.geocities.com/timothykfau/2008/u08784
22
What have we learnt last weekWhat have we learnt last week
Project Scheduling & TrackingProject Scheduling & Tracking• Project Scheduling & Tracking: Project Scheduling & Tracking:
WBS, CPM, Gantt ChartsWBS, CPM, Gantt Charts4a4a • Project Planning & Project Planning Techniques:Project Planning & Project Planning Techniques:
Network DiagramNetwork Diagram4b4b
Assignment Briefing Assignment Briefing Week 1 Exercise Week 1 Exercise
• Exercise on Network Diagrams (Page 105) will be Exercise on Network Diagrams (Page 105) will be covered on this week lecture and the fourth lecturecovered on this week lecture and the fourth lecture
33
Lecture 4Lecture 4
In this lecture, you will learn :In this lecture, you will learn :• Project Estimation: An Introduction to COCOMO Project Estimation: An Introduction to COCOMO 5a5a
• An Introduction to COCOMO An Introduction to COCOMO (Word document)(Word document) 5b5b
• An Introduction to Estimating An Introduction to Estimating 5c5c
• The COnstructive COst MOdel (COCOMO) The COnstructive COst MOdel (COCOMO) 5d5d
In the second-half lecture,In the second-half lecture,• Week 2 Exercise Ex. COCOMO (Page 153-158) Week 2 Exercise Ex. COCOMO (Page 153-158) • Measure Software Quality (Page 163-175) 6aMeasure Software Quality (Page 163-175) 6a• Estimating Function Point Analysis (Page 186-192) Estimating Function Point Analysis (Page 186-192)
6e6e
44
Lecture OutcomesLecture Outcomes
You should be able to understand the following upon You should be able to understand the following upon this lecture:this lecture:• Sizing, Effort Estimation and Cost justificationSizing, Effort Estimation and Cost justification• Review: Project Planning StepsReview: Project Planning Steps
Project Management Phases Project Management Phases Project MilestonesProject Milestones
• Have your ballpark effort estimationHave your ballpark effort estimation• Define your Cost Estimation Report ContentsDefine your Cost Estimation Report Contents• Draft detailed project plan (individual)Draft detailed project plan (individual)• Identify your project risks (risk analysis report)Identify your project risks (risk analysis report)• Draft Quality PlanDraft Quality Plan
55
Software MeasurementSoftware Measurement
Measurement in the physical world can be classified Measurement in the physical world can be classified into two ways:into two ways:• Direct measures (e.g. the length)Direct measures (e.g. the length)
• Indirect measures (e.g. the quality, the functionality)Indirect measures (e.g. the quality, the functionality) In software engineering, In software engineering,
• Direct measures mean cost and effort including line of code Direct measures mean cost and effort including line of code (LOC), memory size and defects reported.(LOC), memory size and defects reported.
• Indirect measures mean functionality, quality, complexity, Indirect measures mean functionality, quality, complexity, efficiency, reliability, maintainability, …efficiency, reliability, maintainability, …
66
Software MeasurementSoftware Measurement
Size oriented metricsSize oriented metrics• derived by normalizing quality and/or productivity derived by normalizing quality and/or productivity
measures by considering the measures by considering the size size of the software.of the software.
• The usual practice is to express the work content using The usual practice is to express the work content using SLOC for effort estimationSLOC for effort estimation
• lines of code (LOC) or thousand lines of code (KLOC) are lines of code (LOC) or thousand lines of code (KLOC) are chosen as a value chosen as a value
Function-oriented metricsFunction-oriented metrics• Indirect measures mean functionality, quality, complexity, Indirect measures mean functionality, quality, complexity,
efficiency, reliability, maintainability, …efficiency, reliability, maintainability, …
77
Software Project SizingSoftware Project Sizing
Commonly, two metrics are used in project sizing Commonly, two metrics are used in project sizing
estimation:estimation: • lines of code (LOC) and lines of code (LOC) and
• function point (FP)function point (FP)
88
Line of CodeLine of Code
Line of Code (LOC):Line of Code (LOC): • Software size is estimated by counting the number of Software size is estimated by counting the number of
source code in the software programs to be developed.source code in the software programs to be developed.
• Sizing should consider the complexity of the overall Sizing should consider the complexity of the overall project and also the effort in design and testing – not just project and also the effort in design and testing – not just coding.coding.
• More commonly, we refer to KLOC (Kilo Line of Code) More commonly, we refer to KLOC (Kilo Line of Code) instead of LOC.instead of LOC.
99
Function PointFunction Point
Function Point (FP):Function Point (FP): • The concept of function point is to quantify the The concept of function point is to quantify the
functionality to be delivered of the software to be functionality to be delivered of the software to be developed;developed;
• by counting the number of inputs, outputs, enquiries, by counting the number of inputs, outputs, enquiries, internal interfaces and external interfaces.internal interfaces and external interfaces.
1010
Albrecht function point analysisAlbrecht function point analysis
Albrecht FPAlbrecht FP• This is a top-down method that was devised by This is a top-down method that was devised by
Allan Albrecht when he worked for IBM. Allan Albrecht when he worked for IBM. External input types (EI)External input types (EI) External output types (EO)External output types (EO) Logical Internal file types (ILF)Logical Internal file types (ILF) External interface file types (EIF)External interface file types (EIF) External inquiry types (EQ)External inquiry types (EQ)
1111
Computing function pointsComputing function points
Calculation of Adjusted function point total:Calculation of Adjusted function point total:• Adjusted FP = count total x (0.65 + 0.01 x Influence Factor)Adjusted FP = count total x (0.65 + 0.01 x Influence Factor)
Therefore, the formula can be expressed as:Therefore, the formula can be expressed as:• FP = UFC * TCFFP = UFC * TCF
Weighting FactorsWeighting Factors
Program characteristic Program characteristic parametersparameters
CountCount Low Low Complexity Complexity
Average Average Complexity Complexity
High High Complexity Complexity
No. of input typesNo. of input types XX 33 44 66 ==
No. of output typesNo. of output types XX 44 55 77 ==
No. of user inquiriesNo. of user inquiries XX 33 44 66 ==
No. of filesNo. of files XX 77 1010 1515 ==
No. of external interfacesNo. of external interfaces XX 55 77 1010 ==
Count total = Unadjusted function point countCount total = Unadjusted function point count
Influence Factor (and hence Technical Complexity Factor)Influence Factor (and hence Technical Complexity Factor)
Adjusted function point countAdjusted function point count
TCFUFC
1212
Albrecht function point analysisAlbrecht function point analysis
ComplexityComplexity• The counts of each external user type in each The counts of each external user type in each
complexity is multiplied by specified weights complexity is multiplied by specified weights (low, average, high) to get the individual FP scores (low, average, high) to get the individual FP scores which are summed to obtain an overall FP count which are summed to obtain an overall FP count which indicates the whole software project size. which indicates the whole software project size.
1313
Albrecht function point analysisAlbrecht function point analysis
ComplexityComplexity• One problem with the Albrecht FP is that the One problem with the Albrecht FP is that the
question of whether the external user type of low, question of whether the external user type of low, average, high complexity is rather subjective.average, high complexity is rather subjective.
• The International Function Point User Group The International Function Point User Group (IFPUG) suggests rules on how this to be judged (IFPUG) suggests rules on how this to be judged for estimating software project size.for estimating software project size.
1414
Albrecht function point analysisAlbrecht function point analysisIFPUG File type complexityIFPUG File type complexity
Number of record typesNumber of record types Number of data typesNumber of data types
< 20< 20 20 - 5020 - 50 > 50> 50
11 LowLow LowLow AverageAverage
2 - 52 - 5 LowLow AverageAverage HighHigh
> 5> 5 AverageAverage HighHigh HighHigh
IFPUG External input complexityIFPUG External input complexity
Number of file types accessedNumber of file types accessed Number of data types accessedNumber of data types accessed
< 6< 6 6 – 196 – 19 > 19> 19
0 – 10 – 1 LowLow LowLow AverageAverage
2 2 LowLow AverageAverage HighHigh
> 2> 2 AverageAverage HighHigh HighHigh
IFPUG External output complexityIFPUG External output complexity
Number of file typesNumber of file types Number of data typesNumber of data types
< 6< 6 6 – 196 – 19 > 19> 19
0 – 10 – 1 LowLow LowLow AverageAverage
2 – 32 – 3 LowLow AverageAverage HighHigh
> 3> 3 AverageAverage HighHigh HighHigh
1515
Albrecht function point analysisAlbrecht function point analysis
ComplexityComplexity• The general functionality of the systems will be affected by The general functionality of the systems will be affected by
the following 14 complexity characteristics are identified to the following 14 complexity characteristics are identified to rate the general functionality of the systemrate the general functionality of the system
(1) Data Communication(1) Data Communication (8) On-line Update(8) On-line Update
(2) Distributed Processing(2) Distributed Processing (9) Complex Processing(9) Complex Processing
(3) Performance(3) Performance (10) Reusability(10) Reusability
(4) Heavily Used Configuration (4) Heavily Used Configuration (11) Installation Ease(11) Installation Ease
(5) Transaction Rate(5) Transaction Rate (12) Operational Ease(12) Operational Ease
(6) On-line Data Entry(6) On-line Data Entry (13) Multiple Sites(13) Multiple Sites
(7) End-User Efficiency(7) End-User Efficiency (14) Ease of Change (14) Ease of Change
1616
Albrecht function point analysisAlbrecht function point analysis
ComplexityComplexity• The weight of the 14 complexity adjustment The weight of the 14 complexity adjustment
factors are:factors are: 00 no influenceno influence 11 incidental incidental 22 moderatemoderate 33 averageaverage 44 significantsignificant 55 essentialessential
1717
Function Points Mark IIFunction Points Mark II
For each transaction the Unjustified Function For each transaction the Unjustified Function points (UFP’s) are calculated from the points (UFP’s) are calculated from the following factors:following factors:• Input data element types (I)Input data element types (I)• Entity types referenced (E)Entity types referenced (E)• Output data element types (O)Output data element types (O)
The Function Point Mk II isThe Function Point Mk II is• FP = 0.58I + 1.66E + 0.26OFP = 0.58I + 1.66E + 0.26O
1818
COCOMOCOCOMO
The COnstructive COst MOdel (COCOMO)The COnstructive COst MOdel (COCOMO)• It is an algorithmic Software Cost Estimation It is an algorithmic Software Cost Estimation
Model developed by Barry Boehm.Model developed by Barry Boehm.• It is an line of code based cost estimation model.It is an line of code based cost estimation model.• It is a static, single-valued model that computes It is a static, single-valued model that computes
software development effort (and cost) as a software development effort (and cost) as a function of program size expressed in estimated function of program size expressed in estimated lines of code. lines of code.
1919
COCOMOCOCOMO
Projects are categorized into three types:Projects are categorized into three types: Organic projectsOrganic projects
• are relatively small, simple software projects in which are relatively small, simple software projects in which small teams with good application experience work to a set small teams with good application experience work to a set of less than rigid requirements. of less than rigid requirements.
Semi-detached projectsSemi-detached projects• are intermediate (in size and complexity) software projects are intermediate (in size and complexity) software projects
in which teams with mixed experience levels must meet a in which teams with mixed experience levels must meet a mix of rigid and less than rigid requirements. mix of rigid and less than rigid requirements.
Embedded projectsEmbedded projects• are software projects that must be developed within a set of are software projects that must be developed within a set of
tight hardware, software, and operational constraints tight hardware, software, and operational constraints
2020
COCOMOCOCOMO
The The Basic COCOMO model Basic COCOMO model equations take the formequations take the form• E=E=aabb(KLOC)(KLOC) Effort (in Person-Month)Effort (in Person-Month)
• D=cD=cbb (E)d (E)dbb Development Time in month (TDEV)Development Time in month (TDEV)
• P=E/D P=E/D ProductivityProductivitySoftware projectSoftware project aabb bbbb ccbb ddbb
organicorganic 2.42.4 1.051.05 2.52.5 0.380.38
Semi-detachedSemi-detached 3.03.0 1.121.12 2.52.5 0.350.35
EmbeddedEmbedded 3.63.6 1.201.20 2.52.5 0.320.32
• Organic: E=Organic: E=2.42.4(KLOC)(KLOC)1.051.05
• Semi-detached: E=Semi-detached: E=3.03.0(KLOC)(KLOC)1.121.12
• Embedded: E=Embedded: E=3.63.6(KLOC)(KLOC)1.201.20
bbbb
Effort
2121
COCOMOCOCOMO
The The Basic COCOMO Model Basic COCOMO Model equations take the formequations take the form• E=E=aabb(KLOC)(KLOC) Effort (in Person-Month)Effort (in Person-Month)
• D=cD=cbb (E)d (E)dbb Development Time in month (TDEV)Development Time in month (TDEV)
• P=E/D P=E/D ProductivityProductivitySoftware projectSoftware project aabb bbbb ccbb ddbb
organicorganic 2.42.4 1.051.05 2.52.5 0.380.38
Semi-detachedSemi-detached 3.03.0 1.121.12 2.52.5 0.350.35
EmbeddedEmbedded 3.63.6 1.201.20 2.52.5 0.320.32
• Organic: T=Organic: T=2.52.5(E) (E) 0.380.38
• Semi-detached: E=Semi-detached: E=2.52.5(E) (E) 0.350.35
• Embedded: E=Embedded: E=2.52.5(E) (E) 0.320.32
bbbb
Time
2222
COCOMOCOCOMO
The The Intermediate COCOMO Model Intermediate COCOMO Model refinesrefines• the estimate with a complexity factor by computing the the estimate with a complexity factor by computing the
project effort as a function of program size;project effort as a function of program size;• by the adjustment of by the adjustment of 4 cost drivers4 cost drivers that includes a that includes a subjective subjective
assessment of a set of assessment of a set of 15 attributes15 attributes..• The product of all effort multipliers results is an The product of all effort multipliers results is an Effort Effort
Adjustment Factor (EAF)Adjustment Factor (EAF) i.e. i.e.
E=E=aabb(KLOC) (KLOC) x EAFx EAF Effort (in Person-Month) Effort (in Person-Month)
2323
COCOMOCOCOMO
The The Detailed COCOMO Model Detailed COCOMO Model includesincludes• all characteristics of the intermediate version with all characteristics of the intermediate version with
an assessment of the cost driver's impact on each an assessment of the cost driver's impact on each step of the software engineering process.step of the software engineering process.[By Shamsul Arif Nowshehra][By Shamsul Arif Nowshehra]
2424
COCOMO IICOCOMO II
The The COCOMO II ModelCOCOMO II Model • is a more comprehensive cost model to compute the is a more comprehensive cost model to compute the
effort, cost and time from the program size.effort, cost and time from the program size.• It is evolved from COCOMO (COCOMO 81).It is evolved from COCOMO (COCOMO 81).• It is also a It is also a phase-based model phase-based model but the project size but the project size
may be measured in LOC and FP or even object may be measured in LOC and FP or even object points such as srceens, reports.points such as srceens, reports.
• The concept of code reusability is included.The concept of code reusability is included.
2525
StaffingStaffing
Staffing Plan and Resources Planning Staffing Plan and Resources Planning • Staffing changes over the project timeline;Staffing changes over the project timeline;• What kind of staff is required at what time at what What kind of staff is required at what time at what
price?price?• Adding staff at the right time;Adding staff at the right time;• Team size, team building, motivation, … Team size, team building, motivation, …