Ch8: Management of Software Engineering. 1 Management of software engineering Traditional...

29
Ch8: Management of Software Engineering
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    0

Transcript of Ch8: Management of Software Engineering. 1 Management of software engineering Traditional...

Ch8: Management of Software Engineering

2

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

3

Management of software engineering (contd..)

Management involves:

Organize an activity that is fundamentally intellectual:

Management decisions are aided by:

4

Management functions

Koontz:

Management is considered to consist of five areas:

5

Management functions (contd..)

Planning:

Organizing:

6

Management functions (contd..)

Staffing:

Directing:

Controlling:

7

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

8

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

9

Function points

A productivity measure, empirically justified Motivation:

Principle:

Appears to work well in business applications

10

Function point definition

A weighted sum of 5 characteristic factors

Item Weight Number of inputs 4 Number of outputs 5 Number of inquiries 4 Number of files 10 Number of interfaces 7

11

Function point definition (contd..)

Inputs/outputs Inquiries Files Interfaces. Major weakness:

Despite weakness, function point approach is widely used.

12

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”)

13

Productivity metrics: code

Depends on the size of code produced Problems:

Code is measured in several ways:

Code metrics may penalize:

14

Productivity

Factors affecting productivity:

There is a large variance in the productivity of software engineers.

15

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

16

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.

17

Typical cost driver categories

Product

Computer

Personnel

Project

18

Cost estimation procedure

Steps involved:

COCOMO (Constructive Cost Model) is best known cost estimation model.

COCOMO has evolved to COCOMO II.

19

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

20

COCOMO (contd..)

Mode

Feature Organic Semidetached Embedded

Organizational understanding of

product objectives

Thorough Considerable General

Experience in working with related

software systems

Extensive Considerable Moderate

Need for software conformance with

pre -es tablished requirements

Basic Considerable Full

Need for software conformance with

external interface specifications

Basic Considerable Full

Concurrent development of

associated new hardware and

operational procedures

Some Moderate Extensive

Need for inn ovative data processing

architectures, algorithms

Minimal Some Considerable

Premium on early completionProduct size range

Low<50 KDSI

Medium<300 KDSI

HighAll sizes

21

COCOMO (contd..)

Development Mode

Nominal effort Schedule Organic (PM)NOM=3.2(KDSI)1.05 TDEV=2.5(PMDEV))0.38 Semidetached (PM)NOM=3.0(KDSI)1.12 TDEV=2.5(PMDEV))0.35 Embedded (PM)NOM=2.8(KDSI)1.20 TDEV=2.5(PMDEV))0.32

COCOMO nominal effort and schedule equations

COCOMO (contd..) Ratings

Cost Drivers Very low Low Nominal High Very High

Extra High

Product attributes Required software

reliability

.75 .88 1.00 1.15 1.40

Data base size .94 1.00 1.08 1.16 Product complexity .70 .85 1.00 1.15 1.30 1.65 Comput er attributes Execution time constraints 1.00 1.11 1.30 1.66 Main storage constraints 1.00 1.06 1.21 1.56 Virtual machine volatility* .87 1.00 1.15 1.30 Computer turnaround time .87 1.00 1.07 1.15 Personnel attributes Anal yst capability 1.46 1.19 1.00 .86 .71 Applications experience 1.29 1.13 1.00 .91 .82 Programmer capability 1.42 1.17 1.00 .86 .70 Virtual machine

experience*

1.21 1.10 1.00 .90

Programming language

experience

1.14 1.07 1.00 .95

Project attributes Use of modern

programming practices

1.24 1.10 1.00 .91 .82

Use of software tools 1.24 1.10 1.00 .91 .83 Required development

schedule

1.23 1.08 1.00 1.04 1.10

COCOMOScaling factors

23

Towards COCOMO II

COCOMO's deficiencies

24

COCOMO II

A collection of 3 models

25

Application composition model

Suitable for:

Uses object points:

26

Early design model

Used once:

Cost prediction based on:

27

Post-Architecture Model

Involves:

Cost prediction based on

28

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: 2Number of interfaces: 0

FP = 4*#inputs + 5*#outputs + 4*#inquiries + 10*#files + 7*#interfacesFP = 4*2 + 5*2 + 4*1 + 10*2 + 7*0FP = 42

Java language takes 53 LOC/FP.# of source code lines is 53*42 = 2236

29

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 nominalperson 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 veryhigh, 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.82Multiplicative factor for factor #2 – 1.42 Overall multiplicative factor – 0.82*1.42 = 1.164

Revised estimate: 29948 * 1.164 = 34871