topic 3 software process models

21
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 2 DAAD 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

Upload: others

Post on 09-Feb-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

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

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

2

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

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

3

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

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?

4

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

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

5

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

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

6

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

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

7

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

14DAAD project „Joint Course on Software Engineering“ ©

Analysisand

Definition

Analysisand

Definition

The classical waterfall model (1970)

DesignDesign

ImplementationImplementation

TestTest

Usage and MaintenanceUsage and

Maintenance

8

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

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 ?

9

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

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

10

19DAAD project „Joint Course on Software Engineering“ ©

Analysisand

Definition

Analysisand

Definition

Iterative phase model

DesignDesign

ImplementationImplementation

TestTest

Usage and MaintenanceUsage and

Maintenance

Problems ?

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

11

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

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

12

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

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 ?

13

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 = 99999CASE PlaubaTT = 1

IF 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 ?

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

14

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

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)

15

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

IO

I Rel

ease Development

Lifecycle for each OI (Operational Increment)

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?

16

31DAAD project „Joint Course on Software Engineering“ ©

Phase model of

Samsonite

32DAAD project „Joint Course on Software Engineering“ ©

Test of suitcases ☺

17

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

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)

18

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 ?

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

19

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

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?

20

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:

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, ...

21

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

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