u08784 software project management

25
1 U08784 U08784 Software Project Software Project Management Management lecturer: Timothy Au lecturer: Timothy Au email: [email protected] email: [email protected] url: url: www.geocities.com/timothykfau/2008/u087 www.geocities.com/timothykfau/2008/u087 84 84

Upload: krysta

Post on 05-Jan-2016

39 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: U08784  Software Project Management

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

Page 2: U08784  Software Project Management

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

Page 3: U08784  Software Project Management

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

Page 4: U08784  Software Project Management

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

Page 5: U08784  Software Project Management

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, …

Page 6: U08784  Software Project Management

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, …

Page 7: U08784  Software Project Management

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)

Page 8: U08784  Software Project Management

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.

Page 9: U08784  Software Project Management

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.

Page 10: U08784  Software Project Management

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)

Page 11: U08784  Software Project Management

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

Page 12: U08784  Software Project Management

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.

Page 13: U08784  Software Project Management

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.

Page 14: U08784  Software Project Management

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

Page 15: U08784  Software Project Management

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

Page 16: U08784  Software Project Management

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

Page 17: U08784  Software Project Management

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

Page 18: U08784  Software Project Management

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.

Page 19: U08784  Software Project Management

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

Page 20: U08784  Software Project Management

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

Page 21: U08784  Software Project Management

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

Page 22: U08784  Software Project Management

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)

Page 23: U08784  Software Project Management

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]

Page 24: U08784  Software Project Management

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.

Page 25: U08784  Software Project Management

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, …