Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

University of Paderborn Software Engineering Group

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

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
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-2

University of Paderborn Software Engineering Group

III The Development Life Cycle


III.1 III.2 III.3 III.4 III.5 III.6 III.7 Software Engineering Life Cycle Models System Engineering Life Cycle Models Embedded System Life Cycle Models Advanced Life Cycle Models & MDD Process Improvement Discussion & Summary Bibliography

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-3

University of Paderborn Software Engineering Group

III.1 Software Engineering Life Cycle Models


Waterfall Model Prototyping V Model Spiral Model RUP

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-4

University of Paderborn Software Engineering Group

Characteristics of Software Development Methodologies


Requirements definition Analysis

(Historic) Waterfall Model


Design Coding (+ Unit Test) System test Installation and conversion Operation and maintenance

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-5

University of Paderborn Software Engineering Group

The Prototyping Process


REQUIREMENTS DETERMINATION BY CUSTOMER PROTOTYPE DESIGM PROTOTYPE IMPLEMENTATION PROTOTYPE EVALUATION BY CUSTOMER REQUIREMENTS FULFILLED ? YES SYSTEM TESTS AND ACCEPTANCE TESTS SYSTEM CONVERSION SYSTEM OPERATION AND MAINTENANCE
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

[Galin2004]

NO

REQUIREMENTS FOR CORRECTIONS, CHANGES AND ADDITIONS

III-6

University of Paderborn Software Engineering Group

V Development Process
Requirement analysis

Requirements documents
service

certified system Specification certification

specification
verified system

coarse design

system design spec.

test
integrated system

detailed design

design

integration test tested modules

Implementation

modul test

system model, construction


Holger Giese

modules

system, quality management


III-7

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

University of Paderborn Software Engineering Group

Spiral Model Process


Negotiation
negotiation evaluation

[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:

Construction & Test


any

planning & (re) organization


progress: #cycles
Holger Giese

construction & test

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

Rational Unified Process (RUP)


[RUP1999] iterations

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-9

University of Paderborn Software Engineering Group

III The Development Life Cycle


III.1 III.2 III.3 III.4 III.5 III.6 III.7 Software Engineering Life Cycle Models System Engineering Life Cycle Models Embedded System Life Cycle Models Advanced Life Cycle Models & MDD Process Improvement Discussion & Summary Bibliography

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-10

University of Paderborn Software Engineering Group

Life Cycle of System Engineering


[Sage&Armstrong2000]

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-11

University of Paderborn Software Engineering Group

Alternative View

[Sage&Armstrong2000]

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]

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-13

University of Paderborn Software Engineering Group

III The Development Life Cycle


III.1 III.2 III.3 III.4 III.5 III.6 III.7 Software Engineering Life Cycle Models System Engineering Life Cycle Models Embedded System Life Cycle Models Advanced Life Cycle Models & MDD Process Improvement Discussion & Summary Bibliography

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-14

University of Paderborn Software Engineering Group

III.3 Embedded System Life Cycle Models


(1) 3V Model (2) Multiple V Model

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-15

University of Paderborn Software Engineering Group

(1) 3V Model (1/2)


(1) Embedded software
Compiled for host Compiled for target platform

[Broekman&Notenboom2003]

(2) Processor
High performance host Target platform emulator

(3) Rest of the embedded system


Simulated on the host Experimental hardware platform Prototype hardware platform

(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

University of Paderborn Software Engineering Group

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

Prototype: is characterized by rapid prototyping

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

University of Paderborn Software Engineering Group

(2) Multiple V Model

[Broekman&Notenboom2003]

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-18

University of Paderborn Software Engineering Group

Multiple V Model (2/2)

[Broekman&Notenboom2003]

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-19

University of Paderborn Software Engineering Group

III The Development Life Cycle


III.1 III.2 III.3 III.4 III.5 III.6 III.7 Software Engineering Life Cycle Models System Engineering Life Cycle Models Embedded System Life Cycle Models Advanced Life Cycle Models & MDD Process Improvement Discussion & Summary Bibliography

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-20

University of Paderborn Software Engineering Group

III.4 Advanced Life Cycle Models & MDD


(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

University of Paderborn Software Engineering Group

(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

Platform Independent Model (PIM)

UML,

Platform Specific Model (PSM)

Platforms (e.g., CORBA Profile, )

Code (+ Platform, )

C++ (+ CORBA, )

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-22

University of Paderborn Software Engineering Group

Early Problem Detection in MDA

Platform Independent Model (PIM) Check platform independent properties

Models permit to detect some problems early on:

Property-preserving refinement (via automatic generation + annotations)

Platform Specific Model (PSM)

Check platform dependent properties

Reduced defect detection costs Reduced costs for defect removal

Traceability and portability

Property-preserving refinement (via automatic generation)

Code (+ Platform, )

Properties still hold

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

University of Paderborn Software Engineering Group

(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

University of Paderborn Software Engineering Group

Application Example: Airbus


Tool: Safety Critical Applications Development Environment (SCADE)

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

University of Paderborn Software Engineering Group

(3) Platform-Based Design


Requirements Verification automatic (program analysis/model checking)
Environment

Model

Application Space
Application Instance Implementation

automatic (compilation/synthesis)

Platform Mapping System Platform

Resources Platform Design-Space Export


Platform Instance

Architectural Space

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-26

University of Paderborn Software Engineering Group

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

University of Paderborn Software Engineering Group

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

Platform instances Platform abstraction levels

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-28

University of Paderborn Software Engineering Group

III The Development Life Cycle


III.1 III.2 III.3 III.4 III.5 III.6 III.7 Software Engineering Life Cycle Models System Engineering Life Cycle Models Embedded System Life Cycle Models Advanced Life Cycle Models & MDD Process Improvement Discussion & Summary Bibliography

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-29

University of Paderborn Software Engineering Group

Systems Product Lifecycle


PURE BASIC
RESEARCH

GROWTH

MATURITY

DETERIORATION

MARKET INTRODUCTION

DEATH

I O R

UE N VE RE

?
IN VE ST ME N

O PR

FI

?
T

BREAKEVEN POINT

CONCEPTUAL DEFINITION PRODUCTION OERATIONAL


Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

DIVESTMENT

III-30

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

University of Paderborn Software Engineering Group

The CMMI Project


The CMM Integration Project was formed to: Establish a framework to integrate current and future models Build an initial set of integrated models CMMI models that cover both systems engineering and software engineering might best be described as "engineering models." They are intended to cover the enterprise and include all the processes that result in products or services.

The source models for the CMMI include:

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

University of Paderborn Software Engineering Group

CMMI Model Representations


Staged
ML5 ML4 ML3 ML2 ML 1 Capability 1 2 3 4
0
PA

Continuous
5

Organization
Holger Giese

PA

PA

Process
III-33

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

University of Paderborn Software Engineering Group

Level Optimizing

Process Characteristics
In

Management Visibility
Out

Focus is on continuous quantitative improvement

Quantitatively Managed

Process is measured and controlled

In

Out

Defined

Process is characterized for the organization and is proactive

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

University of Paderborn Software Engineering Group

Level Optimizing

Process Characteristics
Probability

Predicted Performance
Target N-z

Focus is on continuous quantitative improvement

Time/$/... Probability

Quantitatively Managed

Process is measured and controlled

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

University of Paderborn Software Engineering Group

III The Development Life Cycle


III.1 III.2 III.3 III.4 III.5 III.6 III.7 Software Engineering Life Cycle Models System Engineering Life Cycle Models Embedded System Life Cycle Models Advanced Life Cycle Models & MDD Process Improvement Discussion & Summary Bibliography

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-36

University of Paderborn Software Engineering Group

III.6 Discussion & Summary


We have nearly the same life cycle models in the different disciplines. Advanced life cycle models and modeldriven approaches try to increase the degree of automation and decrease timeto-market. Especially for organizations which develop large-scale software-intensive systems process improvement is crucial.
Holger Giese
WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-37

University of Paderborn Software Engineering Group

III.7 Bibliography (Additional ones)


[Boehm1988] Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE Computer, 21(5):61 72, 1988. [Camus&Dion2003] Jean-Luis Camus and Bernard Dion. Efficient development of airborne software with scade suite. 2003. [Galin2004] D. Galin, Software Quality Assurance: From theory to implementation. Harlow, England: Pearson Addison Wesley, 2004. [RUP1999] Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process. The Addison-Wesley Object Technology Series. AddisonWesley, January 1999. [Sage&Armstrong2000] Andrew P. Sage and James E. Armstrong. Introduction to Systems Engineering. Wiley Series in Systems Engineering and Management. WileyInterscience, March 2000.

Holger Giese

WS05/06 Software Engineering for Software-Intensive Systems III The Development Life Cycle

III-38

You might also like