42
1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac DAAD Project “Joint Course on Software Engineering” Version: Oct. 29, 2005 (D Nov. 06, 2003) Topic 3 Software process models

Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

1

Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac

DAAD Project“Joint Course on Software Engineering”

Version: Oct. 29, 2005 (D Nov. 06, 2003)

Topic 3Software process models

Page 2: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

2

2DAAD project „Joint Course on Software Engineering“ ©

3. Process models

a) Why process models?

b) Overview of existing models

c) Classical and iterative phase model (waterfall model)

d) Alternative phases in phase models

e) Prototyping

f) Spiral model

Page 3: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

3

3DAAD project „Joint Course on Software Engineering“ ©

Process models: used terminology

(Note: terms are similar, but with differences; e.g. life cycle model: development and maintenance, software development model: without maintenance)

Software process modelsPhase modelsLife cycle modelsSoftware development modelsProject models

Page 4: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

4

4DAAD project „Joint Course on Software Engineering“ ©

Why process models ?

„SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software ...“(IEEE Standard Glossary of Software Engineering Terminology, 1990).

Definition of the term SE requires studying models for systematic software development (main objective of SE)!

Page 5: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

5

5DAAD project „Joint Course on Software Engineering“ ©

Relevance of process modelsProcess models are relevant for

Project organization:• Otherwise: sporadic,

uncoordinated project management

• Experience: high-quality SW is impossible without a systematic approach to SW development

Project analysis:What are the weak points in the development process?

Time and cost planning

Qualitative assessment of SW companiesCertification for ISO 9000

Page 6: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

6

6DAAD project „Joint Course on Software Engineering“ ©

What is a process model ?

Process model• In general: Development plan, which specifies the

general process of developing a software product.• More precisely: Definition that states, which activities

are to be performed, by which person, acting in which role; in which order the activities will be performed, and which products will be developed and how to evaluate them.

Role• coworker, who accomplish a certain activity

e.g. test engineer, project leader, design specialist, programmer, software ergonomist

What isSW-specific?

Page 7: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

7

7DAAD project „Joint Course on Software Engineering“ ©

Performing an activity: basic scheme (activity = subprocess of a process model)

Source: Balzert, vol. 1, p. 60

Givenartifacts

Role XCoworker Y

Tools

Changed or new artifact

Legend:

Activity

Role

Coworker

Model(Artifact)

Document(Artifact)

Methods•Guidelines•Conventions•Check lists•Samples

Page 8: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

8

8DAAD project „Joint Course on Software Engineering“ ©

Software artifacts

Software artifact• Product of art created by humans• Can be a document, a model or a program • Examples :

- Document, e.g. requirements specification- Model, e.g. OOA model - Program, e.g. C++-Program.

Software product• Set of software artifacts

Page 9: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

9

9DAAD project „Joint Course on Software Engineering“ ©

3. Process models

a) Why process models?

b) Overview of existing models

c) Classical and iterative phase model (waterfall model)

d) Alternative phases in phase models

e) Prototyping

f) Spiral model

Page 10: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

10

10DAAD project „Joint Course on Software Engineering“ ©

Most familiar process models: Overview

Process models

• Classical phase model(waterfall model)

• Iterative phase model(life cycle)

• Spiral model

• Prototyping(evolutionary SE)

• V-model

Page 11: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

11

11DAAD project „Joint Course on Software Engineering“ ©

Notes

Models are always idealized, they give only a framework and must allow flexible working

must not hinder workDifferent classes of SW development problems

different suitable models

e.g. AI program: gradual evolutionPrototyping model is often used

Page 12: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

12

12DAAD project „Joint Course on Software Engineering“ ©

3. Process models

a) Why process models?

b) Overview of existing models

c) Classical and iterative phase model (waterfall model)

d) Alternative phases in phase models

e) Prototyping

f) Spiral model

Page 13: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

13

13DAAD project „Joint Course on Software Engineering“ ©

Software development process until 1970: considered as a black box

Software development process

Program

code

What happens inside?

Only until 1970?

Customer

informal requirements

Page 14: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

14

14DAAD project „Joint Course on Software Engineering“ ©

Analysisand

Definition

Analysisand

Definition

The classical waterfall model (1970)

DesignDesign

ImplementationImplementation

TestTest

Usage and MaintenanceUsage and

Maintenance

Page 15: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

15

15DAAD project „Joint Course on Software Engineering“ ©

Phases of SW development:subject and products (overview)

Analysis and DefinitionAnalysis of the problem + Definition of the requirements to the SW, focus: external behavior of the SW system intensive cooperation: client ↔ contractor

requirement specifications, product model and othersDesignSpecification of the structure of the SW (software architecture), specification of components and their relations

software architecture, detailed design, and othersImplementationSoftware architecture is „filled out“: programming of the components

program (code)TestTesting of the components, testing of their integration

test cases, test protocols and others

Page 16: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

16

16DAAD project „Joint Course on Software Engineering“ ©

Analysisand

Definition

Analysisand

Definition

The classical waterfall model (1970)

DesignDesign

ImplementationImplementation

TestTest

Usage and MaintenanceUsage and

Maintenance

Problems ?

Page 17: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

17

17DAAD project „Joint Course on Software Engineering“ ©

Documents of SW development

Required features (empty circles) got lost, unnecessary (filled circles) are added

Source: Schneider, SEUH 43, p. 123

Customer Analyst Designer Programmer

Customer's requests

Specification Design Code

Page 18: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

18

18DAAD project „Joint Course on Software Engineering“ ©

Information flow in SW projects

How the customerexplained it

How the Project Leader understood it

How theTesterleft it

How the Programmerwrote it

How the Business Consultant described it

How the project was documented

How the Software architect designed it

How the customerwas billed

How it was supported What the customerreally needed So

urce

: unk

now

n

Page 19: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

19

19DAAD project „Joint Course on Software Engineering“ ©

Analysisand

Definition

Analysisand

Definition

Iterative phase model

DesignDesign

ImplementationImplementation

TestTest

Usage and MaintenanceUsage and

Maintenance

Problems ?

Page 20: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

20

20DAAD project „Joint Course on Software Engineering“ ©

Cost allocation in the software life cycle

Maintenance67%

Requirement analysis

3%

Specification3% Design

5%

Coding7%

Unit Testing

8%

IntegrationTesting

7%

Source: R. Klösch, H.Gall: Objektorientiertes Reverse Engineering. Springer, 1995

Page 21: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

21

21DAAD project „Joint Course on Software Engineering“ ©

Error statistics: occurrence and correction

Source: Software Metrics Symposium 1996, p. 176

requirements design implementation

20 % 38 % 42 %

1 % 2 % 20 % 30 % 40 % 7 %

requirementsreview

designreview

code review

+unittest

subsystem test

system and acceptance

test

field faults

faults detected

faults introduced to the software

Page 22: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

22

22DAAD project „Joint Course on Software Engineering“ ©

3. Process models

a) Why process models?

b) Overview of existing models

c) Classical and iterative phase model (waterfall model)

d) Alternative phases in phase models

e) Prototyping

f) Spiral model

Page 23: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

23

23DAAD project „Joint Course on Software Engineering“ ©

Phases according to Jacobson

Jacobson: Object-oriented Software Engineering p. 32

Characteristics ?

Requirementsanalysis

Preliminarydesign

Detaileddesign

Coding

Unit testing

Integration

System test

Page 24: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

24

24DAAD project „Joint Course on Software Engineering“ ©

Phases according to Denert

Denert: Software Engineering, Springer Verlag, 1992, p. 39

System Specification

User Interface

Data model

Functional Model

System Construction

Modularity

Process organization

Database design

Module Implementation

Module specification

Moduletesting

Module construction

System Integration

Subsystem definition

System testing

Subsystem testing

Characteristics ?

Page 25: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

25

25DAAD project „Joint Course on Software Engineering“ ©

RequirementsDefinition Design

DetailedConcept

SoftwareDesign

organization hierarchyorganization hierarchy

rough data model

task processes

task hierarchy

userinterfacedesign

function processes

function hierarchy

data model

Problem Analysis

RequirementsDefinition

Design Implementation,Integration & Test

RoughConcept

DetailedConcept

SoftwareDesign

SoftwareSystem

Client/ServerOS/2, MotifMS-WindowsUNIX/RDBs

SNI BS2000COBOL, UTMSESAM, UDS

IBM MVSCOBOL, CICSDB2IMS DB/DC

database model

interface specificationComponent SKONTO is connected with the

aaaaaaaaaSKONTO is

aaaaaaaaaaaaBATT

aaaaaaaaaaaaLOOKUP

integration model

DB definitions, SQL ...

GUI objects

program logicIF kunde = 99999

CASE PlaubaTT = 1IF kunde = nnnnnnn

PlaubaTT, I

system model

Phases in CASE-Tool MAESTRO II

SEtec Process Model

SEtec Result ModelSource: SoftLab, Munich, MAESTRO II (most well-known German CASE-Tool)

Characteristics ?

Page 26: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

26

26DAAD project „Joint Course on Software Engineering“ ©

Unified Software Development Process (USDP)

Process of object-oriented software development due to Jacobson, Booch, Rumbaugh (1999)

Requirements

Analysis

Design

Implementation

Test

Part of the phase ‚Analysis and Definition‘, in which the basic use cases of the systems will be detected:

use case diagrams

Part of the phase ‚Analysis and Definition‘, in which the basic classes of the problem will be detected:

class diagrams

Page 27: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

27

27DAAD project „Joint Course on Software Engineering“ ©

Phases according to Balzert

Balzert: Textbook of Software Technology vol. 1, 2001

Introduction and Overview

1 Fundamentals 2 Object-orientedEnterprise Modelling

V Enterprise Modelling

I SW-Management

1 Bases

2 Planing

3 Organization

4 Personal

5 Leadership

6 Control

III SW-Quality Assurance

1 Bases

2 Quality Assurance

3 Manual Proof Methods

4 Process Quality

5 Product Quality –Components

6 Product Quality –System

1 Planning phase

2 Definition phase

3 Design phase

4 Implementation phase

5 Acceptance and Introduction

6 Maintenance phase

I SW-Development

4 Reorganization3 Re-use2 CASE1 Principles andMethods

IV Cross-sections and Views

Page 28: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

28

28DAAD project „Joint Course on Software Engineering“ ©

1 Planning phase

2 Definition phase

3 Design phase

4 Implementation phase

5 Acceptance and Introduction

6 Maintenance phase

I SW-Development

Characteristics ?

Phases according to Balzert(detail)

Page 29: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

29

29DAAD project „Joint Course on Software Engineering“ ©

Phase model in the Space shuttle Program (NASA)

Facts:• 22 releases (versions, OI = Operational Increment) 1981-2001• development until 2020• each year: a new release• for each release: 2 years development time• several releases at the same time in process• strong effects to project management

Source: M. Zelkovitz, I. Rus: ICSM 2001, p. 119

1990

ValidationMission Preparation

Operational lifetime

1992 1994 1996 1998 2000

Q

O

M

K

I

OI R

elea

se Development

Lifecycle for each OI (Operational Increment)

Page 30: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

30

30DAAD project „Joint Course on Software Engineering“ ©

Project

Design

ConstructionProduction planning

Preparation of work

Production

Test

Contract Begin of production Delivery

1 YearSource: R.Bronsart, SEUH 1996

Special phase model

What is remarkable ?

How to be interpreted?

Page 31: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

31

31DAAD project „Joint Course on Software Engineering“ ©

Phase model of

Samsonite

Page 32: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

32

32DAAD project „Joint Course on Software Engineering“ ©

Test of suitcases ☺

Page 33: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

33

33DAAD project „Joint Course on Software Engineering“ ©

3. Process models

a) Why process models?

b) Overview of existing models

c) Classical and iterative phase model (waterfall model)

d) Alternative phases in phase models

e) Prototyping

f) Spiral model

Page 34: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

34

34DAAD project „Joint Course on Software Engineering“ ©

PrototypingOperational area:Requirements imprecise at the beginning and/or constantly changed

Prototype:runable software system,• Substantial parts of the final product already finished

(e.g. user interface, basic behavior),• Other parts still to be done (e.g. ineffective, special cases)

Application cases:• Prototype (may be thrown away)

(addition of the requirement analysis : rapid prototyping)• Advancement to the final product

(evolutionary software development)

Page 35: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

35

35DAAD project „Joint Course on Software Engineering“ ©

Phases of iterative prototyping

Boyle: Design of Multimedia Learnnig, Prentice Hall Europe (1997), p. 186

Design a solution

Establish theProblem Spaces

ImplementSolution

SummativeEvaluation & Delivery

Evaluate

Characteristics ?

Page 36: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

36

36DAAD project „Joint Course on Software Engineering“ ©

Requirements

Analysis

Design

Implementation

EvaluationEvaluationEvaluation

Dynamic Systems Development Method (DSDM)

Standard non-proprietary RAD method based upon user-driven iterative prototyping (1995)

Feasibility and business study

Placing the system in user environment

Functional prototype iterationsDesign prototype iterations

Page 37: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

37

37DAAD project „Joint Course on Software Engineering“ ©

3. Process models

a) Why process models?

b) Overview of existing models

c) Classical and iterative phase model (waterfall model)

d) Alternative phases in phase models

e) Prototyping

f) Spiral model

Page 38: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

38

38DAAD project „Joint Course on Software Engineering“ ©

Introduction to spiral modelProblem analysis:• goals• alternatives

Risk analysis:• evaluation of

alternatives

Realization:• construction of the product• test

Planning:• next project steps

Review

Characteristics of the phases?

Page 39: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

39

39DAAD project „Joint Course on Software Engineering“ ©

Spiral model due to Boehm (1988)

determination of goals, alternatives and additional requirements of a newspiral cycle

evaluation of alternatives;identification and reduction of risks

planning of next steps, i.e. of the next spiral cycle

construction and test of the current product

end of cycle: Review

project progressin the spiral cycle

Risk analysis:Problem analysis:

Realization:Planning:

Page 40: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

40

40DAAD project „Joint Course on Software Engineering“ ©

The essence of the spiral model

abstract model: meta modelabstraction from other models of SW development(one turn = • one phase or

• development of next prototype or ...)

orients to similar activities of each step (problem analysis, risk analysis, realization, planning, review)risk analysis: comparison of possible alternatives(examples: selection of a programming language, of the A-&D-method, of the staff, usage of tools)

flexible:first turn produce prototypes, next turns correspond to the phasesA&D, design, ...

Page 41: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

41

41DAAD project „Joint Course on Software Engineering“ ©

The phase model as a special case of the spiral model

Pagel, Six p.72

Risk analysis

Operation andmaintenance

R e v i e w sales forecast

Project planPlanning ofanalysis phase

GUI-prototype

Simulation

Analysis

Validation ofproduct definition

Softwaredesign

Codingand

unit test

Integrationand

system test Installation

Acceptance test

Design-planning

Planningof imple-

mentation,integration

and Test

Problem analysis

Realization

Planning

one turn = one phase

Page 42: Topic 3 Software process models · Samsonite. 32 DAAD project „Joint Course on Software Engineering“

42

42DAAD project „Joint Course on Software Engineering“ ©

Evolutionary software development as a special case of the spiral model

Pagel, Six p.73

Risk analysis

sales forecast GUI-prototype

Acceptance test

R e v i e wProject plan

Validation of theprototype

revisedprojectplan

Installation

Validation of the prototype

Prototype 1Prototype n

Usable product

Planningof the second

prototype

Planningof the first

prototype

Operation andmaintenance

Problem analysis

Realization

Planning

one turn = one prototype