Software Engineering for Software-Intensive Systems: III The Development Life Cycle



Similar documents
Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

The most suitable system methodology for the proposed system is drawn out.

Course Computer Science Academic year 2012/2013 Subject Software Engineering II ECTS 6

Classical Software Life Cycle Models

I219 Software Design Methodology

3C05: Unified Software Development Process

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

What CMMI Cannot Give You: Good Software

The Unified Software Development Process

SOFTWARE PROCESS MODELS

F-22 Raptor. Agenda. 1. Motivation

CS4507 Advanced Software Engineering

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

To introduce software process models To describe three generic process models and when they may be used

Software Engineering

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Verification and Validation of Software Components and Component Based Software Systems

Software Development Process

Abstract. 1 Introduction

CMMI and IBM Rational Unified Process

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Software Quality Assurance: VI Standards

An Approach for assessing the Quality of Software for small and medium sized firms

TOGAF usage in outsourcing of software development

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Can ISO, CMMI and Agile Co-exist?

A Capability Maturity Model (CMM)

Chap 1. Introduction to Software Architecture

Software Project Management using an Iterative Lifecycle Model

Foundations of Model-Driven Software Engineering

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Development Life Cycle (SDLC)

Plan-Driven Methodologies

Software Process and Models

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Applying 4+1 View Architecture with UML 2. White Paper

How To Understand The Software Process

Process Models and Metrics

The W-MODEL Strengthening the Bond Between Development and Test

Component Based Development in Software Engineering

Software Lifecycles Models

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

IV. Software Lifecycles

IT3205: Fundamentals of Software Engineering (Compulsory)

Surveying and evaluating tools for managing processes for software intensive systems

CHAPTER. Software Process Models

Leveraging CMMI framework for Engineering Services

Development/Maintenance/Reuse: Software Evolution in Product Lines

Requirements Management Practice Description

Developing in the MDA Object Management Group Page 1

Software Life Cycle Processes

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Managing Small Software Projects - An Integrated Guide Based on PMBOK, RUP, and CMMI

Designing Real-Time and Embedded Systems with the COMET/UML method

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Unit 1 Learning Objectives

Certified Software Quality Engineer (CSQE) Body of Knowledge

CSE 435 Software Engineering. Sept 16, 2015

Advanced Software Engineering. Software Development Processes

Chapter 4 Software Lifecycle and Performance Analysis

Software Development Life Cycle Models - Process Models. Week 2, Session 1

The Role of the Software Architect

A FRAMEWORK FOR INTEGRATING SARBANES-OXLEY COMPLIANCE INTO THE SOFTWARE DEVELOPMENT PROCESS

2. Analysis, Design and Implementation

Christina Wallin ABB Corporate Research Department of Industrial IT Västerås +46 (0)

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

A UML Introduction Tutorial

Test Cases Design for Software Database Provisioning Development

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

Reduce Medical Device Compliance Costs with Best Practices.

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Component-Oriented Engineering

Business Modeling with UML

Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study

What is a life cycle model?

Software: Driving Innovation for Engineered Products. Page

IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3

Application of UML in Real-Time Embedded Systems

Design a medical application for Android platform using model-driven development approach

Umbrella: A New Component-Based Software Development Model

Software Process for QA

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

The profile of your work on an Agile project will be very different. Agile projects have several things in common:

Trends in Embedded Software Development in Europe. Dr. Dirk Muthig

OMG SOA Workshop - Burlingame Oct 16-19, 2006 Integrating BPM and SOA Using MDA A Case Study

Software: Driving Innovation for Engineered Products

IBM Rational systems and software solutions for the medical device industry

Transcription:

Software Engineering for Software-Intensive Systems: III The Development Life Cycle Assistant Professor Dr. 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 III-2

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

III.1 Software Engineering Life Cycle Models Waterfall Model Prototyping V Model Spiral Model RUP III-4

Characteristics of Software Development Methodologies Requirements definition (Historic) Waterfall Model Analysis Design Coding (+ Unit Test) System test Installation and conversion Operation and maintenance III-5

The Prototyping Process [Galin2004] 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 NO REQUIREMENTS FOR CORRECTIONS, CHANGES AND ADDITIONS III-6

V Development Process Requirement analysis Requirements documents service Specification specification certification certified system coarse design design spec. system test verified system detailed design design integration test integrated system system model, construction Implementation modules modul test tested modules system, quality management III-7

Spiral Model Process [Boehm1988] negotiation deployment end of cycling: consensus planning & (re) organization progress: #cycles cumulative cost area evaluation construction & test Negotiation objectives, alternatives, strategies, constraints Evaluation alternatives: Make-or- Buy, risk analysis Construction & Test any SE-Process for partial or full system! Planning Review, Plan next phases III-8

Rational Unified Process (RUP) [RUP1999] iterations III-9

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

Life Cycle of System Engineering [Sage&Armstrong2000] III-11

Alternative View [Sage&Armstrong2000] III-12

[Sage&Armstrong2000] III-13

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

III.3 Embedded System Life Cycle Models (1) 3V Model (2) Multiple V Model III-15

(1) 3V Model (1/2) [Broekman&Notenboom2003] (1) Embedded software Compiled for host Compiled for target platform (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) III-16

3V Model (2/2) Model: covers the definition and simulation of the overall system functionality Implementation aspects are not considered Prototype: is characterized by rapid prototyping hardware specific parameters become important deployment & message scheduling local design addresses the scheduling of tasks on each node Final product: addresses the system development for the final target hardware 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 III-17

(2) Multiple V Model [Broekman&Notenboom2003] III-18

Multiple V Model (2/2) [Broekman&Notenboom2003] III-19

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

III.4 Advanced Life Cycle Models & MDD (1) MDA (2) Y-Model (3) Platform-Based Design 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 Platform Independent Model (PIM) Platform Specific Model (PSM) Code (+ Platform, ) UML, Platforms (e.g., CORBA Profile, ) C++ (+ CORBA, ) III-22

Early Problem Detection in MDA Platform Independent Model (PIM) Platform Specific Model (PSM) Code (+ Platform, ) Check platform independent properties Property-preserving refinement (via automatic generation + annotations) Check platform dependent properties Property-preserving refinement (via automatic generation) Properties still hold Models permit to detect some problems early on: Reduced defect detection costs Reduced costs for defect removal Traceability and portability But this is is a vision only for softwareintensive systems! III-23

(2) Y-Model [Camus&Dion2003] http://www.safeair.org/ http://www.safeair.org/description/d4-2_final_report_v1.7.pdf Manual coding Programming code Standard automatic code generator Qualified code generator Generating code No code test (Automated code test) Design verifier Automated design verification Time III-24

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

(3) Platform-Based Design Requirements Verification automatic (program analysis/model checking) Model Environment Application Space Application Instance Implementation Resources automatic (compilation/synthesis) Platform Mapping Platform Design-Space Export System Platform Platform Instance Architectural Space 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 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 Platform instances Platform abstraction levels III-28

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

Systems Product Lifecycle PURE BASIC RESEARCH MARKET INTRODUCTION GROWTH MATURITY DETERIORATION ROI DEATH? REVENUE PROFIT INVESTMENT? BREAKEVEN POINT CONCEPTUAL DEFINITION PRODUCTION OERATIONAL 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 don t need process, I have really good people advanced technology an experienced manager Process interferes with creativity equals bureaucracy + regimentation isn t 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 III-31

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

CMMI Model Representations Staged Continuous ML5 ML4 ML3 ML2 ML 1 Organization Capability 0 1 2 3 4 5 PA PA PA Process III-33

Level Process Characteristics Management Visibility Optimizing Focus is on continuous quantitative improvement In Out 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 In Out Initial Process is unpredictable, poorly controlled, and reactive In Out III-34

Level Process Characteristics Predicted Performance Optimizing Focus is on continuous quantitative improvement Probability Target N-z Time/$/... Quantitatively Managed Process is measured and controlled Probability Target N-y Time/$/... Defined Process is characterized for the organization and is proactive Probability Time/$/... Target N-x Managed Initial Process is characterized for projects and is often reactive Process is unpredictable, poorly controlled, and reactive Probability Probability. Time/$/... Time/$/... Target N Target N+a Risk III-35

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

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. III-37

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. Addison- Wesley, January 1999. [Sage&Armstrong2000] Andrew P. Sage and James E. Armstrong. Introduction to Systems Engineering. Wiley Series in Systems Engineering and Management. Wiley- Interscience, March 2000. III-38