System Structure Modeling Language (S2ML)

Similar documents
System Structure Modeling Language (S2ML)

OpenAltaRica - Example A (Simple) Cooling System

OMG Systems Modeling Language Tutorial May, 2012

Architectural Blueprint

UBL Library Content Methodology

Enterprise Architect Training Courses

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

3rd Lecture Languages for information modeling

GraphXica: a Language for Graphical Animation of Models

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Object-Oriented Design

SUMMARY: MODEL DRIVEN SECURITY

Architectural Blueprint The 4+1 View Model of Software Architecture. Philippe Kruchten

Appendix A - Glossary(of OO software term s)

21. Document Component Design

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

SDC Design patterns GoF

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

PREEvision at Porsche (Update 2018)

06. Analysis Modeling

Software Development. Modular Design and Algorithm Analysis

New Logic Modeling Paradigms for Complex System Reliability and Risk Analysis

Introduction to IRQA 4

EGF Tutorial Reuse and Customization

Hippo Software BPMN and UML Training

Object-Oriented Software Engineering Practical Software Development using UML and Java

Design Patterns. An introduction

Modelling in Enterprise Architecture. MSc Business Information Systems

Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture

Object-Oriented Design

Proposed Revisions to ebxml Technical. Architecture Specification v1.04

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Review Sources of Architecture. Why Domain-Specific?

Enterprise Architect. User Guide Series. Domain Models

1 Executive Overview The Benefits and Objectives of BPDM

Content Sharing and Reuse in PTC Integrity Lifecycle Manager

Presenter: Dong hyun Park

Proposed Revisions to ebxml Technical Architecture Specification v ebxml Business Process Project Team

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology

SESE Tour 2018 Toulouse May 22

The Open Group SOA Ontology Technical Standard. Clive Hatton

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

QoS-aware model-driven SOA using SoaML

Information Model Architecture. Version 1.0

Vocabulary-Driven Enterprise Architecture Development Guidelines for DoDAF AV-2: Design and Development of the Integrated Dictionary

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Kapil Sehgal PGT Computer. Science Ankleshwar Gujarat Chapter 6 Inheritance Extending a Class

Interactions A link message

CSC Advanced Object Oriented Programming, Spring Overview

technical memo Physical Mark-Up Language Update abstract Christian Floerkemeier & Robin Koh

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Best Practices for Model-Based Systems Engineering

Software Design COSC 4353/6353 D R. R A J S I N G H

Creational. Structural

WP3 Technologies and methods for Web applications

Object-oriented approach for Automatic Train Operation control systems

Describing Computer Languages

Dominique Blouin Etienne Borde

12 Tutorial on UML. TIMe TIMe Electronic Textbook

ICD Wiki Framework for Enabling Semantic Web Service Definition and Orchestration

OMG Modeling Glossary B

Out of the UML box: Intuitive and Data-driven Modelling Tools for INSPIRE

Enterprise Architect. User Guide Series. UML Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

Applying the Semantic Web Layers to Access Control

A Case Study for HRT-UML

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Object-Oriented Programming

CTL.SC4x Technology and Systems

Semantics-Based Integration of Embedded Systems Models

AADL Graphical Editor Design

Pattern composition in graph transformation rules

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

DCMI Abstract Model - DRAFT Update

Enterprise Architect. User Guide Series. SysML Models. Author: Sparx Systems. Date: 30/06/2017. Version: 1.0 CREATED WITH

Chapter 13 XML: Extensible Markup Language

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

Experiment no 4 Study of Class Diagram in Rational Rose

Functions. Lecture 6 COP 3014 Spring February 11, 2018

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

Lecture 2 Software Engineering and Design

Recalling the definition of design as set of models let's consider the modeling of some real software.

A PRIMITIVE EXECUTION MODEL FOR HETEROGENEOUS MODELING

Studio 5000 Automation Engineering & Design Environment Enhance Productivity through Simplified System Development

COMPUTER/INFORMATION FLOOD STANDARDS

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

3.4 Data-Centric workflow

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

Design Pattern: Composite

Christian Doppler Laboratory

Master of Science Thesis. Modeling deployment and allocation in the Progress IDE

Model driven Engineering & Model driven Architecture

A Reconnaissance on Design Patterns

Object-Oriented Systems Analysis and Design Using UML

The AltaRica 3.0 Project

Pattern for Structuring UML-Compatible Software Project Repositories

Chapter : Analysis Modeling

Context-Awareness and Adaptation in Distributed Event-Based Systems

Chapter 3. Architecture and Design

Transcription:

System Structure Modeling Language (S2ML) Models of Structures, Structures of Models Michel Batteux (IRT SystemX, France) Tatiana Prosvirnova (IRT Saint-Exupery, France) Antoine Rauy (IPK NTNU, Norway & Chaire Blériot-France, France)

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 2

Today s Major Challenge: Integration Today, a major challenge of industry is to integrate the different system engineering disciplines (such as system architecture, control, multi-physics simulation, automatic code generation, safety and performances analyses ). In all system engineering disciplines, there is a growing interest for the so-called Model-Based approach (as opposed to Document-centric approach). The integration of system engineering disciplines goes through the integration of the artefacts, i.e. the models, they produce. 3

Modeling Languages System engineering modeling formalisms and languages are made of two parts: An underlying mathematical model, that is capturing some aspect of the behavior of the system, e.g. differential equations for Modelica and Matlab-Simulink, Data-Flow equations for Lustre, Guarded Transition Systems for AltaRica A structuring paradigm that makes it possible to build models by assembling parts (usually copied from libraries of reusable components) into hierarchical descriptions. E.g. Modelica is an object-oriented formalism. This structural part is usually flattened/compiled before the actual treatments take place. Modeling Language = Mathematical Model + Structuring Paradigm 4

Model Synchronization It would be of a great interest that the various modeling formalisms share their structuring paradigm. It would make much easier: Learning/training, Model transformation, Storage in collaborative data bases (PLM), Co-simulation (to some extent), and even more importantly: Model synchronization, i.e. eventually the (preferably automated) means by which one can warranty that heterogeneous models, possibly designed by different teams with different concerns, are describing the same system, and are coherent. 5

Abstraction and Comparison The synchronization of possibly heterogeneous models requires to abstract these models into a common framework and then to compare their abstractions. Synchronisation = abstraction + comparaison Evaluation & Simulation abstractor Architecture & Integration model A abstractor abstraction A comparator model B abstraction B Although the choice of abstractors and comparators deps on the system and the level of maturity of the project, what should be synchronized is essentially the structural part of models. 6

S2ML Promise: 1) Models of Structures S2ML aims at providing a necessary and sufficient language to describe the functional and/or physical structures of systems. system (representation of the) S2ML model Describing the structure of a system is a modeling process that aims at architecting the system, i.e. eventually at improving the comprehension / specification of that system. 7

S2ML Promise: 2) Structure of Models S2ML aims at providing a structuring paradigm of system engineering modeling languages. Language A Language B Language C S2ML: structuring paradigm Mathematical framework A Mathematical framework B Mathematical framework C Structuring helps to design, to debug, to share, to maintain and to synchronize models. 8

Why not SysML? SysML is a graphical notation, derived from UML, to address system modeling. It provides two types of diagrams to represent structures: Definition Block Diagrams and Internal Block Diagrams(1). It could thus be a candidate formalism for our purpose. However, A model, which is a mathematical object, should not be confused with its graphical representations. Even though graphical representations are excellent supports for the communication amongst stakeholders, they are able to represent only partially the models, except for formalisms with very low (or very ambiguous) expressiveness. Moreover, there may be several graphical representations of the same concept, each more or less convenient in a given context. (1) Parametric Diagrams and Package Diagrams cannot be used directly to represent structures, although they are considered also as structural. 9

Why not SysML? In a word: Graphical representations are a very good communication mean. Therefore, we shall use SysML graphics and vocabulary as much as possible. However: Concepts should come first S2ML aims at proposing a minimal yet sufficient set of concepts to represent structures of systems and to structure models. 10

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 11

Basic Components S2ML is made of the following basic components. Component Representation Role Attributes (name = value) Attributes are used to associate information to ports, connections and blocks. Ports Ports are basic objects of models, e.g. variables, events, equations, transitions Connections Blocks Connections are used to describe relations existing between ports. Blocks are containers. They can contain ports, connections and other blocks. 12

Example tank system vessel level sensor 1 reactor controller level sensor 2 valve 1 valve 2 13

Blocks as Prototypes & Composition A block is a container for ports, connections and other blocks. Each block is a prototype: it has a unique occurrence in the model. The block system composes the blocks tank, valve 1 The block reactor is part of the block vessel. system tank valve 1 valve 2 controller vessel Hierarchy of nested blocks sensor 1 sensor 2 reactor composition 14

Cloning A system may contain similar components, e.g. the sensors or the valves of our example. The corresponding copy then contains several copies of the same block. A first way to avoid duplicating the description of a block consists in cloning an already existing block. block vessel block sensor1 port input, output; block sensor2 clones sensor1; block reactor port output1, output2; connection [sensor1.input, reactor.output1]; connection [sensor2.input, reactor.output2]; vessel sensor1 sensor2 reactor cloning (of a block) 15

Classes and Instances A second way to avoid duplicating the description of a block consists in declaring a model of the duplicated block in a separate modeling entity, socalled a class, and then in instantiating this class. Sensor vessel class Sensor port input, output; block vessel Sensor sensor1, sensor2; block reactor port output1, output2; connection [sensor1.input, reactor.output1]; connection [sensor2.input, reactor.output2]; sensor1 sensor2 reactor instantiation (of a class) 16

Prototypes versus Classes Concept space (C) «Sandbox» Model creation refinement Reuse Add new components Knowledge space (K) Stabilized knowledge Libraries of «on-the-shelf» components refinement Reuse Add new components prototypes Final model classes

Inheritance Aside the composition, that defines a is-part-of relation, S2ML provides also a inheritance mechanism, i.e. a is-a relation. A class or a block can inherit the content of another class (or another block in the same modeling entity). class Valve port input, output; class MotorOperatedValve exts Valve; port inputtorque; block system... block MyValve exts Valve;...... Valve MotorOperatedValve inheritance 18

Aggregation & Functional Chains S2ML provides a mechanism for blocks to use blocks defined elsewhere in the same modeling entity. The using block aggregates the used block. This mechanism is especially useful to describe the so-called functional chains. block system... block OverpressureProtectionSystem1 embeds owner.vessel.sensor1 as sensor; embeds owner.controller as controller; embeds owner.valve1 as actuator;...... vessel aggregation OverpressureProtectionSystem1 To access to the parent block sensor1 controller valve1 19

Crossing the Walls Ports are used to describe all atomic components (on which rely the description of the behavior of the system). So there may be ports linked with no other ports or only with ports within the same block. Also, ports can be connected with any other block of the same modeling entity (connections can cross the wall). block system... connection [valve2.output, vessel.reactor.input];... 20

Multiple Connections and Attributes Connections can involve more than two ports. The type of ports and connections can be described by means of attributes. input1 input2 NAND & output class CMOSNANDGate port input1 (type=voltage); port input2 (type=voltage); port output (type=voltage); connection (type=voltage, operator=nand) [input1, input2, output]; 21

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 22

Example tank system vessel level sensor 1 reactor controller level sensor 2 valve 1 valve 2 23

Classes for Valves & Sensors class Valve port input, output (type=fluid); port command (type=signal); class Sensor port input, output (type=signal); Attribute to characterize ports input output command Valve Sensor output input 24

Blocks for other Components block tank port output; tank controller block controller port input1, input2; port command1, command2; connection [input1, command1]; connection [input2, command2]; level sensor 1 vessel reactor block vessel Sensor sensor1, sensor2; block reactor port input; port level1, level2; connection [sensor1.input, reactor.level1]; connection [sensor2.input, reactor.level2]; level sensor 2 25

Blocks for Functional Chains block OverpressureProtectionSystem1 embeds owner.vessel.sensor1 as sensor; embeds owner.controller as controller; embeds owner.valve1 as actuator; connection (type=signal)[sensor.output, controller.input1]; connection (type=signal)[controller.command1, actuator.command]; block OverpressureProtectionSystem2 embeds owner.vessel.sensor2 as sensor; embeds owner.controller as controller; embeds owner.valve2 as actuator; connection (type=signal) [sensor.output, controller.input2]; connection (type=signal) [controller.command1, actuator.command]; Attribute to characterize connections 26

Block for the system with attributes to characterize connections block system block tank... block controller... Valve valve1, valve2; block vessel... block OverpressureProtectionSystem1... block OverpressureProtectionSystem2... connection (type=fluid) [tank.output, valve1.input]; connection (type=fluid) [valve1.output, valve2.input]; connection (type=fluid) [valve2.output, vessel.reactor.input]; 27

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 28

Models, Classes & Blocks Model ::= ClassDeclaration* BlockDeclaration? ClassDeclaration ::= class Identifier AttributeList? MemberDeclaration* ConnectionDeclaration* BlockDeclaration ::= block Identifier AttributeList? MemberDeclaration* ConnectionDeclaration* MemberDeclaration ::= InheritanceClause PortDeclaration BlockDeclaration InstanceDeclaration EmbedsClause 29

Members & Connections InheritanceClause ::= exts Path (, Path)* AttributeList? ; clones Path (, Path)* AttributeList? ; PortDeclaration ::= port Identifier (, Identifier )* AttributeList? ; InstanceDeclaration ::= Path Identifier (, Identifier )* AttributeList? ; EmbedsClause ::= embeds Path as Identifier ; ConnectionDeclaration ::= connection Identifier? AttributeList? ArgumentList (, ArgumentList )* ; 30

Attributes, Arguments & Identifiers AttributeList ::= ( Attribute (, Attribute)* ) Attribute ::= Path = ( Path Text ) ArgumentList ::= [ Path (, Path)* ] Path ::= owner. Path Identifier (. Path)? Identifier ::= [a-za-z][a-za-z0-9_]* Text ::= "([^\"] \\ \").*" 31

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 32

Flattening: Composition Although the structure of the model plays a very important role into its clarity, it normally plays no role in the behavioral description of the system. Any hierarchical model can be flattened into an equivalent non-hierarchical one. The flattening process deps on the modeling language. It can usually be defined by means of the so-called flattening rules that are applied bottom-up. For S2ML, flattening rules are indeed purely structural. Composition Flattening: block A block B port p, q; connection [x, y]; block A port B.p, B.q; connection [B.x, B.y]; This rule applies the same way to class declarations (class A ). Other flattening rules are derived from that one. 33

Flattening: Instantiation Instantiation Flattening: class C port p, q; connection [x, y]; block A port B.p, B.q; connection [B.x, B.y]; block A C B; This rule applies the same way to class declarations (class A ). 34

Flattening: Inheritance & Cloning Inheritance Flattening: class C port p, q; connection [x, y]; block A port p, q; connection [x, y]; block A exts C; This rule applies the same way to class declarations (class A ) and to cloning of blocks. 35

Flattening: Aggregation Aggregation Flattening: block R port x; block A embeds owner.r as B; port y; connection [B.x, y]; block A port y; connection [R.x, y]; 36

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 37

XML Representation It is sometimes better to use a XML based representation rather than the textual/abstract grammar presented before (to simplify parsing issues). The XML representation follows Open-PSA principles: The declaration of a named element of type xxx is introduced by means of a XML tag declare-xxx. References to a named element of type xxx are introduced by means of a XML tag xxx. It would be possible to write a full XSD Schema for S2ML. Here just follows some indications about how to encode S2ML constructs in XML. We give a grammar in Bacckus Naur form (as previously). 38

Models, Blocks & Classes Model ::= <declare-model name="identifier" > Attribute* ClassDeclaration* BlockDeclaration? </declare-model> ClassDeclaration ::= <declare-class name="identifier" > Attribute* MemberDeclaration* ConnectionDeclaration* </declare-class> BlockDeclaration ::= <declare-block name="identifier" > Attribute* MemberDeclaration* ConnectionDeclaration* </declare-block> 39

Members MemberDeclaration ::= InheritanceClause PortDeclaration BlockDeclaration InstanceDeclaration EmbedsClause InheritancClause ::= <exts class="path" /> <clones block="path" /> PortDeclaration ::= <declare-port name="identifier" > Attribute* </declare-port> 40

Members InstanceDeclaration ::= <instance class="path" name="identifier" > Attribute* </instance> EmbedsClause ::= <embeds block="path" name="identifier" /> <embeds instance="path" name="identifier" /> ConnectionDeclaration ::= <connection name="identifier" > Attribute* PortReference+ </connection> PortReference ::= <port name="path" /> 41

Attributes & Identifiers Attribute ::= <attribute name="path" value="text" /> Path ::= owner Path Identifier (. Path)? Identifier ::= [a-za-z][a-za-z0-9_]* Text ::= ([^\"] \\ \").* 42

Aga Rational Description Full Example Grammar Flattening XML Encoding Issues 43

Issues There remains a number of issues not solved/discussed yet. Do we need to introduce parameters in addition to ports? Parameters are constants that get a default value but that can be modified at instantiation (or cloning) time. Do we need to introduce universal objects? Universal objects would be typically blocks defined aside the main block to store universal constants (such as the gravity). Do we need to introduce a substitution mechanism and/or parametric classes? A substitution mechanism would typically replace a sub-block (or class instance) by another one when instantiating a class (or cloning a block). Parametric classes would typically contain holders i.e. predefined place to be filled with blocks or class instances at instantiation (or cloning). 44

APPENDIX