Академический Документы
Профессиональный Документы
Культура Документы
University of Paderborn
Software Engineering Group
Outline
I Introduction
II Foundations
III The Development Life Cycle
IV Requirements
V Analysis & Design
VI Implementation
VII Verification & Validation
VIIISummary and Outlook
Holger Giese
III-2
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
III.1
III.2
III.3
III.4
III.5
III.6
III.7
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Holger Giese
Waterfall Model
Prototyping
V Model
Spiral Model
RUP
III-3
Holger Giese
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
Characteristics of Software
Development Methodologies
Requirements
definition
[Galin2004]
REQUIREMENTS
DETERMINATION
BY CUSTOMER
PROTOTYPE
DESIGM
PROTOTYPE
IMPLEMENTATION
Analysis
PROTOTYPE
EVALUATION
BY CUSTOMER
Design
Coding
(+ Unit Test)
REQUIREMENTS
FULFILLED ?
NO
REQUIREMENTS FOR
CORRECTIONS, CHANGES
AND ADDITIONS
YES
SYSTEM TESTS AND
ACCEPTANCE TESTS
System test
Installation
and conversion
SYSTEM CONVERSION
Operation and
maintenance
Holger Giese
III-4
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
SYSTEM OPERATION
AND MAINTENANCE
III-5
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-6
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
V Development Process
Requirement
analysis
Negotiation
Requirements documents
negotiation
service
certified system
Specification
certification
evaluation
cumulative
cost area
verified system
system
test
design spec.
system model,
construction
Holger Giese
modul
test
modules
tested modules
Implementation
alternatives:
any
integration
test
design
alternatives,
strategies, constraints
integrated system
detailed
design
objectives,
Evaluation
deployment
specification
coarse
design
[Boehm1988]
system,
quality management
III-7
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
construction
& test
progress: #cycles
Holger Giese
Planning
Review,
Plan
next phases
III-8
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
[RUP1999]
iterations
Holger Giese
III-9
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III.1
III.2
III.3
III.4
III.5
III.6
III.7
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
III-10
University of Paderborn
Software Engineering Group
Alternative View
[Sage&Armstrong2000]
[Sage&Armstrong2000]
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-11
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-12
University of Paderborn
Software Engineering Group
[Sage&Armstrong2000]
University of Paderborn
Software Engineering Group
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-13
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
III-14
University of Paderborn
Software Engineering Group
(1) 3V Model
(2) Multiple V Model
[Broekman&Notenboom2003]
(2) Processor
High performance host
Target platform emulator
(4) Plant
Statically (signal generator)
Dynamically (simulation model)
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-15
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
Model: covers the definition and simulation of the overall system functionality
University of Paderborn
Software Engineering Group
3V Model (2/2)
III-16
[Broekman&Notenboom2003]
Final product: addresses the system development for the final target hardware
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-17
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-18
University of Paderborn
Software Engineering Group
[Broekman&Notenboom2003]
University of Paderborn
Software Engineering Group
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-19
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
(1) MDA
(1) MDA
(2) Y-Model
(3) Platform-Based Design
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-21
An approach to IT
system specification
that separates the
specification of
system functionality
from the specification
of the implementation
of that functionality on
a particular
technology platform
Design once, build it
on any platform
Holger Giese
Platform Independent
Model (PIM)
Platform Specific
Model (PSM)
Code
(+ Platform, )
Platform Independent
Model (PIM)
Check platform
independent
properties
Check platform
dependent
properties
Property-preserving refinement
(via automatic generation)
Code
(+ Platform, )
Holger Giese
Properties still
hold
C++
(+ CORBA, )
III-22
[Camus&Dion2003]
http://www.safeair.org/
http://www.safeair.org/description/D4-2_final_Report_v1.7.pdf
Manual coding
Programming code
Reduced defect
detection costs
Reduced costs for
defect removal
Property-preserving refinement
(via automatic generation + annotations)
Platform Specific
Model (PSM)
Platforms (e.g.,
CORBA Profile, )
University of Paderborn
Software Engineering Group
(2) Y-Model
Models permit to
detect some
problems early on:
UML,
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
University of Paderborn
Software Engineering Group
III-20
Standard automatic
code generator
Traceability and
portability
Qualified
code generator
No code test
(Automated code test)
Design verifier
Automated design
verification
Time
But
But this
this is
is aa vision
vision
only
only for
for softwaresoftwareintensive
intensive systems!
systems!
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-23
Generating code
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-24
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
Tool:
Safety Critical Applications Development
Environment (SCADE)
Requirements
Verification
Application:
A340/600 FCSC (Flight Control
Secondary Computer):
Model
Application Space
Application Instance
Implementation
Result:
70 % automatically generated code
50 % reduction in development cost
reduction in modification cycle time by
factor 3
automatic (compilation/synthesis)
Platform
Mapping
System
Platform
Resources
Platform
Design-Space
Export
Platform Instance
Architectural Space
Holger Giese
III-25
Holger Giese
University of Paderborn
Software Engineering Group
Idea
[Sangiovanni-Vincentelli2002]
University of Paderborn
Software Engineering Group
Platform-Based Design
Platform:
a
III-26
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Platform-based design:
Bottom-Up:
Top-Down:
meet-in-the-middle
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-27
Platform instances
Platform abstraction levels
Holger Giese
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
PURE
BASIC
RESEARCH
GROWTH
DETERIORATION
I
RO
E
NU
VE
RE
?
IN
VE
ST
ME
NT
MATURITY
DEATH
MARKET
INTRODUCTION
III.1
III.2
III.3
III.4
III.5
III.6
III.7
III-28
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
T
FI
O
PR
BREAKEVEN POINT
CONCEPTUAL
DEFINITION
PRODUCTION
DIVESTMENT
OERATIONAL
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-29
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-30
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
Process Management
Why?
The quality outcome and timeliness of the system development is highly
influenced by the quality of the process used to acquire, develop, and
maintain it.
Common Misconceptions
I dont need process, I have
really good people
advanced technology
an experienced manager
Process
interferes with creativity
equals bureaucracy + regimentation
isnt needed when building prototypes
is only useful on large projects
hinders agility in fast-moving markets
costs too much
http://www.sei.cmu.edu/cmmi/general/general.html
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Holger Giese
III-31
Holger Giese
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
Process Characteristics
Level
Optimizing
Staged
ML3
ML2
Continuous
Quantitatively
Managed
Capability
1 2 3 4 5
ML5
ML4
PA
Organization
Holger Giese
PA
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-33
Target N-y
Process is measured
and controlled
Probability
Time/$/...
Quantitatively
Managed
Managed
Process is characterized
for projects and is often
reactive
Target N-x
Defined
Probability
Time/$/...
Process is characterized
for the organization and
is proactive
Holger Giese
Time/$/...
Risk
Target N+a
.
Target N
Probability
Process is unpredictable,
poorly controlled, and
reactive
Probability
Time/$/...
Initial
In
Out
Out
Managed
Process is characterized
for projects and is often
reactive
In
Out
Initial
Process is unpredictable,
poorly controlled, and
reactive
In
Out
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-34
Target N-z
Probability
Optimizing
Process is measured
and controlled
University of Paderborn
Software Engineering Group
Predicted Performance
Process Characteristics
Focus is on continuous
quantitative improvement
Out
In
University of Paderborn
Software Engineering Group
Level
In
Focus is on continuous
quantitative improvement
Process is characterized
for the organization and
is proactive
PA
Process
Management Visibility
Defined
ML 1
III-32
III.1
III.2
III.3
III.4
III.5
III.6
III.7
Time/$/...
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-35
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-36
University of Paderborn
Software Engineering Group
University of Paderborn
Software Engineering Group
[Boehm1988]
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-37
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-38