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