Software Project Management

45
Software Project Management Lecture 2 Software Development Models

description

Software Project Management. Lecture 2 Software Development Models. Overview. Introduction Technical plan Software process models Selecting process model(s). Definitions. Software Process - PowerPoint PPT Presentation

Transcript of Software Project Management

Page 1: Software Project Management

Software Project Management

Lecture 2Software Development Models

Page 2: Software Project Management

Software project management 2

Overview Introduction Technical plan Software process models Selecting process model(s)

Page 3: Software Project Management

Software project management 3

Definitions Software Process

the set of activities, methods, and practices that are used in the production and evolution of software

Software Process Model one specific embodiment of a

software process architecture(Humphrey 1990)

Page 4: Software Project Management

Software project management 4

Why Modelling? To provide a common understanding To locate any inconsistencies,

redundancies and omissions To reflect the development goals

and provide early evaluation To assist the development team to

understand any special situation

Page 5: Software Project Management

Software project management 5

Project Analysis Methodologies

Object-Oriented Development (OOD) Structured System Analysis and

Design Method (SSADM) Jackson Structured Programming (JSP)

Technologies application-building environments knowledge-based system tools

Page 6: Software Project Management

Software project management 6

Project Characteristics data oriented or control oriented

system? general package or application

specific? a particular type of system for which

specific tools have been developed? safety-critical system? nature of the hardware/software

environment?

Page 7: Software Project Management

Software project management 7

Project Risks Product uncertainty Process uncertainty Resource uncertainty

Page 8: Software Project Management

Software project management 8

Considerations for Project Approach Control systems Information systems General applications Specialized techniques Hardware environment Safety-critical systems Imprecise requirements

Page 9: Software Project Management

Software project management 9

Technical Plan Contents

Constraints Approach Implementation Implications

Page 10: Software Project Management

Software project management 10

Technical Plan - Constraints Character of the system to be

developed Risks and uncertainties of the

project User requirements concerning

implementation

Page 11: Software Project Management

Software project management 11

Technical Plan - Approach Selected methodology or process

model(s) Development methods Required software tools Target hardware/software

environment

Page 12: Software Project Management

Software project management 12

Technical Plan - Implementation Development environment Maintenance environment Training

Page 13: Software Project Management

Software project management 13

Technical Plan - Implications Project products and activities

effect on schedule duration and overall project effort

Financial report used to produce costings

Page 14: Software Project Management

Software project management 14

Software Process Models Waterfall Model V Model Spiral Model Prototyping Model

Page 15: Software Project Management

Software project management 15

Software Process Models (cont’d) Phased Development Model

incremental development model iterative development model

Operational Specification Model Transformation Model

Page 16: Software Project Management

Software project management 16

Waterfall ModelRequiremen

tsAnalysis

SystemDesign

Coding

TestingMaintenanc

e

Page 17: Software Project Management

Software project management 17

Waterfall Model (cont’d) classical one-shot approach effective control limited scope of iteration long cycle time not suitable for system of high

uncertainty

Page 18: Software Project Management

Software project management 18

V ModelRequirements Analysis

System Design

Program Design

Coding

Unit andIntegration

Testing

System Testing

Maintenance

User Acceptance

Testing

Page 19: Software Project Management

Software project management 19

V Model (cont’d) Additional validation process

introduced Relate testing to analysis and

design Loop back in case of discrepancy

Page 20: Software Project Management

Software project management 20

Spiral Model (adapted from Boehm 1987)

Plan next phases

Determine objectives, alternatives and constraints

Evaluate alternatives; identify and resolve risks

Develop and verify next-level

product

Requirements plan

Development plan

Integration and Test

plan

Concept of operation

Risk analysis

Risk analysis

Risk analysis

PrototypePrototypePrototype

Software requirements

Requirements validation

System product design

Design validationAcceptance test

Integration and Test

Unit testing

Coding

Detailed design

Cumulative costProgress through steps

Page 21: Software Project Management

Software project management 21

Spiral Model (cont’d) Evolutionary approach Iterative development combined

with risk management Risk analysis results in “go, re-do,

no-go” decision

Page 22: Software Project Management

Software project management 22

Spiral Model (cont’d) Four major activities

Planning Risk analysis Engineering Evaluation

Page 23: Software Project Management

Software project management 23

Prototyping Model Goals

meet (some) user requirements at an early stage

reduce risk and uncertainty verify a design or implementation

approach Should always answer specific

questions; goals must be identified

Page 24: Software Project Management

Software project management 24

Classification of Prototype Throw-away

After users agree the requirements of the system, the prototype will be discarded.

Evolutionary Modifications are based on the existing

prototype. Incremental

Functions will be arranged and built accordingly.

Page 25: Software Project Management

Software project management 25

Prototyping Model

Build prototype Usersatisfaction

YES

NOUser feedback

Page 26: Software Project Management

Software project management 26

Benefits of Prototyping Learning by doing Improved communication Improved user involvement Clarification of partially-known

requirements

Page 27: Software Project Management

Software project management 27

Prototyping Sequences Requirements gathering Quick design Prototype construction Customer evaluation Refinement Loop back to quick design for fine

tuning Product engineering

Page 28: Software Project Management

Software project management 28

Benefits of Prototyping Demonstration of the consistency

and completeness of a specification Reduced need for documentation Reduced maintenance costs Feature constraint Production of expected results for

testing real system

Page 29: Software Project Management

Software project management 29

Drawbacks of Prototyping Users sometimes misunderstand

the role of the prototype Lack of project standards possible Lack of control Additional expense Machine efficiency Close proximity of developers

Page 30: Software Project Management

Software project management 30

Forms of Prototypes Mock-ups Simulated interaction Partial working model

Page 31: Software Project Management

Software project management 31

Prototype Products Human-computer interface System functionality

Page 32: Software Project Management

Software project management 32

Prototype Changes Three categories

Cosmetic (35%) screen layout

Local (60%) screen processing

Global (5%) multi-parts processing design review

Page 33: Software Project Management

Software project management 33

Phased Development Reduce cycle time Two parallel systems:

operational system (Release n) development system (Release n+1)

Two approaches incremental iterative

Page 34: Software Project Management

Software project management 34

Incremental Model Break system into small

components Implement and deliver small

components in sequence Every delivered component

provides extra functionality to user

Page 35: Software Project Management

Software project management 35

Incremental Model (cont’d)Requirements Analysis

Arrange requiremen

ts in increments

Validate increme

nt

Design and develop

increment

Integrate incremen

tYES

NOSystem

OK?

Page 36: Software Project Management

Software project management 36

Iterative Model Deliver full system in the

beginning Enhance functionality in new

releases

Page 37: Software Project Management

Software project management 37

Iterative Model (cont’d)

Develop system

version n

Validate system

version n

YES

NODesign system

version n

Systemcomplete

n = n+1

Page 38: Software Project Management

Software project management 38

Combined Incremental and Iterative Model Every new release includes

extra functionality enhancement of existing functionality

Popularly used in software industry

Page 39: Software Project Management

Software project management 39

Ranking the Increments Rank by value to cost ratio V = value to customer (score 1 -

10) C = cost (score 1- 10) Value to cost ratio = V/C Example: Table 4.1

Page 40: Software Project Management

Software project management 40

Advantages of Phased Development Early feedback Less possible requirement changes Early benefits for users Improved cash flow Easier to control and manage

Page 41: Software Project Management

Software project management 41

Advantages of Phased Development (cont’d) Capture early market Facilitate early training Can be temporarily abandoned Increase job satisfaction

Page 42: Software Project Management

Software project management 42

Disadvantages of Phased Development ‘Software breakage’ Reduced productivity

Page 43: Software Project Management

Software project management 43

Operational Specification Model Executable or translatable

specification Use executables to demonstrate

system behaviour Resolve requirement uncertainties in

early stage Merging functionality and system

design

Page 44: Software Project Management

Software project management 44

Transformational Model Transform a specification into

delivered system Requires automated support Relies on formal specification

method

Page 45: Software Project Management

Software project management 45

References Boehm, B. (1987) A sprial model of software

development and enhancement, Software Engineering Project Management, p.128–142.

Hughes, B. and Cotterell, M. (1999) Software Project Management, 2nd ed., McGraw Hill.

Humphrey, W. (1990) Managing the Software Process, Addison-Wesley.

Pfleeger, S.L. (1998) Software Engineering Theory and Practice, Prentice Hall