Professional Documents
Culture Documents
Sefsis III
Sefsis III
Software Engineering for Software-Intensive Systems: III The Development Life Cycle
Assistant Professor Dr. Holger Giese Software Engineering Group Room E 3.165 Tel. 60-3321 Email: hg@upb.de
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
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-2
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-3
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-4
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-5
[Galin2004]
NO
III-6
V Development Process
Requirement analysis
Requirements documents
service
specification
verified system
coarse design
test
integrated system
detailed design
design
Implementation
modul test
modules
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
[Boehm1988]
objectives,
alternatives, strategies, constraints Make-orBuy, risk analysis SE-Process for partial or full system!
deployment
cumulative cost area end of cycling: consensus
Evaluation
alternatives:
Planning
Review, Plan
next phases
III-8
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-9
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-10
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-11
Alternative View
[Sage&Armstrong2000]
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-12
[Sage&Armstrong2000]
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
III-14
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-15
[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-16
3V Model (2/2)
Model: covers the definition and simulation of the overall system functionality
Implementation aspects are not considered hardware specific parameters become important deployment & message scheduling local design addresses the scheduling of tasks on each node typical problem: limited performance of the target system
http://www.vmars.tuwien.ac.at/projects/setta
http://www.vmars.tuwien.ac.at/projects/setta/docs/meetings/020121p/final_document.pdf
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
[Broekman&Notenboom2003]
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-18
[Broekman&Notenboom2003]
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
III-20
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-21
(1) MDA
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
UML,
Code (+ Platform, )
C++ (+ CORBA, )
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-22
Code (+ Platform, )
But But this this is is a a vision vision only only for for softwaresoftwareintensive intensive systems! systems!
III-23
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
(2) Y-Model
Manual coding
[Camus&Dion2003] http://www.safeair.org/
http://www.safeair.org/description/D4-2_final_Report_v1.7.pdf
Programming code Standard automatic code generator Qualified code generator Design verifier
Generating code No code test (Automated code test) Automated design verification Time
III-24
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Application: A340/600 FCSC (Flight Control Secondary Computer): Result: 70 % automatically generated code 50 % reduction in development cost reduction in modification cycle time by factor 3
Source: Esterel Technologies Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-25
Model
Application Space
Application Instance Implementation
automatic (compilation/synthesis)
Architectural Space
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-26
Idea
[Sangiovanni-Vincentelli2002]
Platform:
a
family of architectures satisfying a set of constraints imposed to allow the reuse of hardware and software components.
Platform-based design:
meet-in-the-middle
approach: In the top-down design flow, designers map an instance of the upper platform to an instance of the lower, and propagate design constraints. exposing key resource limitations hiding inessential implementation details
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-27
Platform-Based Design
Top-Down:
Map an instance of the upper platform onto an lower platform considering appropriate constrains.
Bottom-Up:
Find the appropriate platform levels. Define platform level parameters
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-28
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-29
GROWTH
MATURITY
DETERIORATION
MARKET INTRODUCTION
DEATH
I O R
UE N VE RE
?
IN VE ST ME N
O PR
FI
?
T
BREAKEVEN POINT
DIVESTMENT
III-30
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 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
Process
http://www.sei.cmu.edu/cmmi/general/general.html III-31
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Software: CMM for Software v2.0 Draft C, Systems Engineering: EIA 731 Systems Engineering
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-32
Continuous
5
Organization
Holger Giese
PA
PA
Process
III-33
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
Level Optimizing
Process Characteristics
In
Management Visibility
Out
Quantitatively Managed
In
Out
Defined
In
Out
Managed
Process is characterized for projects and is often reactive Process is unpredictable, poorly controlled, and reactive
In
Out
Initial
In
Out
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-34
Level Optimizing
Process Characteristics
Probability
Predicted Performance
Target N-z
Time/$/... Probability
Quantitatively Managed
Time/$/... Probability
Defined
Process is characterized for the organization and is proactive Process is characterized for projects and is often reactive Process is unpredictable, poorly controlled, and reactive
Time/$/... Probability
Target N+a
Managed
Target N-x
Target N-y
Probability
Time/$/...
Target N
Initial
Time/$/...
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-35
Risk
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-36
III-37
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle
III-38