Download - Topic 3 Software process models
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