187
Software Project Management Daniel M. Berry with material from James E. Tomayko

Software Project Management

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Software Project Management

Software ProjectManagement

Daniel M. Berrywith material from James E. Tomayko

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 1

Page 2: Software Project Management

Nature of Software Production

SOFTWARE — program system product (PSP)

PROJECT — planned

MANAGEMENT — make sure that the PSPcomes out as planned

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 2

Page 3: Software Project Management

Software -1

We are not talking about programs, but aboutprogram system products (PSP)

We all know all about programs, but whatabout PSPs?

Fred Brooks explains the difference andshows the effort involved (multipliers may bebigger if the number of components is large):

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 3

Page 4: Software Project Management

Software -2

Program

Program

Product

SystemSystem

Program

Product

x 3

x 3

x 3x 3 x 9

Program

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 4

Page 5: Software Project Management

Program:

• program is complete by itself• program is ready to run by author for

planned inputs on system on which it wasdeveloped, and probably under no othercircumstances

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 5

Page 6: Software Project Management

Program System:

• each program is a component in integratedcollection (system)

• precisely defined interface to which allprograms in system must comply

• each program must stick to reasonableresources

• each program is tested with otherprograms; number of combinations growsquadratically with each additional program

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 6

Page 7: Software Project Management

Program Product:

• product can be run, tested, repaired,extended by anyone, not just author

• product runs on multiple platforms• product accommodates many sets of data• range and form of input to product must be

generalized• product must test for validity of input and

provide response to invalid inputs• must be product documentation for

maintainers and users

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 7

Page 8: Software Project Management

Program System Product:

• all attributes of program system and• all attributes of program product

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 8

Page 9: Software Project Management

Programs vs. PSPs -1

Perhaps the key problem in SPM is that whenwe should be thinking about PSPs, wecontinue to think about programs, and allexpectations,• ease vs. difficulties,• time,• costs,• you name it,are off by an order of magnitude.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 9

Page 10: Software Project Management

Programs vs. PSPs -2

We see only the program in the heart of thePSP and forget all the other junk that must beadded to make it a PSP!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 10

Page 11: Software Project Management

Project

The objective of the project to build a PSP isto make sure that all the necessary junk getsplanned in.

Projects have plans:• Specific work to do• Deliverables• Resources

- Multiple People- Schedule- Budget

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 11

Page 12: Software Project Management

Management -1

Any project with more than one person mustbe managed by definition, just to keep thecommunication going between the folk in theproject.

Note that the management does not need to beapplied externally, the manager can be one ofthe managed folk!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 12

Page 13: Software Project Management

Management -2

The job of management is to make sure thatthe planned junk does not get left behind inthe zeal to release the PSP when only theprogram in its heart has been written!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 13

Page 14: Software Project Management

Management -3

• Control leads to quality.

• Deliver what you promise.

• Allocate resources properly.

• Communicate and facilitatecommunication.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 14

Page 15: Software Project Management

Truths about Management

Boehm says:

“Poor management can increase softwarecosts more than any other factor”.

“Poor management can decrease softwareproductivity more rapidly than any otherfactor”

“The single most important factor in thesuccess of a (multi-person) software project isthe talent of its project manager”

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 15

Page 16: Software Project Management

Production of Managers

Mark Kellner goes so far as to say:

“The software engineering profession has notproduced a cadre of capable/competentmanagers.”

Promotion up the technical ladder requiresskills different from those needed by amanager.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 16

Page 17: Software Project Management

Basic Equation

Profit = Revenues − Expenses

Usually revenues are fixed, either by contractor by the market.

Therefore to maximize, or even to guarantee,profit, it is essential to reduce expenses orcosts.

Cannot reduce anything unless you knowwhat it is.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 17

Page 18: Software Project Management

Required Knowledge

Therefore, we gotta know what the costs are.

More importantly, we gotta what they will be ifwe’re using projected costs to determine whatthe price (i.e., revenues) is.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 18

Page 19: Software Project Management

Multi-pronged attack

Actually, there is a mirror image to reducingcosts that has the same net effect, when it isdone right.

• Reducing costs• Increasing productivity

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 19

Page 20: Software Project Management

Reducing Costs

To reduce cost, you have to know what you’respending and where you’re spending it.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 20

Page 21: Software Project Management

Increasing Productivity

To increase productivity, you have toeliminate unnecessary work and make thework that’s done more effective.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 21

Page 22: Software Project Management

Recurring Theme -1

Recall the diagram presented earlier ofBoehm’s cost drivers, showing how muchmore important personnel and team capabilityare than any technical factor.

Well, there is another line showing an evenmore important cost driver for software,namely the size of the code itself, and that’sabout 5 times more important than personneland team capability.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 22

Page 23: Software Project Management

Recurring Theme -2

1.20

1.231.321.341.491.491.511.561.571.661.872.364.18

1.23Language ExperienceSchedule ConstraintDatabase SizeTurnaround Time

Software ToolsVirtual Machine Volatility

Modern Programming PracticesStorage ConstraintApplication Experience

Product ComplexityPersonnel/Team Capability

Virtual Machine Experience

Timing ConstraintRequired Reliability

So

ftw

are

Co

st D

rive

r A

ttri

bu

te

Code Size≈ 200 1 2 3 4 20

Relative Effect

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 23

Page 24: Software Project Management

Recurring Theme -3

So a simple way to reduce costs is to writeless code! Nu?!

• Beg it.• Borrow it.• Buy it.• (No “steal it”!)

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 24

Page 25: Software Project Management

Outline

• Lifecycles• Cost Estimation• Risk Management• Planning General Issues• Process Management• Planning Details• Notations

Each major topic will be preceded with its ownoutline!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 25

Page 26: Software Project Management

Lifecycles

Outline:

• Build-and-fix• Waterfall• Spiral• One Sweep of Spiral• Requirements Engineering

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 26

Page 27: Software Project Management

Reasons for Considering Topic

Lifecycle models are generally considered tooconstraining and too ideal.

However, it is useful to understand whatlifecycles were envisioned whendocumentation standards were developed.

Later we will learn how and why to fake thelifecycles to make the documents.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 27

Page 28: Software Project Management

Build-and-Fix

version

Modify untilclient is satisfied

Operationsmode

Build first

Retirement

All too common!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 28

Page 29: Software Project Management

Waterfall -1

Win Royce described what is now called thetraditional waterfall lifecycle.

Realization

Operation

Integration

Design

Specifications

Requirements

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 29

Page 30: Software Project Management

Waterfall -2

The waterfall model is descriptive, and not toogood at that.

It is by no means proscriptive; it simply doesnot work!

Lowering fever is a good model of getting overan illness, but refrigerating a sick person willnot make him or her better.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 30

Page 31: Software Project Management

Spiral Model

Barry Boehm introduced the more realisticspiral model.

Determine objectives, alternatives,

next level product

Develop, verify

Benchmarks

Models,

Simulations,

Risk analysis

identify, resolve risks

Evaluate alternatives;

Plan next phase

constraints

The waterfall can be considered one 360°sweep of the spiral.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 31

Page 32: Software Project Management

One Sweep of Spiral

But here is the real lifecycle for one sweep.

ClientIdeas

ReqsSpecs

Design Code

More haphazard More systematic

More difficult than thought to be

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 32

Page 33: Software Project Management

Requirements Engineering -1

It is important to try to straighten the tortuousline from conception to requirementsspecifications.

Recall that the cost to correct an errorskyrockets as a function of lifecycle stage.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 33

Page 34: Software Project Management

Requirements Engineering -2

Phase in which error is detected

Rela

tive c

ost t

o co

rrect

erro

r

Preliminary Detailed Code and Integrate Validate Operationdesign design debug

100

50

20

10

5

2

1

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 34

Page 35: Software Project Management

Requirements Engineering -3

Meir Lehman identified E-type software.

• A system that solves a problem orimplements an application in some realworld domain.

• Once installed, an E-type system becomesinextricably part of the application domain,so that it ends up altering its ownrequirements.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 35

Page 36: Software Project Management

Requirements Engineering -4

Martin & Tsai did experiment to identifylifecycle stages in which requirement errorsare found

• Used polished 10-page requirements forcentralized railroad traffic controller.

• Ten 4-person teams of software engineerslooked for errors.

• Requirements author believed that teamswould find only 1 or 2 errors.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 36

Page 37: Software Project Management

Requirements Engineering -5

• 92 errors, some very serious, were found!

• Average team found only 35.5 errors, i.e., itmissed 56.5 to be found downstream!

• Many errors found by only one team!

• Errors of greatest severity found by fewestteams!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 37

Page 38: Software Project Management

Requirements Engineering -6

Most errors are introduced duringrequirements specification.

Boehm: At TRW 54% of all errors weredetected after coding and unit test; 85% ofthese errors were allocatable to therequirements and design stages rather thanthe coding stage, which accounted for only17% of the errors.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 38

Page 39: Software Project Management

Requirements Engineering -7

The requirements iceberg and variousicepicks chipping at it:

Requirements

Client’sView

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 39

Page 40: Software Project Management

Requirements Engineering -8

The problem is the conceptual distance fromthe client’s ideas to the specifications.

Concept

FormalSpec.

InformalSpec.

Folded in middle to give feeling of trueconceptual distances involved

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 40

Page 41: Software Project Management

Requirements Engineering -9

Requirements engineering has its ownlifecycle:

Specification

Validation

Analysis

Elicitation

Conception

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 41

Page 42: Software Project Management

Requirements Engineering -10

The next slide shows the benefits of spendinga significant percentage of development costson studying the requirements.

It is a graph from “System EngineeringOverview” by Kevin Forsberg and HaroldMooz, 1996.

It relates percentage cost overrun to studyphase cost as a percentage of developmentcost in 25 NASA projects.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 42

Page 43: Software Project Management

Requirements Engineering -11180

160

140

120

100

80

60

40

20

0

0 5 10 15 20 25

Per

cen

tag

e C

ost

Ove

rru

n

Study Phase Cost as a Percentof Development Cost

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 43

Page 44: Software Project Management

Requirements Engineering -12

The study, performed by W. Gruhl at NASA HQincludes such projects as

g Hubble Space Telescopeg TDRSSg Gamma Ray Obs 1978g Gamma Ray Obs 1982g SeaSatg Pioneer Venusg Voyager

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 44

Page 45: Software Project Management

Cost Estimation

Outline:

• What needs to be estimated

• Understanding software costs

• Estimation models

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 45

Page 46: Software Project Management

What Needs to be Estimated?

• Size• Time• Complexity• Effort• Resources

That is, all sorts of costs!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 46

Page 47: Software Project Management

Understanding Software Costs

What affects software costs?

• Why estimation so hard for SW?• Personnel & team capabilities• Individual differences• Team size• Product complexity• Fun vs. duty• Main reason for poor estimates• Accuracy of cost estimation• Two-step cost estimation• Risk of software cost estimation

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 47

Page 48: Software Project Management

Why Estimation SO Hard for SW?

• Often entirely new

• Start with incomplete specifications

• Moving target

• People factors

• Difficult to relate size and complexity

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 48

Page 49: Software Project Management

Personnel & Team Capabilities -1

Effects of personnel and team capability onproductivity:

• factors that managers cannot affect• factors that managers can affect

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 49

Page 50: Software Project Management

Personnel & Team Capabilities -2

There is nothing a manager can do to changethe talent of the individuals.

However, there are things that can be done tobring the talent of the indviduals out.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 50

Page 51: Software Project Management

Personnel & Team Capabilities -2

Some things that management can do to helpimprove personnel productivity:

• make a better programming environment• provide education and training• improve the software process

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 51

Page 52: Software Project Management

Individual Differences -1

• Individuals can be virtuosos, but there is alimit to what a virtuoso can do.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 52

Page 53: Software Project Management

Individual Differences -2

• An experiment to show that programmersusing interactive system are moreproductive than those using batch systemfailed because the so-called independentvariable of programmer quality dominated;they found a 26 to 1 productivity ratioamong experienced programmers.

• Other studies have shown 17 to 1productivity ratio among individualprogrammers.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 53

Page 54: Software Project Management

Individual Differences -3

Not many human endeavors have this wide ofa gap.

For example, in the best sprinters are not 17times faster than the worst.

On the other hand, Michael Jordan is around17 times better than the worst basket shooterand Pat Riley is around 17 times better thanthe worst coach.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 54

Page 55: Software Project Management

Individual Differences -4

I guess that the key here is that when skillrather than capacity is involved, individualdifferences are large.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 55

Page 56: Software Project Management

Team Size

Smaller teams are generally more effectivethan larger teams.

• There is less communication betweenmembers.

number of persons, lines of communication

5,104,63,32,11,0

• Stars of group can shine through easier.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 56

Page 57: Software Project Management

Product Complexity

The more complex the project, the lower theproductivity.

There are definite harbingers of complexproducts:• newness for the sake of newness• embedded in a larger system• filled with features

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 57

Page 58: Software Project Management

Fun vs. Duty

The fun of software development isoutweighed by the drudgery.

• need for perfection• taking responsibility for quality of work

products• debugging• documentation

That everyone would prefer to forget thedrudgery leads to...

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 58

Page 59: Software Project Management

Main Reason for Poor Estimates

Estimating fails due to lack of attention todistracting factors.

That is, everyone forgets the junk that makesa program system product out of a program!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 59

Page 60: Software Project Management

Accuracy of Cost Estimation

Basic problem with all estimates!

X

4X

.25X

Start EndLifecycle Phase

Lousy foresight; perfect hindsight!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 60

Page 61: Software Project Management

Two-Step Cost Estimation

Must map from requirements to personnel.

1. Internal influences step, e.g., function-pointanalysis that estimates program size fromdetails of required functions

2. External influences step, e.g., COCOMOthat maps from estimated size to peopleneeded

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 61

Page 62: Software Project Management

Code Size

Code size can• be affected by the desired functionality.• affect the desired functionality.• be affected by the implementation.• be affected by external factors, e.g.,

memory size limitations or codingstandards.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 62

Page 63: Software Project Management

Code Size Estimation Models

• Sizing by analogy• Wideband Delphi technique• Clark’s model• Function points

Note how all of these depend on detailedknowledge of expected internals of theprogram or of its requirements.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 63

Page 64: Software Project Management

Sizing by Analogy

Find another program like the one you’regoing to build and base your estimate on itssize.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 64

Page 65: Software Project Management

Wideband Delphi Technique

1. Individuals examine the requirements.2. Discuss the requirements in a group.3. Individuals estimate anonymously.4. Compare individual estimates to mean.5. Discuss results in group.6. Loop back to 3.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 65

Page 66: Software Project Management

Clark’s Model

E =6

(L + 4M + H)hhhhhhhhhhhh for each module

M = what you think is about right size formodule

H = the biggest you think it can ever be

L = the smallest you think it can ever be

E = final estimate for the module

Captures standard bell-shaped distribution.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 66

Page 67: Software Project Management

Function Points -1

Function points were invented by AllanAlbrecht at IBM in 1979.

Function points were originally intended forcommercial applications, and as we look atthe factors involved, this will be clear.

However, the idea of finding key factors canbe applied to any application domain; you justhave to find a different set of functionalfactors.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 67

Page 68: Software Project Management

Function Points -2

Objective: to be able to estimate code sizerelatively easy early in the lifecycle fromknowledge of only the requirements.

This is all you know when the customer says,“Here’s what I want. How much will it cost?”

If you over estimate, you lose the job. If youunderestimate, you lose the profit!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 68

Page 69: Software Project Management

Function Points -3

Function Points (FP) =

Sum of Functional Factors ×

[0.65 + 0.01 × Sum of Weighting Factors]

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 69

Page 70: Software Project Management

Functional Factors

Five Functional Factors (Simple, Average,Complex)

Functional Weights forFactor S A CiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiNumber of user inputs × 3 4 6Number of user outputs × 4 5 7Number of user inquiries × 3 4 6Number of files × 7 10 15Number of external interfaces × 5 7 10

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 70

Page 71: Software Project Management

Weights of Functional Factors

Weights can be adjusted, according toexperience.

Nowadays, because of libraries, the weightstend to be the same.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 71

Page 72: Software Project Management

Weighting Factors -1

1 Does system require reliable backup andrecovery?

2 Are data communications required?3 Are there distributed processing

functions?4 Is performance critical?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 72

Page 73: Software Project Management

Weighting Factors -2

5 Will system run in an existing, heavily usedoperational environment?

6 Does system require on-line data entry?7 Does the on-line data entry require the

input transaction to be built over multiplescreens or operations?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 73

Page 74: Software Project Management

Weighting Factors -3

8 Are master files updated on-line?9 Are input, output, files, or inquiries

complex?10 Is the internal processing complex?11 Is the code designed to be reusable?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 74

Page 75: Software Project Management

Weighting Factors -4

12 Are conversion and installation included inthe design?

13 Is system designed for multipleinstallations in different organizations?

14 Is the application designed to facilitatechange and ease of use by the users?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 75

Page 76: Software Project Management

Alternate Weighting Factors -1

1 Data communications2 Distributed data processing3 Performance criteria4 Heavily utilized hardware5 High transaction rates

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 76

Page 77: Software Project Management

Alternate Weighting Factors -2

6 On-line data entry7 End-user efficiency8 On-line updating9 Complex computations10 Reusability

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 77

Page 78: Software Project Management

Alternate Weighting Factors -3

11 Ease of installation12 Ease of operation13 Portability14 Maintainability

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 78

Page 79: Software Project Management

Modern Weighting Factors

Nowadays, the following are considered:

• interfaces with other applications• special security features• direct access by third party software• documentation requirements• training and help subsystems

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 79

Page 80: Software Project Management

Modern Formula -1

FP = 0.44 × No. of Input Element Types +1.67 × No. of Entity Type References +0.38 × No. of Output Element Types

That is count number of types used ratherthan objects.

Presumably, all accesses to objects of thesame types will reuse the same operators.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 80

Page 81: Software Project Management

Modern Formula -2

The new formula reflects current modularstyle of programming.

In this style, the intellectual effort is indesigning classes not variables.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 81

Page 82: Software Project Management

Key Observations about FPs

These measures are based on user’s externalview and are technology independent.

They can be developed early in the lifecycle,enabling their use for early cost estimation inplanning stages.

They can be understood and evaluated bynontechnical users!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 82

Page 83: Software Project Management

Additional FP Metrics

• Productivity = FP ⁄ PM• Quality = Errors ⁄ FP• Cost = Dollars ⁄ FP• Documentation = Pages ⁄ FP

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 83

Page 84: Software Project Management

FP vs. DSIBasic Assembler 360Macro Assembler 213C 128COBOL 105FORTRAN 105Pascal 80Ada 72Basic 644GL 25

So now we have the data to plug into, e.g.,COCOMO to estimate personnel!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 84

Page 85: Software Project Management

Advantages of Function Points

• Deeper understanding of complexity thanother methods

• More than one variable• Can and must look at requirements• Can and must involve user

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 85

Page 86: Software Project Management

Disadvantages of Function Points

• More complex• Subjective• DP-biased

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 86

Page 87: Software Project Management

COCOMO

• History• Empiricism• Three levels of detail• Three development environments• Assumptions of COCOMO model• DSI• Person-month formulae• Time of development formulae• Full-time software personnel• COCOMO caveat

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 87

Page 88: Software Project Management

History

Developed by Barry Boehm in 1970s base onhis experience as head of softwaredevelopment at TRW.

He was in position of having to makeestimates, and he got to be good at it.

COCOMO is a formalization of his experiencein 62+ projects at TRW.

Described in Boehm’s 1981 book SoftwareEngineering Economics

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 88

Page 89: Software Project Management

Empiricism

It is entirely empirical, based on 62+ projectsat TRW.

Although, the shape of the formulae makessense, that is, factors that are adverselyaffected by growth in inter-modulecommunication contribute to quadratic growthin needed personnel.

Each place will have to adjust the constants toreflect what is true there.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 89

Page 90: Software Project Management

Three Levels of Detail -1

• Basic• Intermediate• Detailed

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 90

Page 91: Software Project Management

Three Levels of Detail -2

As the detail increases, the number of factorsconsidered increases.

“Detailed” considered most accurate, but maynot be.

In other words, by calibrating constants inbasic model, might get better results faster!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 91

Page 92: Software Project Management

Three Levels of Detail -3

We cover only basic here.

There are cost-estimation tools that implementthe model.

Use of such tools can help insure company-wide input in calibration and company-wideconsistency in resulting estimates.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 92

Page 93: Software Project Management

Three Development Environments

1. Organic (Informal group structure)

2. Semi-detached

3. Embedded (Very formal group hierarchyand process)

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 93

Page 94: Software Project Management

Organic Development Mode

• Thorough understanding of projectobjectives

• Extensive experience with related systems• Minimal need to meet predefined

requirements• Minimal need to conform to external

interfaces• Hardware already exists• Minimal need for innovation• Loose deadline

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 94

Page 95: Software Project Management

Semi-detached Development Mode

• Much understanding of project objectives• Much experience with related systems• Much need to meet predefined

requirements• Much need to conform to external

interfaces• Some concurrently developed new

hardware• Some need for innovation• Moderately tight deadline

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 95

Page 96: Software Project Management

Embedded Development Mode

• Only general understanding of projectobjectives

• Moderate experience with related systems• Must meet predefined requirements• Must conform to external interfaces• Much concurrently developed new

hardware• Much need for innovation• Very tight deadline

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 96

Page 97: Software Project Management

Assumptions of COCOMO Model

• Low volatility of requirements

• Good SE practice

• Good management

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 97

Page 98: Software Project Management

DSI -1

The Concept of DSI is an attempt to captureintellectual effort.

Delivered (not thrown out code)Source (that which humans operate on)Instructions (and not comments)

However, if test suites are to be delivered,they must be counted too

Also use KDSI, thousand DSI

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 98

Page 99: Software Project Management

DSI -2

Counting source instructions is hard

What do we count?• line-feeds• semicolons

What do we do about control constructs?• if ( ... ) - - - ;• if ( ... ) {

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 99

Page 100: Software Project Management

Person-Month Formulae -1

Organic: PM = 2.4×KDSI1.05

Semi-detached: PM = 3.0×KDSI1.12

Embedded: PM = 3.6×KDSI1.20

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 100

Page 101: Software Project Management

Person-Month Formulae -2

200

160

120

80

40

0

380

360

340

10K 20K 30K 40K 50K 60K

400

Est

imat

ed E

ffo

rt (

PM

)

Product Size (DSI)

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 101

Page 102: Software Project Management

Time of Development Formulae -1

Organic: TDEV = 2.5×PM0.38

Semi-detached: TDEV = 2.5×PM0.35

Embedded: TDEV = 2.5×PM0.32

This is consistent with people and time notbeing exchangeable!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 102

Page 103: Software Project Management

Time of Development Formulae -2

18

12

6

0

10K 20K 30K 40K 50K 60K

Product Size (DSI)

Est

imat

ed S

ched

ule

(M

on

ths)

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 103

Page 104: Software Project Management

Full-Time Software Personnel -1

FSP =TDEV

PMhhhhhh

This assumes uniform personnel level overwhole project.

Usually want to start off light and hire more asproject evolves.

Use Rayleigh curve.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 104

Page 105: Software Project Management

Full-Time Software Personnel -2

0 10 20 30 40 50 60 70 80 90 100

Percentage of Development Completed

25

50

75

100

125

150 Programming

Testing

Integration

Requirements

Design

0

Per

cen

t o

f A

vera

ge

Per

son

nel

Lev

el

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 105

Page 106: Software Project Management

Full-Time Software Personnel -3

FSP = PM×(p2thhhh ) ×e

− (2p2t2

hhhhh )

Here p is percentage of development schedulecompleted at peak.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 106

Page 107: Software Project Management

Ada Modifications to Basic Model -1

• Assume smaller teams initially, but allowlonger design period.

• DSI = carriage returns in specification partsand bodies.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 107

Page 108: Software Project Management

Ada Modifications to Basic Model -2

PM = 2.4×KDSI1.05

TDEV = 3×PM0.32

PM for PD, DD, CUT, IT =PM × (.23, .29, .22, .26)

TDEV for PD, DD, CUT, IT =TDEV × (.39, .25, .15, .21)

PD = preliminary design, DD = detailed design,CUT = code unit testing, IT = integrationtesting

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 108

Page 109: Software Project Management

Intermediate Model -1

Sample multipliers for cost drivers:

RatingVery Nom- Very Extra

Cost Drivers Low Low inal High High HighiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiProduct Attributes

Required Software Reliability 0.75 0.88 1.00 1.15 1.40Database Size 0.94 1.00 1.08 1.16Product Complexity 0.70 0.85 1.00 1.15 1.30 1.65

Personnel AttributesAnalyst Capability 1.46 1.19 1.00 0.86 0.71Applications Experience 1.29 1.13 1.00 0.91 0.82Programmer Capability 1.42 1.17 1.00 0.86 0.70Virtual Machine Experience 1.21 1.10 1.00 0.90Programming Language Experience 1.14 1.07 1.00 0.95

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 109

Page 110: Software Project Management

Intermediate Model -2

Sample rating determination:

Cost Drivers Situation RatingiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiRequired Software Reliability Serious financial conse- High

quences of software faultDatabase Size 20,000 bytes LowProduct Complexity Communications processing Very High

Analyst Capability Good senior analyst HighApplications Experience Three years NominalProgrammer Capability Good senior programmer HighVirtual Machine Experience Six months LowProgramming Language Experience Twelve months Nominal

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 110

Page 111: Software Project Management

COCOMO Caveat

All depends on estimate of code size (DSI),which can be

• a result of solving a problem• driven by external factors, e.g., memory

bound by system design or standards• directly affected by desired functionality

and it

• directly affects desired functionality

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 111

Page 112: Software Project Management

Advantages of COCOMO

• Reasonable• Simple• Clear

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 112

Page 113: Software Project Management

Disadvantages of COCOMO

• Too believable• Too dependent on one variable• Subjective

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 113

Page 114: Software Project Management

Implications of Cost Drivers

The biggest cost driver is the number ofinstructions to develop.

Therefore, it pays to try to eliminate thenecessity of developing new instructions.

• Off-The-Shelf Software (OTS)• Reuse or adapt existing software• Application generators

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 114

Page 115: Software Project Management

Risks of Software Cost Estimation

0102030405060708090

100

0 25 50 75 100

Percentage of Total Project Time

Est

imat

ed P

erce

nt

Co

mp

lete

10

30

50

75

9598

95

9899

100

9890

Why don’t I believe “It’s 90% done!”

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 115

Page 116: Software Project Management

Typical Estimation Results

Contractor LOC DollarsiiiiiiiiiiiiiiiiiiiiiiiiiiiiA 153K 2.8MB 282K 2.5MC 400K 4.6MD 735K 4.5ME 766K 2.1M

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 116

Page 117: Software Project Management

And the Winna is

E!

Actual code size 900K Actual cost 5.8M

Nu?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 117

Page 118: Software Project Management

Why Estimates Fail?

• Optimism• Confusion between effort and progress• Gutless estimating• Poor progress monitoring• Requirements Creep• Adding peoplepower

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 118

Page 119: Software Project Management

Optimism -1

It comes primarily from forgetting that we aredealing with a program system product ratherthan a program.

It happens to the best of us!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 119

Page 120: Software Project Management

Optimism -2

Meir Burstin was a very successful softwaremanager.

He could estimate project durations just likethat, right off the seat of his pants.

His company’s success was testimony to hisestimation ability.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 120

Page 121: Software Project Management

Optimism -3

Soon after he sold the company, he went toget a Ph.D. and had to develop a requirementsmanagement system for his Ph.D. research.

His estimate was suddenly low, by an order ofmagnitude.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 121

Page 122: Software Project Management

Optimism -4

When asked about this, he said that since hewas doing by himself, and he is a goodprogrammer, he forgot to apply all his normalfudge factors.

That is, he thought he could do it as a programand forgot that it was a PSP!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 122

Page 123: Software Project Management

Optimism -5

Donald Knuth is a good programmer, aprogrammer’s programmer.

I remember hearing a talk he gave in 1980when he was about .75 year into the TEX-and-METAFONT project.

He expected to be finished soon, that it wouldbe a 1-year project.

He wanted to get back to writing his 7-volumeencyclopedia of programming!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 123

Page 124: Software Project Management

Optimism -6

It took 10 years to get to the stage that it was asatisfactory PSP.

I’ll bet that he was thinking program, not PSP,when he gave his 1-year estimate!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 124

Page 125: Software Project Management

Rules of Thumb -1

Here are some rules of thumb that you canuse.

If you think program when you’re supposed tobe thinking PSP.

Identify which rule of thumb below applies,and take your “program” estimate and let it bejust the coding stage.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 125

Page 126: Software Project Management

Rules of Thumb -2

From that, you can get a rough estimate of thefull time needed.

Also when you do get a detailed estimate, if itdoesn’t jibe with one of these rules of thumb,something is wrong.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 126

Page 127: Software Project Management

Brooks’s Rule of Thumb

For distribution of effort in functionallydecomposed programs:

1⁄3 planning1⁄6 coding1⁄4 unit test and early integration test1⁄4 integration test

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 127

Page 128: Software Project Management

Tomayko’s Rule of Thumb:

For distribution of effort for developingmodular, data hiding software:

1⁄2 planning1⁄12 coding1⁄4 unit test and early integration test1⁄6 integration test

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 128

Page 129: Software Project Management

Adding Peoplepower -1

Sometimes it seems unavoidable.

Sometimes it is done to protect against futureproblems.

In either case it’s a disaster!

“Adding manpower to a late software projectmakes it later” — F.P. Brooks, Jr.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 129

Page 130: Software Project Management

Adding Peoplepower -2

The problems are bring the new people up todate and adding them to the communicationloop.

Both catch-up and additional necessarycommunication cost more time than a newperson adds.

You can add more bricklayers to a wallbuilding project; no catch up and no additionalnecessary communication!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 130

Page 131: Software Project Management

Adding Peoplepower -3

If it is necessary, i.e., it simply requires toomuch work for the available people to deliver.

Then add the people!

But, then the whole project must be re-planned with a later deadline!

No two ways about it!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 131

Page 132: Software Project Management

Cost Increases

Causes:

• Requirements changes: 85%• Poor estimation: 15%

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 132

Page 133: Software Project Management

Danger Lurks -1

Quick, look at a typical project’s Pert Chart:

require-ments

testplan

testdata

testdrivers

producttest

ment

start

designdocu-

finishcode

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 133

Page 134: Software Project Management

Danger Lurks -2

The duration of which development phase isthe most dangerous to underestimate?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 134

Page 135: Software Project Management

Danger Lurks -3

The answer:

Testing!

You are too close to delivery for recovery!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 135

Page 136: Software Project Management

Self-Fulfilling Prophecies

Different estimates make different projects!

Tarek Abdel-Hamid found that estimates tendto influence people’s work habits.

Parkinson’s law: Work tends to expand to fillthe time available!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 136

Page 137: Software Project Management

Validity of Estimation Models

Chris Kemerer did an Empirical Evaluation ofSoftware Cost Estimation Models.

Used COCOMO, FPs, and other methods ondata of finished projects.

Data on 15 large COBOL projects werecollected to test accuracy of the models expost facto using actual DSI data and notestimates.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 137

Page 138: Software Project Management

Kemerer’s COCOMO Data

A mean over 15 projects:

Actual/Estimate PM ErroriiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiActual 219Basic Estimate 1226 610%Intermediate Estimate 1280 583%Detailed 1291 607%

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 138

Page 139: Software Project Management

Kemerer’s FP Data

A mean over 14 projects:

Actual KLOC: 221Estimate: 128Error: 38% low

What can be inferred?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 139

Page 140: Software Project Management

Validity of Models

Kemerer concludes that the models aregenerally valid, that the shape of the formulaeare OK.

But all the models need calibration of theirmultipliers, powers, and constants.

So this means that before you can startbelieving your estimates you have to havebeen applying them over a number of projects.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 140

Page 141: Software Project Management

What’s a Project Manager to Do?

• Reject the models.

• Use fudge factors in the models.

• Adapt and calibrate the models.

• Make new models.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 141

Page 142: Software Project Management

Configuration Management (CM)

• Role of CM• Functions of CM• Commitment is necessary• Typical configured items• CM library functions• Variations vs. revision• Types of changes• Implementing CM

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 142

Page 143: Software Project Management

Role of CM

Management Disciplines

ControllingDisciplines

DevelopmentDisciplines

ProductIntegrity

Software

Quality

Assurance

Software

Configuration

Management

Independent

Verification and

Validation

Specification

Design

Code

Test

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 143

Page 144: Software Project Management

Functions of CM

• Maintain integrity of configured items

• Evaluate and control changes

• Make the product visible

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 144

Page 145: Software Project Management

Commitment is Necessary

No matter how good are the CM tools, it isalways possible to by-pass them, renderingthem useless.

Therefore:

Commitment to configuration management bythe entire organization is the key to success ofconfiguration management.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 145

Page 146: Software Project Management

Typical Configured Items -1

• Requirements• Specifications• Design Documents• Source Code• Object Code• Load Modules• Tools

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 146

Page 147: Software Project Management

Typical Configured Items -2

• System Description• Test Plans• Test Suites• User Manuals• Maintenance Manuals• Interface Control Documents• Memory Maps

In other words, all deliverables!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 147

Page 148: Software Project Management

CM Library Functions

• Software Part Naming• Configured Item Maintenance/Archiving• Version Control• Revision Control• Preparation for Product Release

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 148

Page 149: Software Project Management

Variations vs. Revision

Variations can co-exist, e.g., different versionsof same program for two different CPUs orOSs

A new revision replaces an older one.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 149

Page 150: Software Project Management

Types of Changes -1

• Disrepancies- Requirements Errors- Development Errors- Violations of Standards

• Requested Changes- Unimplementable Requirements- Enhancements

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 150

Page 151: Software Project Management

Types of Changes -2

• Disrepancies — absolutely critical, cannotgo on without fixing

• Requested Changes — more voluntary, cango on without fixing

Requested changes tend to be moredifficult than fixing disrepancies and tendto have major impacts on other features ifcarried out.

Disrepancies have major impacts if theyare not fixed.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 151

Page 152: Software Project Management

Implementing CM• Fundamental principles• CCB characteristics• Hierarchies of CCBs• Evaluating changes• Disrepancy report (DR) evaluation• Change request (CR) evaluation• Simultaneous update problem• Variations & revisions tree• Tools for version control• Tools for system building• Trends of reporting• Standards for CM plans

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 152

Page 153: Software Project Management

Fundamental Principles

Fundamental principles to guide configurationcontrol boards (CCBs):

• Principle of authority

• Principle of solitary responsibility

• Principle of specificity (assigning the DR orCR to the right CCB)

As Jim Tomayko says, the CCB has to haveteeth (grrr!) or it will not work!

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 153

Page 154: Software Project Management

CCB Characteristics

Factors determining CCB characteristics:

• Hierarchies

• Scope

• Composition

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 154

Page 155: Software Project Management

Hierarchies of CCBs

Project CCB

Subsystem SubsystemSubsystem

A CCB B CCB C CCB

Subsystem C Subsystem C

Hardware CCB Software CCB

Inherited Original

Software CCBSoftware CCB

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 155

Page 156: Software Project Management

Evaluating Changes -1

Key factors in evaluating proposed changes:

• Size• Complexity• Date needed• CPU and memory impact• Cost• Test requirements

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 156

Page 157: Software Project Management

Evaluating Changes -2

• Criticality of area involved• Politics (customer/marketing desires)• Approved changes already in progress• Resources (skills/hardware/system)• Impact and current and future work• Is there an alternative?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 157

Page 158: Software Project Management

Disrepancy Report (DR) Evaluation

DR submitted

DR logged

CCB waives DR?

Waiver document Development group makes change

Configured items updated

Y N

DR closure audited and logged

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 158

Page 159: Software Project Management

Change Request (CR) Evaluation

CR submitted

CR logged

CCB approves CR?

Development group makes change

Configured items updated

Y

CR closure audited and logged

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 159

Page 160: Software Project Management

Simultaneous Update Problem

16.7.94

Source

09:0016.7.94

Source

10:00

Coder ACoder B

09:15

09:35

09:20

09:27

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 160

Page 161: Software Project Management

Variations & Revisions Tree

1.0

1.1

1.2

2.0 2.0’

2.1"

Original Release

Upgrade

Upgrade

New Release

Upgrade &

still anotherplatform

anotherplatform

Rev

isio

n

Variation

variation for

Variation for

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 161

Page 162: Software Project Management

Tools for Version Control

Keeping track of versions and revisions tree

• SCCS

• RCS

• Domain

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 162

Page 163: Software Project Management

Tools for System Building

Describe the system and let the tool build itaccording to description.

Description shows module dependencies: if Aincludes B then recompilation of B forcesrecompilation of A

• Shell scripts/batch files

• Make

• Domain

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 163

Page 164: Software Project Management

Trends of Reporting

CR

DR

Time into project

Nu

mb

er o

f re

po

rts

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 164

Page 165: Software Project Management

Standards for CM Plans

• IEEE (ANSI/IEEE 828-1983)

• MIL-STD-483A (Air Force)

• DoD-STD-2167

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 165

Page 166: Software Project Management

Legal Issues

• Intellectual Property Protection• Liability and Warranty

Note that in all the following, laws exist,agencies exist to administer variousprotections, and courts have final say indisputes over whether protections arelegitimate in any case.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 166

Page 167: Software Project Management

Intellectual Property

What is intellectual property?

Why is it important?

Pirating costs money and future advancement!

Three main ways to protect intellectualproperty:• Patent• Copyright• Trade Secret

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 167

Page 168: Software Project Management

Patent -1

Exclusive right to manufacture and sellproduct meeting description of patent for fixednumber of years (about 50).

Get it by applying to national patent office andshowing that your invention meetsrequirements and you were first to think of it.

Must disclose the full details of the invention,but this is what you get the exclusive right toproduce and sell.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 168

Page 169: Software Project Management

Patent -2

Requirements for patentability:

• utility

• novelty

• non-obviousness

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 169

Page 170: Software Project Management

Patent -3

Excluded from patents:

• business systems

• printed matter

• mental steps

• algorithms

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 170

Page 171: Software Project Management

Patent -4

But Gottschalk vs. Benson 1972 grantedpatent to an industrial process that included acomputer program to do process control thatis beyond human and mechanical capabilities.

So now there is a big flurry to patentprograms.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 171

Page 172: Software Project Management

Patent -5

Definition of algorithm:

• finite• definite• input• output• effective

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 172

Page 173: Software Project Management

Patent -6

Routines that are part of programmer’s normalbag of tricks are being patented.

Patents can be challenged in courts and thatis the only defense against an improperlygranted patent.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 173

Page 174: Software Project Management

Copyright -1

Copyright is the exclusive right to publishsomething written or performable for a fixednumber of years.

Protection is on expression and not idea, butyou cannot copyright something for whichthere is only one expression, e.g., a formula.

Protection extends to derived works, e.g.,obtained by translation.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 174

Page 175: Software Project Management

Copyright -3

Recently copyright has been extended tosoftware in any form, source or object.

The copy needed to run and a back up copyare permitted when you license software;copyright cannot prevent someone from usingobject for its intended purpose or for personaluse.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 175

Page 176: Software Project Management

Copyright -3

Licensing vs. buying software.

Shrinkwrap licensing.

License usually prohibits reverse engineeringwhich is allowed by copyright law.

Big issue in courts now: is output generatedby programs copyrightable, e.g., look andfeel?

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 176

Page 177: Software Project Management

Trade Secret -1

Problem with both patent and copyright: youhave to disclose secrets.

Can go trade secret route.

Laws exist to protect secrets obtained unfairlyor fraudulently if you take active steps toprotect them.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 177

Page 178: Software Project Management

Trade Secret -2

Active steps:

• Security at plant• Non-disclosure agreements for employees• Non-disclosure agreements with potential

customers• Licensing agreements that specify no

reverse engineering and non-disclosure ofsecrets discovered while using

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 178

Page 179: Software Project Management

Trade Secret -3

Caveat: You lose the protection of the law ifthe usurper of the secret can show that youhave not been diligent in protecting the secretor have given it out without limits.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 179

Page 180: Software Project Management

Liability and Warranty -1

Liability: You are responsible for the effects ofyour actions and products and can be made topay for damages that result, and sometimespunitive damages if it can be shown that youwere willfully negligent

Warranty: Claim, backed by right to return aproduct at no cost to consumer, of capability,suitability, or fitness of the product for itsstated or intended purpose.

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 180

Page 181: Software Project Management

Liability and Warranty -2

Protection from liability:

• Limited warranty

• Disclaimers

• Limit of remedy

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 181

Page 182: Software Project Management

Liability and Warranty -3

Definition of fraud:

• Misrepresentation of a capability• Using the user as a beta site• Misrepresentation of suitability or fitness• Misrepresentation of time or management

or money savings

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 182

Page 183: Software Project Management

Liability and Warranty -4

• Express warranty

• Implied warranty

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 183

Page 184: Software Project Management

Liability and Warranty -5

Concept of unconscionability

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 184

Page 185: Software Project Management

Liability and Warranty -6

Differentiate between

• goods

• services

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 185

Page 186: Software Project Management

Liability and Warranty -7

• Professional liability

• Product liability

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 186

Page 187: Software Project Management

Liability and Warranty -8

Warranty protection for computer systems:

• hardware

• off-the-shelf software

• custom software

1994 Daniel M. Berry Software Enginering Software Project Management Pg. 187