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
3 DAAD 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 models
Phase models
Life cycle models
Software development models
Project models
4 DAAD 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)!
5 DAAD project „Joint Course on Software Engineering“ ©
Relevance of process models
Process 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
companies
Certification for ISO 9000
6 DAAD 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 is
SW-specific?
7 DAAD project „Joint Course on Software Engineering“ ©
Performing an activity: basic scheme
(activity = subprocess of a process model)
Source: Balzert, vol. 1, p. 60
Given
artifacts
Role X
Coworker Y
Tools
Changed or
new artifact
Legend:
Activity
Role
Coworker
Model
(Artifact)
Document
(Artifact)
Methods
•Guidelines
•Conventions
•Check lists
•Samples
8 DAAD 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
9 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
10 DAAD 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
11 DAAD project „Joint Course on Software Engineering“ ©Notes
Models are always idealized, they give only a
framework and must allow flexible working
must not hinder work
Different classes of SW development problems
different suitable models
e.g. AI program: gradual evolution
Prototyping model is often used
12 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
13 DAAD 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
14 DAAD project „Joint Course on Software Engineering“ ©Analysis
and
Definition
Analysis
and
Definition
The classical waterfall model (1970)
Design
Design
Implementation
Implementation
Test
Test
Usage and
Maintenance
Usage and
Maintenance
15 DAAD project „Joint Course on Software Engineering“ ©Phases of SW development:
subject and products (overview)
Analysis and Definition
Analysis 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 others
Design
Specification of the structure of the SW (software architecture),
specification of components and their relations
software architecture, detailed design, and others
Implementation
Software architecture is „filled out“: programming of the components
program (code)
Test
Testing of the components, testing of their integration
test cases, test protocols and others
16 DAAD project „Joint Course on Software Engineering“ ©
Analysis
and
Definition
Analysis
and
Definition
The classical waterfall model (1970)
Design
Design
Implementation
Implementation
Test
Test
Usage and
Maintenance
Usage and
Maintenance
Problems ?
17 DAAD 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
18 DAAD project „Joint Course on Software Engineering“ ©
Information flow in SW projects
How the customer explained it
How the Project Leader understood it
How theTester left it How the Programmer
wrote it
How the Business Consultant described it
How the project was documented
How the Software architect designed it
How the customer
was billed How it was supported What the customerreally needed Sour
c e : u n k now n
19 DAAD project „Joint Course on Software Engineering“ ©
Analysis
and
Definition
Analysis
and
Definition
Iterative phase model
Design
Design
Implementation
Implementation
Test
Test
Usage and
Maintenance
Usage and
Maintenance
Problems ?
20 DAAD project „Joint Course on Software Engineering“ ©Cost allocation in the software life cycle
Maintenance
67%
Requirement
analysis
3%
Specification
3%
Design
5%
Coding
7%
Unit
Testing
8%
Integration
Testing
7%
Source: R. Klösch, H.Gall: Objektorientiertes Reverse Engineering. Springer, 1995
21 DAAD 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 %
requirements
review
design
review
code
review
+
unit
test
subsystem
test
system and
acceptance
test
field
faults
faults detected
faults introduced to
the software
22 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
23 DAAD project „Joint Course on Software Engineering“ ©
Phases according to Jacobson
Jacobson: Object-oriented Software Engineering p. 32
Characteristics ?
Requirements
analysis
Preliminary
design
Detailed
design
Coding
Unit testing
Integration
System test
24 DAAD 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
Module
testing
Module
construction
System Integration
Subsystem
definition
System
testing
Subsystem
testing
Characteristics ?
25 DAAD project „Joint Course on Software Engineering“ ©
Requirements
Definition
Design
Detailed
Concept
Software
Design
organization hierarchy organization hierarchy rough data model task processes task hierarchy userinterface design function processes function hierarchy data modelProblem
Analysis
Requirements
Definition
Design
Implementation, Integration & TestRough
Concept
Detailed
Concept
Software
Design
Software
System
Client/Server OS/2, Motif MS-Windows UNIX/RDBs SNI BS2000 COBOL, UTM SESAM, UDS IBM MVS COBOL, CICS DB2 IMS DB/DC database model interface specification Component SKONTO is connected with the aaaaaaaaaSKONTO is aaaaaaaaaaaaBATT aaaaaaaaaaaaLOOKUP integration model DB definitions, SQL ... GUI objects program logic IF kunde = 99999 CASE PlaubaTT = 1 IF kunde = nnnnnnn PlaubaTT, I system modelPhases in CASE-Tool MAESTRO II
SEtec Process Model
SEtec Result Model
Source: SoftLab, Munich, MAESTRO II (most well-known German CASE-Tool)
Characteristics ?
26 DAAD 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
27 DAAD project „Joint Course on Software Engineering“ ©
Phases
according
to Balzert
Balzert: Textbook of Software Technology vol. 1, 2001 Introduction and Overview1 Fundamentals 2 Object-oriented Enterprise 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 Reorganization 3 Re-use 2 CASE 1 Principles and Methods
IV Cross-sections and Views
28 DAAD 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)
29 DAAD 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 Validation Mission Preparation Operational lifetime 1992 1994 1996 1998 2000 Q O M K I OI R e lease Development
Lifecycle for each OI (Operational Increment)
30 DAAD project „Joint Course on Software Engineering“ ©
Project
Design
Construction
Production planning
Preparation of work
Production
Test
Contract
Begin of production
Delivery
1 Year
Source: R.Bronsart, SEUH 1996
Special phase model
What is remarkable ?
31 DAAD project „Joint Course on Software Engineering“ ©
Phase
model of
Samsonite
32 DAAD project „Joint Course on Software Engineering“ ©
Test of suitcases
☺
33 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
34 DAAD project „Joint Course on Software Engineering“ ©
Prototyping
Operational 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
)
35 DAAD 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 the
Problem Spaces
Implement
Solution
Summative
Evaluation & Delivery
Evaluate
Characteristics ?
36 DAAD project „Joint Course on Software Engineering“ ©
Requirements
Analysis
Design
Implementation
Evaluation
Evaluation
Evaluation
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 iterations
Design prototype iterations
37 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
38 DAAD project „Joint Course on Software Engineering“ ©
Introduction to spiral model
Problem analysis:
• goals
• alternatives
Risk analysis:
• evaluation of
alternatives
Realization:
• construction of the product
• test
Planning:
• next project steps
Review
Characteristics
of the phases?
39 DAAD project „Joint Course on Software Engineering“ ©
Spiral model due to Boehm (1988)
determination of goals,
alternatives and additional
requirements of a new
spiral 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:
Reviewproject progress
in the spiral cycle
Risk analysis:
Problem analysis:
Realization:
Planning:
40 DAAD project „Joint Course on Software Engineering“ ©
The essence of the spiral model
abstract model:
meta model
abstraction 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 phases
A&D, design, ...
41 DAAD project „Joint Course on Software Engineering“ ©
The phase model as a special case of the spiral model
Pagel, Six p.72 Risk analysis Operation and maintenance
R e v i e w
sales forecast Project plan Planning of analysis phase GUI-prototype Simulation Analysis Validation of product definition Software design Coding and unit test Integration and system test Installation Acceptance test Design-planning Planning of imple-mentation, integration and Test Problem analysis Realization Planningone turn = one phase
42 DAAD 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