Ch8: Management of Software Engineering

Download Report

Transcript Ch8: Management of Software Engineering

Ch8: Management of Software Engineering
Management of software engineering
 Traditional engineering practice is to define a project
around the product to be developed.
 Project manager oversees the project and must:
 Staffing: Human resource acquisition
1
Management of software engineering (contd..)
 Management involves:
 Organize an activity that is fundamentally intellectual:
 Management decisions are aided by:
2
Management functions
 Koontz:
 Management is considered to consist of five areas:
3
Management functions (contd..)
 Planning:
 Organizing:
4
Management functions (contd..)
 Staffing:
 Directing:
 Controlling:
5
Project planning
 Clear statement of goals is required to guide software
engineers
 Project manager creates plans to achieve goals
 Software cost estimation:
 Time it takes software engineer to accomplish a task is a
function of:
 Software development time depends on the intellectual
ability of the engineers
6
Software productivity
 How to define/measure it?
 Ideal metric:
 Two types of metrics have been proposed:
 But what do engineers do?
 Metrics are still considered controversial
7
Function points
 A productivity measure, empirically justified
 Motivation:
 Principle:
 Appears to work well in business applications
8
Function point definition
A weighted sum of 5 characteristic factors
Item
Number of inputs
Number of outputs
Number of inquiries
Number of files
Number of interfaces
Weight
4
5
4
10
7
9
Function point definition (contd..)





Inputs/outputs
Inquiries
Files
Interfaces.
Major weakness:
 Despite weakness, function point approach is widely used.
10
A byproduct
 Function points used to measure the relative power of
different languages

Numbers range from 320 (assembler languages), 128 (C), 91
(Pascal), 71 (Ada83), 53 (C++, Java), 6 (“spreadsheet
languages”)
11
Productivity metrics: code
 Depends on the size of code produced
 Problems:
 Code is measured in several ways:
 Code metrics may penalize:
12
Productivity
 Factors affecting productivity:
 There is a large variance in the productivity of software
engineers.
13
Cost estimation
 Primary cost
 Two purposes to cost estimation:
 Structural metrics:
 Predictive metrics:
 We need predictive methods to estimate the complexity of
software before it has been developed
14
Generic formula for effort
PM = c.KLOCk
Legend
• PM: person month
• KLOC: K lines of code
• c, k depend on the model
• k>1 (non-linear growth)
Lines of code is a good metric for total life-cycle costs of software.
Most cost estimation methods use size of software for deriving total
effort required for a project.
Initial estimate is then calibrated using a number of cost drivers.
15
Typical cost driver categories
 Product
 Computer
 Personnel
 Project
16
Cost estimation procedure
 Steps involved:
 COCOMO (Constructive Cost Model) is best known cost
estimation model.
 COCOMO has evolved to COCOMO II.
17
COCOMO
 Size estimate based on delivered source instructions, KDSI
 Categorizes the software as:
 Each category has an associated formula for nominal
development effort based on estimated code size
18
COCOMO (contd..)
Mode
Feature
Organic
Semidetached
Embedded
Organizational understanding of
Thorough
Considerable
General
Extensive
Considerable
Moderate
Basic
Considerable
Full
Basic
Considerable
Full
Some
Moderate
Extensive
Minimal
Some
Considerable
Low
<50 KDSI
Medium
<300 KDSI
High
product objectives
Experience in working with related
software systems
Need for software conformance with
pre -es tablished requirements
Need for software conformance with
external interface specifications
Concurrent development of
associated new hardware and
operational procedures
Need for inn
ovative data processing
architectures, algorithms
Premium on early completion
Product size range
All sizes
19
COCOMO (contd..)
COCOMO nominal effort and schedule equations
Development ModeNominal effort
1.05
Organic
(PM)NOM=3.2(KDSI)
1.12
Semidetached
(PM)NOM=3.0(KDSI)
1.20
Embedded
(PM)NOM=2.8(KDSI)
Schedule
0.38
TDEV=2.5(PM
DEV))
0.35
TDEV=2.5(PM
DEV))
0.32
TDEV=2.5(PM
DEV))
20
COCOMO (contd..)
Cost Drivers
Product attributes
Required software
reliability
Data base size
Product complexity
Very low
Project attributes
Use of modern
programming practices
Use of software tools
Required development
schedule
High
Very
High
.75
.88
1.00
1.15
1.40
.70
.94
.85
1.00
1.00
1.08
1.15
1.16
1.30
.87
.87
1.00
1.00
1.00
1.00
1.11
1.06
1.15
1.07
1.30
1.21
1.30
1.15
1.46
1.29
1.42
1.21
1.19
1.13
1.17
1.10
1.00
1.00
1.00
1.00
.86
.91
.86
.90
.71
.82
.70
1.14
1.07
1.00
.95
1.24
1.10
1.00
.91
.82
1.24
1.23
1.10
1.08
1.00
1.00
.91
1.04
.83
1.10
Comput er attributes
Execution time constraints
Main storage constraints
Virtual machine volatility*
Computer turnaround time
Personnel attributes
Anal yst capability
Applications experience
Programmer capability
Virtual machine
experience*
Programming language
experience
Low
Ratings
Nominal
Extra
High
1.65
1.66
1.56
COCOMO
Scaling factors
Towards COCOMO II
 COCOMO's deficiencies
22
COCOMO II
 A collection of 3 models
23
Application composition model
 Suitable for:
 Uses object points:
24
Early design model
 Used once:
 Cost prediction based on:
25
Post-Architecture Model
 Involves:
 Cost prediction based on
26
Function Point case study
Compute the function point FP for a payroll program that reads a file of
employees and a file of information for the current month and prints
checks for all employees. The program is capable of handling an
interactive command to print an individual requested check immediately.
Number of inputs: 2 (file of employees + file for current month)
Number of outputs: 2 (checks for all employees + individual check)
Number of inquiries: 1 (interactive command)
Number of files: 2
Number of interfaces: 0
FP = 4*#inputs + 5*#outputs + 4*#inquiries + 10*#files + 7*#interfaces
FP = 4*2 + 5*2 + 4*1 + 10*2 + 7*0
FP = 42
Java language takes 53 LOC/FP.
# of source code lines is 53*42 = 2236
27
COCOMO model case study
Consider an organic application with a size estimate given in terms of
KDSI of 2000. Determine the initial effort estimate in terms of nominal
person months. Revise the initial estimate by considering the impact of
two cost drivers, namely, use of modern applications experience, and
programmer capability. The impact of former factor can be rated very
high, and the impact of the latter factor can be rated very low.
(PM)NOM = 3.2(KDSI)1.05
(PM)NOM = 3.2(2000)1.05 = 29948
Multiplicative factor for factor #1 – 0.82
Multiplicative factor for factor #2 – 1.42
Overall multiplicative factor – 0.82*1.42 = 1.164
Revised estimate: 29948 * 1.164 = 34871
28