MARTE Tutorial An OMG standard: UML profile to develop Real-Time and Embedded systems Overview, NFP / VSL, GCM.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 11 Brief introduction to the UML Specification (Based on UML Superstructure.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel.
Architecture Representation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Copyright W. Howden1 Lecture 2: Elaboration Tasks and Domain Modeling.
Lecture a: Additional UML Models: Package, Activity, Deployment Lecture b: Generalization, Aggregation and Additional Domain Model Notation Copyright W.
MDE In A Sales Management System: A Case Study © 2008 INRIA, TUD & SAP MDE In A Sales Management System: A Case Study Mathias Fritzsche, Hugo Bruneliere,
Comparing M2T & M2M Complementary Approaches © 2008 INRIA, University of York & SINTEF Comparing M2T & M2M Complementary Approaches Hugo Bruneliere,
UML Class Diagrams: Basic Concepts. Objects –The purpose of class modeling is to describe objects. –An object is a concept, abstraction or thing that.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Advanced Applications Of Model-to-Model Transformation © 2008 INRIA Advanced Applications Of Model-to-Model Transformation Hugo Bruneliere & Frédéric.
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
SEG4110 – Advanced Software Design and Reengineering
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
An Introduction to Software Architecture
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
I T & S A e r o s p a c eD e f e n c e THALES Research & Technology THALES recommendations for the final OMG standard on Query / Views / Transformations.
Specializing and extending the UML
UML Profiles Eclipse ECESIS Project The UML Profile technology SOFTEAM 144 Ave des Champs Elysées Paris, France
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
SaveUML System design. System overview Possible...
Usage of OCL April Usage of OCL for design guidelines of models Christian Hein, Fraunhofer FOKUS April 2006.
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
WP 3.3 © Copyright Xactium, TUBS & TUD How to build a set of DSLs: from Theory to Practise Xactium, TUBS, Jendrik Johannes (TUD)
1 Introduction to Software Engineering Lecture 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
C. André, J. Boucaron, A. Coadou, J. DeAntoni,
Introduction to Model-Driven Simulation © 2008 SAP, TU Dresden, XJ Technologies Introduction to Model-Driven Simulation Mathias Fritzsche 1, Jendrik.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Laboratory of Model Driven Engineering for Embedded Systems An Execution Framework for MARTE-based Models UML&AADL’2008 workshop Belfast, Northern Ireland.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
1 Dealing with AADL End-to-end Flow Latency in UML MARTE AOSTE INRIA/I3S Sophia Antipolis, France S-Y. Lee, F. Mallet, R. de Simone.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
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.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this.
Interpreting the Object Constraint Presented by: Ed Kausmeyer.
UML (Unified Modeling Language)
Réalisé avec le soutien de MARTE A brief overview of the MARTE profile (Modeling and Analysis of Real-Time and Embedded Systems) Based on an in-depth tutorial.
Course Outcomes of Object Oriented Modeling Design (17630,C604)
SysML v2 Formalism: Requirements & Benefits
Systems Analysis and Design With UML 2
Model-Driven Analysis Frameworks for Embedded Systems
Chapter 2, Modeling with UML, Part 4 UML 2 Metamodel
UML profiles.
Software Architecture & Design
Presentation transcript:

MARTE Tutorial An OMG standard: UML profile to develop Real-Time and Embedded systems Overview, NFP / VSL, GCM

Context of This Work The present courseware has been elaborated in the context of the MODELPLEX European IST FP6 project (http://www.modelplex.org/). Co-funded by the European Commission, the MODELPLEX project involves 21 partners from 8 different countries. MODELPLEX aims at defining and developing a coherent infrastructure specifically for the application of MDE to the development and subsequent management of complex systems within a variety of industrial domains. To achieve the goal of large-scale adoption of MDE, MODELPLEX promotes the idea of a collaborative development of courseware dedicated to this domain. The MDE courseware provided here with the status of open-source software is produced under the EPL 1.0 license. Modelplex MARTE Tutorial – January 2009

Agenda Part 1 Marte Overview Part 2 A component model for RT/E Part 3 Non-functional properties modeling Modelplex MARTE Tutorial – January 2009

UML Profiling Basics Profile: Lightweight Extension / Specialization of the UML metamodel For particular application domains Stereotypes Extension / Specialization of existing metaclasses Contains a set of “tagged values” (i.e. domain specific properties) Constraints On the usage of stereotypes On the usage of constructs provided by the source metamodel Notation options (i.e. icons, figures) Modelplex MARTE Tutorial – January 2009 « profile » C++Profile MyModel Uml2::Kernel Operation MyClass «apply» myOpA() myOpB() « cppVirtual » myOpC() « stereotype » cppVirtual

Design Pattern Adopted for the MARTE Profile Stage 1  Description of MARTE domain models (DV) Purpose: Formal description of the concepts required for MARTE Techniques: Meta-modeling Stage 2  Mapping of MARTE domain models towards UML2: UML Representation (UR) Purpose: MARTE domain models design as a UML2 extensions Techniques: UML2 profile Modelplex MARTE Tutorial – January 2009

How to read this tutorial Within next slides, we may shown models at different levels of abstraction. We will clarify each level through following pictograms For Domain View level For UML Profile View Level For User Model View Level Modelplex MARTE Tutorial – January 2009

Example: Domain model  Profile  Usage Modelplex MARTE Tutorial – January 2009

Relationships with other OMG Standards Relationships with generic OMG standards Profile the UML2 superstructure meta-model Replace UML Profile for SPT (Scheduling, Performance and Time) Use OCL2 (Object Constraints Language) Relationships with RT&E specific OMG standards Existing standards The UML profile for Modeling QoS and FT Characteristics and Mechanisms Addressed through MARTE NFP package (in a way detailed in the NFP presentation) The UML profile for SoC (System On Chip) More specific than MARTE purpose The Real-Time CORBA profile Real-Time CORBA based architecture can be annotated for analysis with Marte The UML profile for Systems Engineering (SysML) Specialization of SysML allocation concepts and reuse of flow-related concepts Ongoing discussion to include VSL in next SysML version Overlap of team members Modelplex MARTE Tutorial – January 2009

Extracted from S.Gerard (ECRTS07) MARTE Overview Foundations for RT/E systems modeling and analysis:  CoreElements  NFPs Time Generic resource modeling Generic component modeling Allocation Modelplex MARTE Tutorial – January 2009 Specialization of foundations for annotating model for analysis purpose:  Generic quantitative analysis  Schedulability analysis  Performance analysis Specialization of MARTE foundations for modeling purpose (specification, design, …):  RTE model of computation and communication Software resource modeling Hardware resource modeling Extracted from S.Gerard (ECRTS07)

MARTE Frontiers and Challenges MARTE define the language constructs only! Common patterns, base building blocks, standard NFP annotations Generic constraints that do not force specific execution models, analysis techniques or implementation technologies It does not cover methodologies aspects: Interface-Based Design, Design Space Exploration Means to manage refinement of NFP measurement models Concrete processes to storage, bind, and display NFP context models Mapping to transform MoCCs into analysis models Modelplex MARTE Tutorial – January 2009 MARTE is to the RTES domain as UML to the System & Software domain: a family of large and open specification formalisms!

Agenda Part 1 Marte Overview Part 2 A component model for RT/E Part 3 Non-functional properties modeling Modelplex MARTE Tutorial – January 2009

Component-based paradigms in the RTE domain Component architectures are increasingly used in RTE execution platforms Need for manageable and reusable pieces of software Key examples: Lightweight-CCM, SCA, Autosar Concept of component also used to structure System / Software engineering processes Entities under analysis/design broken down into a series of components Applicable at different stages of the process Different kind: active vs. passive (e.g., UML active classes) Examples of related languages: SysML, AADL Modelplex MARTE Tutorial – January 2009 There is a need to provide modeling constructs to support these concepts at different levels of abstraction

What is a component in UML? UML distinguishes the notions of structured class and component Modelplex MARTE Tutorial – January 2009 The kernel of the language defines Class and Interface StructuredClasses defines Port and Connector and provide the ability to describe a Class as an assembly of parts Basic and PackagingComponent define the notion of component realization and adds packaging capabilities StructuredClasses => Basis for UML composite structure diagrams Components => Software components (e.g. EJB, CORBA) along with their related artifacts Depending on the context, will make use of StructuredClasses, BasicComponents, PackgingComponents… and will call it “a component” ! In any case, no support for flow-oriented communications

General Component Model Introduced to cope with various component-based models SysML, Spirit, AADL, Lightweight-CCM, EAST-ADL2, Autosar Does not imply any specific model of computation Relies mainly on UML structured classes, on top of which a support for SysML blocks has been added Atomic and non-atomic flow ports Flow properties and flow specifications But also providing a support for Lightweight-CCM, AADL and EAST-ADL2, Spirit and Autosar Modelplex MARTE Tutorial – January 2009 The general component model introduced in this specification proposes mainly refinements to the UML structured classes. This model provides a common denominator among various component models, which in principle do not target exclusively the real-time and embedded domain. The purpose is to provide in MARTE a model as general as possible, that is not tied to specific execution semantics, on which real-time characteristics can be applied later on. The MARTE general component model relies mainly on UML structured classes, on top of which a support SysML blocks has been added. Providing a support for Lightweight-CCM, AADL and EAST-ADL2 have also influenced the definition of some refinements of the MARTE General Component Model.

The MARTE GCM subprofile Modelplex MARTE Tutorial – January 2009

Example of component definition Atomic flow port typed by a Classifier Modelplex MARTE Tutorial – January 2009 Complex flow port typed by a flow specification Figure 11.18 illustrates a Trajectory component used in a Flight Management System inspired from an avionics textbook. This component computes a trajectory and generates continuous navigation commands to other equipment. Trajectory depends on three components, defined in related packages, to perform its tasks: FlightPlan, Location and Database. Revised submission of the UML profile for MARTE p. 139 Trajectory makes use of flight plan data, as well as the current plane location to perform computations. It explicitly calls the getLocation and getFlightPlan required services, to access these data when needed. These services are defined in the LocationAccess and FlightPlanAccess interfaces, bound to two dedicated message ports. Trajectory also makes use of performance and fuel consummation parameters stored in its cache. It happens that a pilot changes these parameters, initially stored in the database, when the FMS is in operation. If so, the Database component notifies Trajectory that new parameters need to be taken into account. This information is pushed through an atomic flow port to the Trajectory component. The icon indicates that the direction of the Trajectory flow port is “in”. The flow port is typed by a ParameterUpdated signal that contains new parameter data. When computations are completed, Trajectory generates navigation commands as a data flow specified by the NavCommand flow specification. The data flow is transmitted to external equipment through a dedicated flow port. The icon indicates that the port is typed by a flow specification and therefore it is not atomic. Standard UML port typed by a class that uses the LocationAccess interface

Example of component usage Outgoing atomic flow port Incoming atomic flow port Modelplex MARTE Tutorial – January 2009 UML delegation connector used with a non-atomic flow port UML delegation connector used with an atomic flow port Delegation connector, Assembly connectors Figure 11.19 illustrates the internal structure of the simple FMS. It shows how the Trajectory component, along with FlightPlan, Location and Database, is used as a part of the FlightMangementSystem composite structure. One can distinguish boundary ports, owned by FlightManagementSystem and defined at the component boundaries. These ports relay incoming data inside a component (e.g., cdsCom, cdsDisplay, irs, radio) or outgoing data to other connected components (e.g., extNav). The other ports indicated in the composite structure relate to component parts (e.g., fp, loc, update, nav, owned by the :Trajectory part). These ports are used to tie parts together using connectors and define a component assembly. Within a component assembly, connected ports need to define compatible types and directions. Message ports need to be typed by a common interface (e.g., PlanAccess), a left-hand port providing this interface (e.g., traj) and a righthand port requiring this interface (e.g., fp). Flow ports need to be typed by a common flow element or flow-specification (e.g., ParameterUpdated), with opposite directions on the left-hand and right-hand ports (e.g. ,src and handler). A boundary port can be connected to a port owned by a part in order to relay a service invocation or a data flow to the component assembly (e.g., cdsDisplay and cds). In that case, port directions are relayed as well

Agenda Part 1 Marte Overview Part 2 A component model for RT/E Part 3 Non-functional properties modeling Modelplex MARTE Tutorial – January 2009

NFP tutorial Goals To give a “MARTE NFPs” background, yes, but also… To know its main design rationales To know its modeling capabilities/alternatives and to learn how and when to use them Modelplex MARTE Tutorial – January 2009 This talk deals with two main aspects in real-time system verification: 1) building analyzable UML models, and 2) model integration for multiple verification techniques. We will show how MARTE specializes UML to specify analyzable embedded systems, what are its frontiers and limitations, and what is still needed to reach the abovementioned objectives at industrial level.

Non-Functional Properties An information of a modeled system, or system part, which is not related to its functional purpose (e.g., latencies, memory size, power consumption) Modelplex MARTE Tutorial – January 2009 Information used to: Static V&V: performance prediction, resource usage evaluation, … Dynamic configuration: resource management, mode changes, … Should include design process information: How information was obtained (estimations, measurement,…)? How information was calculated (derived parameters, refinement)? How accurate information is?

Previous Work Main known approaches: OMG approaches: NFR Framework: an approach to evaluate different quality goals and their interference. CQML (Aagedal): language for expressing qualities in contract-aware components (no semantic link to execution model) QCCS: it enhances CQML by providing refinement capabilities and a link to a basic execution model (operation, event identification) OMG approaches: SPT Profile: Tag Value Language (TVL) for expressing mathematical, logical and basic time expressions. QoS Profile (based on CQML): QoS value qualifiers, required an offered constraints (assume/guarantee component interfaces), catalog approach. Modelplex MARTE Tutorial – January 2009

The MARTE’s NFP Modeling Framework (NFPs Profile + VSL) A set of extensions to specify semantically rich non-functional annotations Modelplex MARTE Tutorial – January 2009 NFPs sub-profile  based on the QoS Profile: Measurements: magnitude + unit (e.g., energy, data size, duration) Qualifiers: Value source, statistical measure, value precision,… Value Specification Language (VSL)  based on TVL and OCL: Mathematical expressions (arithmetic, logical, …) Time expressions (delays, periods, trigger conditions,…) Variables: placeholders for unknown analysis parameters.

NFP Framework: Basic Description Modelplex MARTE Tutorial – January 2009 NFP Framework: Basic Description

The NFPs Profile Three main stereotypes: Nfp, Nfptype, NfpConstraint, Unit A predefined library of Units and NfpTypes: Power, Frequency, DataSize, DataTxRate, Duration, BoundDuration,… A set of generic qualifier for these NFP Types A placeholder for “expressions” in addition to the actual “value”. Three mechanism to annotate NFP values: Tagged Values InstanceSpecification Slots Constraints Modelplex MARTE Tutorial – January 2009

Extending UML Expressiveness for NFPs CAN Bus with Pure UML CAN Bus with MARTE’s NFP Modelplex MARTE Tutorial – January 2009

Basic NFP Annotation Mechanism (Slots) 1) Declare NFP types Modelplex MARTE Tutorial – January 2009 - Define measurement units and conversion parameters - Define NFP types with qualifiers 2) Declare NFPs in user models - Define classifiers and their attributes using NFP types - Such attributes are tagged as «nfp» 3) Specify NFP values - Instantiate classifiers and specify their slot values using VSL

The Value Specification Language Formally defined (unlike TVL) Provide a metamodel based on the UML one (DataTypes & ValueSpecifications) A subset of additional metaclasses are implemented as Stereotypes (DataTypes) Expression metaclasses are extended as an orthogonal language. MARTE proposes a grammar implementation It may be implemented by a separated metamodel (e.g. based on Ecore) A extended system of data types: Composite types: Tuples, Choice, Collection types Subtypes: bounded subtype A extended language for expressions: Primitives, Composites, Expression&Variables, Time Expressions. Three mechanism to annotate NFP values: Tagged Values, InstanceSpecification Slots, and Constraints Modelplex MARTE Tutorial – January 2009

Basic Textual Expressions in VSL Extended Primitive Values Extended Composite Values Extended Expressions Modelplex MARTE Tutorial – January 2009 Value Spec. Examples Real Number 1.2E-3 //scientific notation DateTime #12/01/06 12:00:00# //calendar date time Collection {1, 2, 88, 5, 2} //sequence, bag, ordered set.. {{1,2,3}, {3,2}} //collection of collections Tuple and choice (value=2.0, unit= ms) //duration tuple value periodic(period=2.0, jitter=3.3) //arrival pattern Interval [1..251[ //upper opened interval between integers [$A1..$A2] //interval between variables Variable declaration & Call io$var1 //input/output variable declaration var1 //variable call expression. Arithmetic Operation Call +(5.0,var1) //”add” operation on Real datatypes 5.0+var1 //infix operator notation Conditional Expression ((var1<6.0)?(10^6):1) //if true return 10 exp 6,else 1

Design Rationales & Further Usage Modelplex MARTE Tutorial – January 2009 Design Rationales & Further Usage

UML-Related Concepts Modelplex MARTE Tutorial – January 2009

Some Design Choices Why not Stereotypes to extend UML expressions? Why not the QoS Profile? Too complex annotation mechanism Two stages to annotate model & models borrowed by InstanceSpecifications But mainly… political reasons ;-) Result  NFP stereotypes replace QoS ones Why not Stereotypes to extend UML expressions? As we intend to annotate NFP values in Tagged Values, we don’t want to stereotype information within TaggedValues We don’t want to confuse users by mixing M1 and M2 levels Result  Qualifiers in NfpTypes & a new textual language: VSL Modelplex MARTE Tutorial – January 2009

Annotating NFPs in Tagged Values: Ex. CAN Bus annotated with Stereotypes Modelplex MARTE Tutorial – January 2009

Annotating NFPs in Tagged Values 1) Declare NFP types Modelplex MARTE Tutorial – January 2009 - Define measurement units and conversion parameters - Define NFP types with qualifiers 2) Define NFP-like extensions MARTE pre-defined - Define stereotypes and their attributes using NFP types 3) Specify NFP values - Apply stereotypes and specify their tag values using VSL

Annotating NFPs in Constraints 1) Declare NFP types - Define measurement units and conversion parameters - Define NFP types with qualifiers Modelplex MARTE Tutorial – January 2009 2) Declare NFPs -Define classifiers and their attributes using NFP types 3) Specify NFP values Create Constraints to define assertions on NFP values using VSL «nfpConstraint» is a required, offered, or contract constraint of NFPs

Some Design Choices (2) Why not OCL instead of VSL? Too hard to learn for end users No time expressions Result  VSL reuse OCL syntax, but the metamodel is closer to UML one VSL take into account the ISO Standard: General Purpose DataTypes It allows to map the VSL syntax to standard programming languages (e.g., C, Pascal) Modelplex MARTE Tutorial – January 2009

VSL Extended Data Types BoundedSubtype IntervalType CollectionType TupleType ChoiceType Modelplex MARTE Tutorial – January 2009 Declaration example… Specification example…

UML (native) Observation Concept An time observation is a reference to a time instant during an execution. Modelplex MARTE Tutorial – January 2009 An duration observation is a reference to a time interval during an execution. Specification example in Sequence diagrams…

Time Expressions with VSL Specification example in Sequence diagrams… Modelplex MARTE Tutorial – January 2009 Duration Observation

Summary of NFP Modeling Framework Usability vs. Flexibility: Three annotation mechanisms: Stereotypes, Properties and Constraints Stereotypes: predefined NFPs (e.g., end-to-end latency, processor utilization) Properties & Constraints: user-specific NFPs (but still unambiguously interpreted) Synthesis of best modeling practices… Reuse OCL constructs: grammar for values and expressions Formally defined by abstract (metamodel) and concrete (grammar) syntaxes Can be implemented as non-UML based language VSL supports time expressions (occurrence index, jitters,...) Modelplex MARTE Tutorial – January 2009