Real-Time Embedded Systems Assist. dr. Barbara Koroušić Seljak (01) 4773-363.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
CS3773 Software Engineering Lecture 03 UML Use Cases.
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Architecture Design Process
Unified Modeling (Part I) Overview of UML & Modeling
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© Copyright Eliyahu Brutman Programming Techniques Course.
Itntroduction to UML, page 1 Introduction to UML.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Object Oriented Analysis and Design Using the UML
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Introduction to UML 1 Quick Tour Why do we model? What is the UML? Foundation elements Unifying concepts Language architecture Relation to other OMG technologies.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
An Introduction to Software Architecture
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Introduction to OOAD and the UML
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Basic Characteristics of Object-Oriented Systems
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
UML (Unified Modeling Language)
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
Use Cases UML. Use Cases What are Use Cases?  A statement of the functionality users expect and need, organized by functional units  Different from.
UNIT 1.
Object-Oriented Analysis and Design
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Systems Analysis and Design With UML 2
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Object oriented analysis and design
Analysis models and design models
An Introduction to Software Architecture
Presentation transcript:

Real-Time Embedded Systems Assist. dr. Barbara Koroušić Seljak (01)

Jožef Stefan International Postgraduate School2 Where we have been... (1) Computers inside a system...

Jožef Stefan International Postgraduate School3 Where we have been... (2) ESs must meet requirements of: Real-time. Resource consumption (CPU, memory, power, physical space). Dependability (safety, reliability). Long-life systems (reusability, flexibility, portability). Interoperability.

Jožef Stefan International Postgraduate School4 Where we are going today... Designing and developing real-time software Implementation and performance issues

Jožef Stefan International Postgraduate School5 Designing and developing real- time software 1.Diagramming 2.Practical diagramming methods 3.Designing & constructing software

Jožef Stefan International Postgraduate School6 1. Diagramming

Jožef Stefan International Postgraduate School7 In 1999, General Motors had to recall 3.5 million vehicles because of an anti-lock braking SW defect. Stopping distances were extended by meters. Federal investigators received reports of 2,111 crashes and 293 injuries. A typical design&development process in the past (?) 1.Programmers thought about the problem to be solved. 2.They wrote lines of code to solve it. 3.The code was tested and modified until it was correct. 4.This source code was released as the system documentation.

Jožef Stefan International Postgraduate School8 Today Practically all modern SW tools use diagrams as an integral part of the design & development process! What is a diagram? Partial graphical representation of a system's model, dealing with aspects: Problem recognition. Modularity. Tractability. Sequence. Circumstance.

Jožef Stefan International Postgraduate School9 Why use diagrams? As a DESIGN tool As a COMMUNICATION medium As a MAINTENANCE tool As a DOCUMENTATION technique

Jožef Stefan International Postgraduate School10 ESs are not trivial!

Jožef Stefan International Postgraduate School11 Diagrams for documentation High-level diagrams: Task oriented. Overall system structure + major subsystems. Overall functioning of the design. Interaction of the system with its environment. Functions & interactions of the subsystems. Low-level diagrams: Solution-oriented. Details. System internal information.

Jožef Stefan International Postgraduate School12 Diagrams for maintenance Don’t forget: System maintenance is usually carried out by workers who: Weren’t involved in the development in the first place. Have only a limited understanding of the overall task. Have to learn a lot very quickly to perform even small design changes.

Jožef Stefan International Postgraduate School13 Good diagramming features Small Simple Clear Complete Few abstract symbols Use formal rules The design approach must be stated in terms of the problem not its solution!

Jožef Stefan International Postgraduate School14 Overall diagram set for RT & E systems Always use a diagram set, which is in common use; forms part of accepted design methods; is supported by tools. System requirements/ specifications System context System configuration System architecture System usage System SW/HW structure System & SW behaviour SW distribution System & SW design UML SysML

Jožef Stefan International Postgraduate School15 Design aspects (1) System context: All external entities Entity attributes The relationship of external entitites with the system. System configuration: Identification and specification of the major physical components of the system.

Jožef Stefan International Postgraduate School16 Design aspects (2) System architecture: The system architectural model is driven mainly by system, not SW/HW, aspects. System usage: The design is driven by the needs of the system itself! System SW/HW structure: SW/HW solution independent of implementation techniques.

Jožef Stefan International Postgraduate School17 Design aspects (3) System and SW behaviour: Interactions between SW components and the outside world. Internal interactions between the SW components. Dynamical behaviour of the overall SW structure. Dynamical behaviour of individual SW components.

Jožef Stefan International Postgraduate School18 Design aspects (4) SW distribution: Operational and performance requirements (system responsiveness, safety, degradation and failure modes, test, commissioning and maintenance functions). Information concerning the execution times of individual objects. Timing data for inter-object communication activities. Network timing performance.

Jožef Stefan International Postgraduate School19 2. Practical diagramming methods

Jožef Stefan International Postgraduate School20 The major design techniques Structured / data flow methods: Functional modeling (‘80s) Greatest CASE tool support for the Yourdon & SDL approaches. Object-oriented (OO) methods: Data&functional modeling (’90s) The industry de facto standard: the Unified Modeling Language (UML). AADL, ACME, Wright, ADL.

Jožef Stefan International Postgraduate School21 Diagrams Structured designs Context diagrams Entity relationship diagram State transition diagrams... OO designs Use case diagrams Deployment diagrams Packages Class diagrams...

Jožef Stefan International Postgraduate School22 What is a(n OO) model? An abstract model of a system: 1.Defined by a set of (OO) diagrams. 2.Contains a semantic backplane: i.e., a documentation, such as written use cases, that drive the model elements and diagrams. 3.Its conceptual model (a computer program) attempts to simulate the abstract model.

Jožef Stefan International Postgraduate School23 Well-defined (OO)model Self-consistent Presents multiple levels of abstraction Complete Facilitates communication among the various stakeholders Allows easy changes over time

Jožef Stefan International Postgraduate School24 What is a pattern? Pattern is more than a model. It is a three-part rule, which expresses a relation between: a certain context, a certain system of forces which occurs repeatedly in that context, and a certain SW configuration which allows these forces to resolve themselves.

Jožef Stefan International Postgraduate School25 OO development process (1) OO analysis: 1.Establish system requirements (problem analysis) 2.Develop the ideal SW model and map it onto the HW architecture (structural & behavioural analysis & modeling) 3.Develop the subsystem specification model (further object modeling) OO design: 1.For each processor develop the specification model (physical and interfacing aspects) 2.For each processor develop the implementation model (concurrent SW) 3.For each task produce its sequential code (code- related items).

Jožef Stefan International Postgraduate School26 OO development process (2) Spiral model of a SW process (Boehm, 1988) Recognition of risks!

Jožef Stefan International Postgraduate School27 The Rational Unified Process (RUP; IBM, 2003) Inception: establish a business case for the system. Elaboration: develop an understanding of the problem domain. Construction: system design, programming & testing. Transition: moving the system to the user community.

Jožef Stefan International Postgraduate School28 The Agile Unified Process A ‘lite’ version of the RUP:

Jožef Stefan International Postgraduate School29 The historical development of UML (1) Previous efforts: OOD methods: Shlaer & Mellor, 1988 Coad & Yourdon, 1990 Abbott & Booch, 1991 Jacobson, et al, Objects, types & classes

Jožef Stefan International Postgraduate School30 The historical development of UML (2) Rational Software Corporation, 1994 Unified Method: Rumbaugh - OMT (OOA) Booch (OOD) Jacobson – Objectory (OOSE) OMG (Object Management Group), The UML specification, 1996  UML1.1, 1997 The Three Amigos Rumbaugh Booch Jacobson

Jožef Stefan International Postgraduate School31 The main characteristics of UML Graphical (object) modeling language for complex systems: Specification, design, automatic code generation, documentation. Relatively easy to learn (intuitive) Well-defined (models can be verifiable) Independent of any programming language Great CASE tool support

Jožef Stefan International Postgraduate School32 What does UML include? Model elements, that capture the fundamental modeling concepts and semantics. A notation, for visual rendering of model elements. Rules, that describes idioms of usage. It also provides extensibility and specialization mechanisms to extend the core concepts.

Jožef Stefan International Postgraduate School33 Model elements All fundamental concept: From concrete language constructs (class). To abstract concepts (use case ). Sample design Design mirrored in the UML semantics model

Jožef Stefan International Postgraduate School34 The structure of UML UML diagrams represent three different views of a system model: 1.Functional requirements view 2.Static structural view 3.Dynamic behaviour view Warning: UML is a notation and NOT a methodology!

Jožef Stefan International Postgraduate School35 Functional requirements view Emphasizes the functional requirements of the system from the user's point of view. Includes: Use case diagrams: WHY system is used in WHO uses it!

Jožef Stefan International Postgraduate School36 Functional requirements view 13 types of diagrams what must happen in the system

Jožef Stefan International Postgraduate School37 Static structural view Emphasizes the static structure of the system using: objects, attributes, operations, relationships. Includes: class diagrams (objects, packages, actors), composite structure diagrams.

Jožef Stefan International Postgraduate School38 Static structural view 13 types of diagrams what things must be in the system

Jožef Stefan International Postgraduate School39 Dynamic behaviour view Emphasizes the dynamic behavior of the system by showing collaborations among: objects and changes to the internal states of objects. Includes: sequence diagrams, activity diagrams, state machine diagrams.

Jožef Stefan International Postgraduate School40 Dynamic behaviour view 13 types of diagrams the flow of control and data among the things in the system

Jožef Stefan International Postgraduate School41 Structural elements & diagrams Objects, classes (structured classes, ports), and interfaces Relations (association, generalization, and dependency) Subsystems, components, and packages

Jožef Stefan International Postgraduate School42 Objects, classes, and interfaces Object: a run-time entity that occupies memory at some specific point in time: Has behavior (methods) & data (attributes) Class: a design-time concept that defines the structure and behavior for a set of objects to be created at run-time: Specifies behavior (methods) & data (attributes) Interface: a design time concept that specifies the messages a class receives: Has behavior only (operations)

Jožef Stefan International Postgraduate School43 Relations Primary Relations in UML Associations Normal association Aggregation Composition Generalization Dependency > for templates > for classes > and > for use cases...

Jožef Stefan International Postgraduate School44 Relations

Jožef Stefan International Postgraduate School45 Packages and subsystems Large-Scale Logical Design Packages capture larger scale decompositions that exist at design time (cannot be instantiated). Packages organize your model. Packages define a namespace for managing large numbers of model elements. Large-Scale Physical Design Subsystems capture larger scale decompositions that exist at run-time. Contains objects that collaborate to realize common function purpose (use case) of the subsystem.

Jožef Stefan International Postgraduate School46 Subsystems Provides opaque interfaces to its clients and achieves its functionality through delegation to objects that it owns internally. Contains components & objects on the basis of common run-time functional purpose. Metasubtype of both Classifier & Package. System Subsystem

Jožef Stefan International Postgraduate School47 Components Basic reusable element of software: Organizes objects together into cohesive run-time units that are replaced together. Provides language-independent opaque interfaces.

Jožef Stefan International Postgraduate School48 Behavioral elements & diagrams Actions and activities Operations and methods Activity diagrams Statecharts Interactions Use case and requirements models

Jožef Stefan International Postgraduate School49 UML diagram type usage (1) Use case: Capture requirements in terms of interactions between a system and it’s users. Class: Shows classes, attributes, associations and generalization. Object: Shows selected instances of classes and values for attributes at run time. Sequence: Shows synchronous and asynchronous interactions between objects. State Machine: Shows behavior over time in response to events.

Jožef Stefan International Postgraduate School50 UML diagram type usage (2) Component: Shows large-scale components and their interfaces. Composite Structure: Shows internal structure, ports, collaborations, structured classes. Package: Shows groupings of elements into packages and dependencies between them. Communication: Shows communications between objects (used to be called “collaborations”).

Jožef Stefan International Postgraduate School51 UML diagram type usage (3) Activity: Shows parallel and sequential behaviors connected by data and control flows. Interaction: Shows an overview of activities and interactions. Timing: Shows timing in a variation of sequence / interaction diagrams. Deployment: Shows deployment onto nodes in a specific implementation.

Jožef Stefan International Postgraduate School52 OO analysis (1) A number of UML techniques can come handy here: Use cases A class diagram drawn from the conceptual perspective. An activity diagram to show the work flow of the organization. A state diagram, which can be useful if a concept has an interesting life cycle.

Jožef Stefan International Postgraduate School53 OO analysis (2) Analysis of RT & E systems: Schedulability Scheduling policy Reliability Concurrent tasks Safety & impact of component failure Graph theory for dependence modeling

Jožef Stefan International Postgraduate School54 Use case diagram

Jožef Stefan International Postgraduate School55 OO design Useful UML design techniques: Class diagrams from a SW perspective. Sequence diagrams for common scenarios. Package diagrams to show the organization of the SW. State diagrams for classes with life histories. Deployment diagrams to show the physical layout of the SW.

Jožef Stefan International Postgraduate School56 Sequence diagram

Jožef Stefan International Postgraduate School57 UML for ESs Allows you to: work at a higher level of abstraction; visualize concurrent behavior. 25 % of RT&E projects in 2007 were using UML ( Venture Data Corporation ). Initially not designed for real- time: UML Profile for Modeling Quality of Service and Fault Tolerant Characteristics and Mechanisms; UML profile for schedulability, performance and time (MARTE). UML 1.4 Real-Time UML (UML-RT ROOM) is standard UML (2.0).

Jožef Stefan International Postgraduate School58 UML profiles What is a profile? A UML model, which describes extensions and subsets to UML; the OCL (Object Constraint Language) and stereotype definitions that describe the rules, which in UML 2, are captured in a package.

Jožef Stefan International Postgraduate School59 UML Profile for Modeling Quality of Service and Fault Tolerant Characteristics and Mechanisms Defines stereotypes for properties, such as: performance, dependability, security, integrity, coherence (temporal consistency of data & SW elements), throughput, latency, efficiency, demand, reliability, and availability.

Jožef Stefan International Postgraduate School60 UML profile for Modeling and Analysis of Real-Time and Embedded systems MARTE Adds capabilities for analyzing schedulability & performance properties of UML specifications. Three main packages: 1.Time & concurrent resource modeling package 2.Real-time & embedded application modeling package 3.Real-time & embedded application analysis

Jožef Stefan International Postgraduate School61 RT Profile

Jožef Stefan International Postgraduate School62 Additional diagrams for RT systems System configuration diagrams System architecture diagrams System scope diagrams Node architecture diagrams Processor architecture diagrams Memory map diagrams Tasking diagrams

Jožef Stefan International Postgraduate School63 Concurrency Concurrency architecture refers to: Identification of task threads and their properties Mapping of passive classes to task threads Identification of synchronization policies Task scheduling policies Unit of concurrency in UML is an «active» object: «active» objects aggregate passive semantic objects via composition and delegate asynchronous messages to them. Standard icon is a class box with heavy line.

Jožef Stefan International Postgraduate School64 Tasking diagram Class diagram that shows elements related to the concurrency model: active objects, semaphore objects, message & data queues, constraints & tagged values. May use opaque or transparent interfaces.

Jožef Stefan International Postgraduate School65 EU Project MARTES

Jožef Stefan International Postgraduate School66

Jožef Stefan International Postgraduate School67 Textbooks about UML Douglass, B. P. (2002). Real-Time Design Patterns: Robust Scalable Architectures for Real-Time Systems, Addison-Wesley. Douglass, B. P. (2007). Real-Time UML Workshop for Embedded Systems, Elsevier-Newnes. Fowler, M. (2003). UML Distilled Third Edition, Addison-Wesley. Ambler, S. W. (2004). The Object primer Third Edition, Agile Model-Driven Development with UML 2.0, Cambridge University Press.

Jožef Stefan International Postgraduate School68 How to select a UML tool? Repository Support HTML documentation Pick lists for classes & methods Versioning Printing support Exporting diagrams Robustness New Releases Round-Trip engineering Full UML 2.x support Data modeling Model navigation Diagram views Scripting Platform In the future...

Jožef Stefan International Postgraduate School69 List of UML tools MS, Visio 2002 Professional Rhapsody, Telelogic BridgePoint UML Suite, Mentor Graphics s_byPrice.html ($ 11,500- $ 0) s_byPrice.html

Jožef Stefan International Postgraduate School70 3. Designing and constructing software

Jožef Stefan International Postgraduate School71 Design & construction methods Monolithic (great design plan  implementation): When one person is concerned with the design & build programme. For simple tasks. Modular (modular design plan  design integration  implementation): Pros: Subtasks are handled simultaneously by different designers. Cons: changes to the global values can produce design chaos. Independent or model-based (modular design plan  modular design implementation  integration)

Jožef Stefan International Postgraduate School72 Modular design & construction

Jožef Stefan International Postgraduate School73 Model-based design & construction

Jožef Stefan International Postgraduate School74 Three ways of using UML Sketch - UML is used informally (Fowler): 1.Few diagrams are sketched out and discussed, 2.coding proceeds directly. Blueprint - UML is used to specify the SW structure (Powell): 1.A tool can generate code frames from these models. 2.The developer then adds code directly to the model. 3.Warning: One-to-one correspondence between the UML diagrams and the code! Executable - UML is used as a programming language: The UML action model is designed to allow the model to be translated into any implementation.

Jožef Stefan International Postgraduate School75 The evolution of development

Jožef Stefan International Postgraduate School76 Approaches to using UML as a programming language Model Driven Architecture, MDA (Kleppe, et al.): 1.Build platform- independent model (PIM). 2.Tools can turn a PIM into a platform-specific model (PSM). 3.Further tools generate code from that PSM. Executable UML (xtUML, Mellor and Balcer): 1.Build platform- independent model. 2.Use a model compiler to turn that UML model into a deployable system in a single step. 3.Skeleton code  executable code

Jožef Stefan International Postgraduate School77

Jožef Stefan International Postgraduate School78 MDA ( OMG standard ) Formal specs of the system’s structure & function PIM + technical details, such as middleware, OS, network, CPU characteristics

Jožef Stefan International Postgraduate School79 The model is the embedded code with state machines for modeling concurrent behavior and exploring synchronization issues

Jožef Stefan International Postgraduate School80 xUML

Jožef Stefan International Postgraduate School81 How to use the xUML? (1) System Model Domain identification Defining use cases Iterate the system model Modeling a single domain Classes State machines – one for each class Procedures – one per each state machine Iterating the domain model – abstract the classes by modeling one role per class Iterating between domain and system model

Jožef Stefan International Postgraduate School82 How to use the xUML? (2) Verification and execution Model verification Static – like a syntax check Dynamic – requires real objects and a scenario to execute Model compilation xUML  implementation Drawback: no non-functional requirements: QoS, concurrency! Iterating verification and execution Nucleus BridgePoint

Jožef Stefan International Postgraduate School83 Project failures usually occur when Executable models are not employed Code is allowed to deviate from the models Development processes don’t manage risks through early validation

Jožef Stefan International Postgraduate School84 Choosing a programming language for ESs Ada 95: OO version in 1995; for safety-critical applications C: MISRA-C for safety-related systems Used by 77 % of projects C++: OO language; it is NOT an extended C Used by 44 % of projects Embedded C++: a subset of C++. Java

Jožef Stefan International Postgraduate School85 Implementation and performance issues 1.Analysing and testing source code 2.Mission-critical and safety-critical systems 3.Performance engineering 4.Documentation

Jožef Stefan International Postgraduate School86 1. Analysing and testing source code

Jožef Stefan International Postgraduate School87 SW source code test techniques SW source code testing Assessment of source code quality Assessment of source code behaviour SW source analysis (static analysis) SW code execution (dynamic analysis) Code execution Code inspection

Jožef Stefan International Postgraduate School88 Types of testing

Jožef Stefan International Postgraduate School89 Integrated development & testing

Jožef Stefan International Postgraduate School90 Black-box testing

Jožef Stefan International Postgraduate School91 UML & testing One objective of the UML 2.0 is executable UML (xUML) meaning Code generation Simulation Validation Test generation UML testing profile

Jožef Stefan International Postgraduate School92 UML testing profile

Jožef Stefan International Postgraduate School93 2. Mission-critical and safety- critical systems

Jožef Stefan International Postgraduate School94 Critical systems System in which failure(s) may have significant and far-reaching consequences: Mission-critical: telecommunication switch Safety-critical: airbag deployment system Fault = error Failure = numerical overflow, wrong number computed...

Jožef Stefan International Postgraduate School95 How to prevent failures? Formal specifications using formal specification languages (e.g. VDM) Basic design & programming issues! Dealing with run-time problems: Exception handling Backward error recovery N-version programming Real-world interfacing OSs Processor problems HW-based fault tolerance

Jožef Stefan International Postgraduate School96 3. Performance engineering

Jožef Stefan International Postgraduate School97 Why performance engineering is important? In most projects functional designs ARE correct. However, RT & E SW design is intrinsically driven by the need to meet system time requirements. Major categories of system timing requirements: Control loops Algorithmic processing Human factors Computational processing Response deadlines

Jožef Stefan International Postgraduate School98 Ways of performance modeling Top-down – requirements-driven: Design performance: Who knows! Bottom-up – results-driven: Based on using known data to predict system performance. Middle-out – risk-driven: Performance modeling is all about risk reduction in general.

Jožef Stefan International Postgraduate School99 Some practical issues in performance engineering Basic questions: What? Why? How the results will be used? Which modeling techniques are best suited to the problem? How much is it going to cost in manpower, time & money? Modeling & simulation options: Simple calculations (deterministic) Spreadsheet analysis (deterministic) Modeling tools (non- deterministic / deterministic): Simprocess (graphical modeling tool) Simscript (language- based tool) 5 % of the project costs

Jožef Stefan International Postgraduate School Documentation

Jožef Stefan International Postgraduate School101 Documentation 1.Why documentation is necessary? 2.Documentation structure: Basic questions: What? Who? When? Extend of supply Commercial plan & costing Project plan & management structure Quality plan Overall technical description

Jožef Stefan International Postgraduate School102 Overall technical description Overall system concepts System design philosophy System functional description Equipment (HW) description SW structure SW design techniques System performance features Testing & installation techniques Man-machine interfacing Maintenance & repair techniques Reliability estimates Failure mode behaviour

Jožef Stefan International Postgraduate School103 SW life-cycle documentation Requirements phases Design phases Implementation phases Test, integration & debug phases System functional specifications SW system specifications source code listings SW test documents SW application documents SW installation documents

Jožef Stefan International Postgraduate School104 System functional specifications System functional specs Block diagram description Functional diagram description Requirements specifications Overall system description Subsystem descriptions Functional block diagrams Control schemes Non-functional requirements Functional requirements Development requirements

Jožef Stefan International Postgraduate School105 SW system specifications System system specs Architectural structure Physical structure System levelSubsystem level System structure System inputs & outputs System dynamics system timing System protection Subsystem structure Logical processes Process interfaces Process communication Process synchronization System levelTask level Process models Process scheduling Process timing Process sychronization Process housekeeping & synchronization Task (program structure)

Jožef Stefan International Postgraduate School106 Organization (1) Consultation: JSI / room S6D, (01) , Web page (course material): csd.ijs.si/korousic/korousic.html

Jožef Stefan International Postgraduate School107 Organization (2) Course textbooks: J. Cooling, Software Engineering for Real-Time Systems, Addison-Wesley, 2003; I. Sommerville, Software Engineering, Addison- Wesley, 2004.

Jožef Stefan International Postgraduate School108 Organization (3) Course material: slide copies, books, papers Exam: seminar work OR oral exam May, June, September

Jožef Stefan International Postgraduate School109 Organization (3) Ideas for seminar works: Comparison of programming languages (xUML) Model-driven development SysML/UML for embedded systems Open-source Eclipse platform (UML 2.x metamodel), Domain-specific modeling Reverse-engineering