SysML and Modelica Integration Working Group Meeting 3/11/09 Peter Fritzson Wladimir Schamai.

Slides:



Advertisements
Similar presentations
Object-Oriented Programming Python. OO Paradigm - Review Three Characteristics of OO Languages –Inheritance It isn’t necessary to build every class from.
Advertisements

Architecture Representation
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
OMG Systems Modeling Language (OMG SysML™) Matthew Hause ARTiSAN Software Tools Some slides reused from the OMG SysML™ Tutorial with permission.
1 CIS601: Object-Oriented Programming in C++ Note: CIS 601 notes were originally developed by H. Zhu for NJIT DL Program. The notes were subsequently revised.
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Unified Modeling (Part I) Overview of UML & Modeling
16/22/2015 2:54 PM6/22/2015 2:54 PM6/22/2015 2:54 PMObject-Oriented Development Concept originated with simulating objects and their interactions. Adapted.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
© Copyright Eliyahu Brutman Programming Techniques Course.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Programming Languages and Paradigms Object-Oriented Programming.
An Object-Oriented Approach to Programming Logic and Design
Sadegh Aliakbary Sharif University of Technology Fall 2011.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
CSE 425: Object-Oriented Programming I Object-Oriented Programming A design method as well as a programming paradigm –For example, CRC cards, noun-verb.
CS200 Algorithms and Data StructuresColorado State University Part 4. Advanced Java Topics Instructor: Sangmi Pallickara
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
Approaching a Problem Where do we start? How do we proceed?
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
Information System Design (IT60105) Lecture 26 Object-Oriented System Testing.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Week III  Recap from Last Week Review Classes Review Domain Model for EU-Bid & EU-Lease Aggregation Example (Reservation) Attribute Properties.
Part VII: Design Continuous
Topics AliasesSubprograms Generics & Configurations.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
Inheritance. Inheritance - Introduction Idea behind is to create new classes that are built on existing classes – you reuse the methods and fields and.
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Salman Marvasti Sharif University of Technology Winter 2015.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
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 Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Graph Coverage for Design Elements 1.  Use of data abstraction and object oriented software has increased importance on modularity and reuse.  Therefore.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
OO in Context Lecture 13: Dolores Zage. Confused about OO Not alone, there is much confusion about OO many programs are claimed to be OO but are not really.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
SysML-Modelica Transformation Specification (SE DSIG Meeting, Jacksonville, 3/22/2010) Chris Paredis Georgia Tech On behalf of the SysML-Modelica Working.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
CSCE 240 – Intro to Software Engineering Lecture 3.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Systems Modeling Language (SysML). 2 What is SysML? A graphical modeling language in response to UML for Systems Engineering developed by the OMG, INCOSE,
SysML Modelica Integration Working Group Meeting 8/12/09 Chris Paredis 1.
SysML-Modelica Integration Working Group Report (SE DSIG meeting, Washington DC 3/24/2009) Chris Paredis Georgia Tech 1.
IBM Rational Rhapsody Advanced Systems Training v7.5
SysML v2 Formalism: Requirements & Benefits
Interface, Subclass, and Abstract Class Review
Chris Paredis Georgia Tech
SysML 2.0 Interface Concepts Modeling Core Team
Review: Two Programming Paradigms
TIM 58 Chapter 8: Class and Method Design
Software Design AITI GP John Paul Vergara.
Object-Oriented Programming
Object-Oriented Programming
Class Diagrams.
CIS601: Object-Oriented Programming in C++
Copyright © 2015, 2012, 2009 Elsevier Inc. All rights reserved.
Object-Oriented Programming
SysML Modelica Integration Working Group Meeting 3/4/09
Copyright © 2015, 2012, 2009 Elsevier Inc. All rights reserved.
Modeling Modelica Interfaces with SysML v1.3
SysML 2.0 Interface Concepts Modeling Core Team
Using Physical Quantities in SysML
The OOTP is intended to get you thinking about how OO concepts are used in designing object-oriented systems. Note: not talking about OO technologies that.
Presentation transcript:

SysML and Modelica Integration Working Group Meeting 3/11/09 Peter Fritzson Wladimir Schamai

SysML Diagrams

SysML and Modelica Object-Oriented Paradigm Main structural units: –SysML: block (=class in object-oriented sense) –Modelica: class (=class in object-oriented sense) SysML and Modelica are dedicated to modeling of system structure and behavior Object-oriented paradigm: Encapsulation of object data and operations –SysML and Modelica models represent both: Structure of a system –Inheritance, composition, aggregation, usages and interconnection of components (by means of ports and connections) Behavior of a system or its component –in SysML: Block operations, State Machine or Activity Diagram which invoke block operations –in Modelica: Equations, algorithm statements

(Recall) Car Suspension Example This approach violates the encapsulation principle of the OO paradigm (it separates object structure from its behavior) structure behavior

SysML Structure Diagrams Diagrams represent a view on the model data –BDD (block definition) shows Block inheritance, composition/aggregation A block can represent a system, sub-system, etc. –IBD (block usage) shows Blocks usage (PartProperty), their ports and connectors –Parametric Diagram (ConstraintBlock usage=instance) Shows ConstraintBlock usages (ConstraintProperties), parameters (variables) and binding connectors (pure equality) between constraint usages A ConstraintBlock does not represent a system or a sub-system, but constraints imposed on a system property (attribute) SysML Constraint Blocks are inappropriate for representing Modelica Classes

Proposed Mapping SysML to Modelica Structural Constructs Block (SysML) to Class (Modelica) –Difference: Terminology –Good conformity (inheritance, composition/aggregation) FlowPort (SysML) to Connector (Modelica) –Difference: Terminology –Missing in SysML: Kirchhoff laws semantics in ports definition (flow var. -> sum to zero, non-flow var. -> equality) –Modelica components usually interact through ports (=connectors) Connector (SysML) to Connection (Modelica) –Difference: Terminology –Difference: in Modelica Connections cannot be decomposed -> no Association Classes are allowed but they can be modeled explicitly –Difference: In Modelica it is not allowed to connect components through hierarchy levels (except the inner/outer concepts) SysML connectors are 1:1 (connect 2 ports), Modelica connections can be n:m

Modelica Equation-Based Modeling Paradigm Modelica equation-based modeling is new (compared to traditional object-oriented programming languages) –Class behavior is defined by Class equations –for continuous-time behavior modeling And/or class algorithm sections, same as procedural function and related to a method of a class in OO-languages (but without side effects) –for discrete-time behavior but also for continuous-time

Modelica Equation-Based Modeling Paradigm Modelica algorithm statements can be represented by SysML Block Operations, Activity Diagram or State Machine –Reflecting traditional OO approach with procedural operations –Such diagrams are not yet supported in Modelica and should be introduced SysML does not yet support the equation-based modeling paradigm –No means for modeling dynamic behavior of blocks using equations SysML Parametric Diagram is a structural diagram –It does not represent dynamic behavior of a system, it is intended to express constraints to structural attributes Conclusion: New behavioral diagram is required for modeling class behavior using equations

Questions From The Last Meeting 1) One could argue that we are using constraint parameters to “define” variables rather than just “constrain” them. For instance, mass1model::L has a default value of 0 in Modelica and could thus be left unbound in the diagram. Is this a good idea? What are the alternatives? Based on the proposed approach this will not be an issue since there will be no variables without default values. (Unbound variables still need to be solved for)

Questions From The Last Meeting 2) Can constraint properties include “state”? According to Roger only for integrator states. Note: that this would be the case in the Modelica Model if all the Modelica parameters were bound to properties Based on the proposed approach this will not be an issue since Modelica classes are not mapped to ConstraintBlocks. Instead the Modelica classes are mapped to SysML blocks which can contain behavior and state variables

Questions From The Last Meeting 3) We use constraint parameters to represent “internal” variables (e.g., the position, s, of mass1model) — these variables are fully constrained through the model equations (e.g., v = der(s)), and should never be further constrained by binding them to other parameters. Is it acceptable to model these variables as constraint parameters? Based on the proposed approach this will not be an issue since there will be no additional binding required

Questions From The Last Meeting 4) The meaning of a binding connector in the diagram has been changed — it now reflects Kirchhoff semantics for flow variables. Is this acceptable? (it violates the strict semantics of a stereotype). What are the alternatives? We should introduce the Kirchhoff law semantics to SysML Ports and Connectors

Questions From The Last Meeting 5) Is it meaningful to bind structural properties to time-varying variables? It seems that the value of such a property would then be ill-defined or ambiguous outside a specific analysis context. If so, would it not make sense to define it only inside the analysis context? Based on the proposed approach this will not be an issue since there will be no additional binding required

Questions From The Last Meeting 6) In a «ModelicaModel» we using types defined in the Modelica Standard Library. In the structural model, we may use equivalent units/dimensions but defined as different ValueTypes. How do we best reconcile these differences? We should align the types used by Modelica Standard Library and SysML SI Units

Questions From The Last Meeting 7) Translating the current «ModelicaModel» into the Modelica language would require resolving all the bindings to external properties first. This may be difficult if there are complex relationships between these properties that need to be resolved first. Based on the proposed approach this will not be an issue since the mapping is unambiguous

Questions From The Last Meeting 7) It is likely that certain properties in the structural model need to be bound to simulation results rather than model variables (e.g., the settling time of the suspension can only be determined through simulation). How do we best handle this To be discussed…

Car Suspension Example How to Reuse Modelica Standard Library Models in Own Models?

Modelica Modelica Standard Library Pre-defined models from different engineering disciplines Models are re-used in user defined models by means of: –Usage Instantiation of classes –Inheritance Interfaces (connectors) are inherited Implementation (equations and algorithm section) is inherited Modelica Standard Library needs to be imported into your model

Car Suspension Example: Reusing Modelica Standard Library Models Alternative 1: Usage –Use Modelica Standard Library Models as classifier «Block» suspension : Spring Spring is a Modelica Standard Library model, which is imported in advance. usage name «Block» body : Mass Mass is a Modelica Standard Library model, which is imported in advance. usage name

Car Suspension Example: Reusing Modelica Standard Library Models Alternative 2: Inheritance –Create own classes which extend the Modelica Standard Library Models «Block» Body «ModelicaModel» Mass Mass is an imported Modelica Standard Library model Body is your class, which inherits from the Modelica Standard Model Mass «Block» Suspension «ModelicaModel» Spring Spring is an imported Modelica Standard Library model Suspension is your class, which inherits from the Modelica Standard Model Spring