Software Engineering for Software-tensive Systems: Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de line I troduction II Foundations IV Requirements V Analysis & Design VI Implementation VII Verification & Validation VIIISummary and look III-2 Waterfall Model Prototyping V Model Spiral Model RUP III-3 III-4 Characteristics of Software Development Methodologies The Prototyping Process REQUIREMENTS DETERMINATION BY CUSTOMER [Galin2004] Requirements definition Analysis Design (Historic) Waterfall Model PROTOTYPE DESIGM PROTOTYPE IMPLEMENTATION PROTOTYPE EVALUATION BY CUSTOMER Coding (+ Unit Test) System test stallation and conversion REQUIREMENTS FULFILLED? YES SYSTEM TESTS AND ACCEPTANCE TESTS SYSTEM CONVERSION NO REQUIREMENTS FOR CORRECTIONS, CHANGES AND ADDITIONS Operation and maintenance SYSTEM OPERATION AND MAINTENANCE III-5 III-6 1
V Development Process Requirement analysis system model, construction Specification Requirements documents coarse design specification detailed design design spec. design Implementation modules modul test integration test certification system test tested modules service integrated system verified system certified system system, quality management Spiral Model Process negotiation deployment end of cycling: consensus planning & (re) organization progress: #cycles cumulative cost area evaluation construction & test [Boehm1988] 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-7 III-8 Rational Unified Process (RUP) [RUP1999] iterations III-9 III-10 Life Cycle of System Engineering [Sage&Armstrong2000] Alternative View [Sage&Armstrong2000] III-11 III-12 2
[Sage&Armstrong2000] III-13 III-14 (1) 3V Model (2) Multiple V Model (1) 3V Model (1/2) (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) [Broekman&Notenboom2003] III-15 III-16 3V Model (2/2) (2) Multiple V Model [Broekman&Notenboom2003] 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 III-18 3
Multiple V Model (2/2) [Broekman&Notenboom2003] III-19 III-20 (1) MDA (1) MDA (2) Y-Model (3) Platform-Based Design 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 dependent Model (PIM) Platform Specific Model (PSM) Code (+ Platform, ) UML, Platforms (e.g., CORBA Profile, ) C++ (+ CORBA, ) III-21 III-22 Early Problem Detection in MDA Platform dependent 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! (2) Y-Model Manual coding Standard automatic code generator Qualified code generator Design verifier [Camus&Dion2003] http://www.safeair.org/ http://www.safeair.org/description/d4-2_final_report_v1.7.pdf Programming code Generating code No code test (Automated code test) Automated design verification Time III-23 III-24 4
Application Example: Airbus Tool: Safety Critical Applications Development Environment (SCADE) Application: A340/600 FCSC (Flight Control Secondary Computer): (3) Platform-Based Design Verification Requirements Model automatic (program analysis/model checking) Environment Application Space Application stance Result: 70 % automatically generated code 50 % reduction in development cost reduction in modification cycle time by factor 3 Implementation Resources automatic (compilation/synthesis) Platform Mapping Platform Design-Space Export System Platform Source: Esterel Technologies Platform stance Architectural Space III-25 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: 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 Platform-Based Design Top-Down: Map an instance of the upper platform onto an lower platform considering appropriate constrains. Platform instances Platform abstraction levels Bottom-Up: Find the appropriate platform levels. Define platform level parameters III-27 III-28 Systems Product Lifecycle PURE BASIC RESEARCH INVESTMENT CONCEPTUAL?? DEFINITION MARKET INTRODUCTION GROWTH REVENUE PRODUCTION PROFIT MATURITY OERATIONAL DETERIORATION ROI BREAKEVEN POINT DIVESTMENT DEATH III-29 III-30 5
. Process Management The CMMI Project 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 The CMM tegration 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-31 III-32 CMMI Model Representations Level Process Characteristics Management Visibility Optimizing Focus is on continuous quantitative improvement Staged ML5 ML4 ML3 ML2 ML 1 Capability 0 1 2 3 4 5 Continuous Quantitatively Defined Process is measured and controlled for the organization and is proactive for projects and is often Organization PA PA PA Process itial Process is unpredictable, poorly controlled, and III-33 III-34 Level Process Characteristics Predicted Performance Optimizing Quantitatively Defined itial Focus is on continuous quantitative improvement Process is measured and controlled for the organization and is proactive for projects and is often Process is unpredictable, poorly controlled, and Target N-z Target N-y Target N-x Target N Target N+a Risk III-35 III-36 6
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. (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. troduction to Systems Engineering. Wiley Series in Systems Engineering and Management. Wiley- terscience, March 2000. III-37 III-38 7