INF5120 Modelbased System development

Size: px
Start display at page:

Download "INF5120 Modelbased System development"

Transcription

1 INF5120 Modelbased System development Lecture 13: Arne-Jørgen Berre and Telecom and Informatics 1

2 2 Course parts Part I-a -(Introduction to Modeling): 15/1 - Start 1-15/1: Introduction to INF5120 Part I-b -(Introduction to Business Architecture and Business Modeling 2-22/1: Modeling structure and behaviour (UML and UML 2.0 and metamodeling) 3-29/1: Business Modeling BMC, LSC, VDML/VDMBee, (w/meta model) - (Business Model Canvas, Value Proposition, Lean Canvas Part II - (Modeling Server side Node-RED + THingML + Sensors/IoT/Cloud - and the Smart X project): ) 4-5/2: BPMN process - UML Activ.Diagram + Flow modelling Node-RED - establish Oblig groups (3-4 persons) 5-12/2: Node-RED/IBM Bluemix/Cloud getting started + Individual Oblig + VDMBee/VDML 6-19/2: Cognitive Services/AI Watson services example (for Oblig 1 and 2) (IBM Cloud presentation from IBM Norway) 7-26/2: ArchiMate 3.0 Modeling, TOGAF Design Thinking 8-5/3: Smart Office - Design Thinking workshop IBM new office, Lakkegata 33, Oslo 5/3 - Oblig 1: Individual - Node-RED 9-12/3: Service Modeling with UML 2.X Collaboration Models and Composite Models and SoaML Extra: 13/2: TJBot workshop at IBM, Lakkegata 53, /3: UML 2.x Sequence Diagrams, UML 2.x State Machines. ArchiMate ArchIsurance, ArhiMetal examples, 19/3 - Oblig 2: Specification Models Smart Office Business Architecture Business Canvases, ++, ArchiMate + IBM ChatBot Conversation (Individual) Introduction Oblig 3 for 23/4 ArchiMate + UML + BPMN EASTER 26/3 and 2/4 Part IIi - (Modeling Apps + EA/ArchiMate) 11-9/4 UI Server, UI Start lecture incl. IFML EA with ArchiMate - Oblig 2 (3) discussion/presentation Oblig 3: Smart Office Realisation with Node-RED, IBM Watson/IoT services + ArchiMate/UML++ Application, Technology, Physical models 10% Part IV - (MDE Creating Your own Domain Specific Language Eclipse, Xtext/SIRIUS): 12-16/4: MDE with Xtext and SIRIUS 16/4 - Oblig 3 - progress: Group presentations - discussions 13-23/4: MDE Lexical (ThingML) and Graphical (CJML) DSLs and Transformations 23/4 Oblig 3 - progress: Group presentations discussions, Oblig 4 introduction 14-30/5 Project presentations/discussion each group - at IBM Headquarter, Oslo 30/5 Oblig 3 - Discussions with IBM 15-7/5 Guest lecture ArDoq, ThingML /5 - Oblig 3 Smart Office demonstrations - 10% 16-14/5: Summary of the course - Oblig 4 final discussions Mandag 21/5 PINSE 25/5 - Oblig 4 Delivery- Smart Office demonstrations + Your own Domain Specific Language (DSL-x) - 10% 17-28/5: Conclusions, Previous exams group collaborations Preparations for the Exam by old exams 15/6: Exam (4 hours), Friday June 15 th, ) - 60%

3 Next session- Monday May 2nd, 2018 at IBM Present/Discuss your group project ideas and Node-RED design (2+ sensors/actuators, or 1+ sensor/actuator and chatbot/conversation services) (For delivery on May 14th) From 1430 to 1630 IBM Headquarter Oslo Lakkegata 53 Telecom and Informatics 3

4 Following Monday May 7th, 2018 Guest lectures + Oblig work From 1415 to 1700 (Regular time slot) UiO, Ifi Telecom and Informatics 4

5 Content Lexical domain specific language - ThingML example Graphical domain specific language CJML example Xtext and SIRIUS (from last week) Model transformations and Code generation with ATL ++ Oblig 3 Smart Office Full design/partial realisation with Node-RED Introduction to Oblig 4 for May 28th - Node-RED as Grapical DSL with SIRIUS and Lexical DSL with XText Telecom and Informatics 5

6 OMG Model-Driven Architecture (MDA) Telecom and Informatics 6

7 Basic MDA Pattern The basic pattern can be applied multiple times PIMs and PSMs are relative notions Someone s PIM can be someone else s PSM Platform independence is relative, too It s a scoping issue It s a strategic decision Telecom and Informatics 7

8 ThingML thingml.org

9 Why ThingML? The idea of ThingML is to develop a practical model-driven software engineering tool-chain which targets resource constrained embedded systems such as low-power sensor and microcontroller based devices ThingML thing modeling language refers to Internet of Things another way to say cyber-physical ThingML provides several compilers for C, C++, Java, UML, etc which makes its products usable and portable 9

10 ThingML and abstraction We want functionality, but we also want to get our (mental) arms around the problem because we are going to improve our solution because we are going to correct our solution because we are going to evolve our solution because we are going to enhance our solution We want constructs that help comprehend our system We want constructs that help distribute the development of the system 10

11 ThingML main constructs a thing is something that behaves as a state machine, has local attributes communicates asynchronously through ports messages are sent asynchronously between things instances are established and connected ThingML contains a native action language 11

12

13 ThingML installation for Java starting from HEADS IDE ThingML is the modeling language for code generation Look at and Download HEADS-IDE from It includes Eclipse and most of the necessary plugins Install Plantuml from and Graphviz from Install a proper Oracle Java JDK (we do not use a JRE). Configure the Eclipse to point to that Java JDK Windows / Preferences / Java / Installed JREs Go to the tutorial of ThingML and walk through it: Øystein Haugen Faculty of Computer Science

14 Smart Building server side TheRoomX1 psm:psm T1:ThermometerSet get_sensor pim:pim human_output usr_o Using ThingML Domain Specific Modeling Language timer timer timr_th:javatimer onoff1:onoffset request_sensor request_actuator human_input - Related to UML Sequence Diagrams nd State Machines console tlstick:tellstickmanager usr_i 14

15 CPS-L1: The Room X1 simple home automation Separation of concerns PIM and PSM Kick-down Simulation Why? How? How to map to real CPS? Full details in Lectures and Obligs from the INF5120 course from

16 The Room X1: Smart Home Basics Our CPS will be a very basic Smart Home The brain is a processor that runs java This can be a PC or a Raspberry Pi A Telldus Tellstick Duo is connected via USB to the processor The Tellstick controls a few gadgets One (or more) on-off switch(es) wrapped up in an electric plug One (or more) thermometer(s) 16

17 Specification of The Room X1 functionality Observe individually the temperature sensors Turn the on-off switches ON or OFF That s it! 17

18 The gadgets Sensor(s) Processor Tellstick Actuator 18

19 The software elements Platform Specific Model TheRoomX1 Platform Independent Model psm:psm pim:pim get_sensor human_output usr_o T1:ThermometerSet Gadget drivers timer timer timr_th:javatimer onoff1:onoffset request_sensor request_actuator human_input Logic behavior console tlstick:tellstickmanager usr_i 19

20 In one picture TheRoomX1 psm:psm pim:pim get_sensor human_output usr_o T1:ThermometerSet timer timer timr_th:javatimer request_sensor onoff1:onoffset request_actuator human_input console tlstick:tellstickmanager usr_i 20

21 Sequence Diagram The Room X1 Behavior sd TheRoomX1behavior tlstick:tellstickmanager T1:ThermometerSet onoff1:onoff Lifeline pim:pim Message (asynch) initialize(tlstck) initialize(tlstck) sensorinfo() sensorinfo() Gate deviceinfo deviceinfo add_thermometer(id1,txt1) add_thermometer(id1,txt1) add_thermometer(id2, txt2) add_thermometer(id2, txt2) Fetch_all_temps Fetch_all_temps temperature(id1,txt1,temp1) temperature(id2,txt2,temp2) temperature(id1,txt1,temp1) temperature(id2,txt2,temp2) Fetch_temp(id1) Fetch_temp(id1) temperature(id1,txt1,temp1) temperature(id1,txt1,temp1) add_device(did1,didtxt1) add_device(did2,didtxt2) SwitchOn(did1) SwitchOff(did2) add_device(did1,didtxt1) add_device(did2,didtxt2) SwitchOn(did1) SwitchOff(did2) 21

22 Simulation to execute a system in a fictitious setting Why? You do not have the proper hardware available because it does not exist, yet because you have not bought it During development you need more resources / power to secure functionality before optimization to provide better testing facilities to provide better measurement opportunities 22

23 The Room X1 Simulation We use simulation for The Room X1 such that everybody can run it without buying or getting the real gadgets to use the ThingML Eclipse on PCs for quicker turnaround and better debugging facilities than the Raspberry Pi or other low performance (but much cheaper) microcontrollers And we can manipulate the temperature much faster Simulation environment using mock dialogues Gadget startup; Thermometer set; Switch set; Human interface; 23

24 The Room X1 Simulation architecture TheRoomX1sim psm:psm pim:pim show_values tg:tempsim show_values T1:ThermometerSet provide_val require_val get_sensor human_output usr_o Reading the value from thermometers T1 in and out give_values get_values timer initial timer request_sensor timr_th:javatimer show_onoff require_val human_input onoffobs:onoffsim show_val onoff1:onoffset initial request_actuator show_gadgets gdg:gadgetsim to_gdg to_onoff1 tlstick:tellstickmanager to_t1 usr_i Turning switch on and off from Mock user interface 24

25 The Room X1 in ThingML the configuration import "psm_sim.thingml" import "pim.thingml" import "io.thingml" import "javatimer.thingml" configuration CPS { instance tlstick:tellstickmanager instance T1:ThermometerSet instance onoff1:onoffset instance pim:pim instance myself:human instance timer : TimerJava // SIMULATION instance tg:tempsim instance onoffobs:onoffsim instance gdg:gadgetsim // PSM connector tlstick.to_t1 => T1.initial connector tlstick.to_gdg => gdg.show_gadgets connector tlstick.to_onoff1 => onoff1.initial connector T1.provide_val => pim.get_sensor connector T1.timer => timer.timer connector T1.show_values => tg.show_values connector onoff1.show_val => onoffobs.show_onoff // HMI connector myself.send_cmd => pim.human_input // PIM outwards connector pim.request_sensor => T1.require_val connector pim.request_actuator => onoff1.require_val connector pim.human_output => myself.get_values // SIMULATION connector tg.give_values => T1.get_values } 25

26 The Room X1 ThingML config visualized via PlantUML 26

27 PSM and PIM (terms taken from OMG s MDA) PSM = Platform Specific Model what will be replaced when the platform (low level) is changed in our case it also means changing from simulation platform to real platform The drivers PIM = Platform Independent Model what will be stable regardless of platform changes The application logic 27

28 The Room X1 Application Logic The Room X1 PIM is only one state machine It is in X1 not much in addition to the PSM But it is the PIM that will grow and become more complex and more robust in versions to come while the PSM will stay mostly unchanged 28

29 The Room X1 PIM state machine visualized Trigger Effect State Machine Initial pseudo state Transition State 29

30 The Room X1 PIM in text (1) statechart PIM_behavior init Init { state Init { transition -> Init event snsr:get_sensor?sensorinfo action do State Machine State Port } human_output!sensorinfo(snsr.model,snsr.proto,snsr.sid,snsr.datatypes,snsr.temperature,snsr.humidity,snsr.timestamp ) end transition -> Init event dvcs:get_sensor?deviceinfo action do human_output!deviceinfo(dvcs.did,dvcs.name,dvcs.model,dvcs.proto, dvcs.ttype,dvcs.meth,dvcs.lastcmd,dvcs.lastvalue) end transition -> Running // adding the first thermometer will start the normal operation event addt:human_input?add_thermometer action do request_sensor!add_thermometer(addt.id,addt.txt) end Initial pseudo state Transition Effect Trigger Message // we do some bookkeeping on thermometers both at the PSM and at the PIM thermometers[last_thermo]=addt.id thermotext[last_thermo]=addt.txt thermoval[last_thermo]=66.66 //to indicate no temperature has been received last_thermo=last_thermo+1 //increasing the number of thermometers in our set 30

31 The Room X1 PIM in text (2) state Running { transition -> Running event temp:get_sensor?temperature action do id_s=temp.id i=0 found = false while (i<last_thermo and (not found)) do if (id_s==thermometers[i]) do found=true // trick to terminate while loop end i=i+1 end if (found) do thermoval[i-1]=temp.t end end transition -> Running event addt:human_input?add_thermometer action... transition -> Running event fetch_t:human_input?fetch_temp action do... // many transitions that go from Running to Running } 31

32 The Room X1 PIM in text (3) imports // Base datatypes import "datatypes.thingml" /* PSM must be included */ import "psm_sim.thingml" import "psm_datatypes_sim.thingml" import "pim_messages.thingml" 32

33 The Room X1 PIM in text (4) The thing port interface thing PIM includes GeneralMsg, TemperatureMsg, OnOffMsg { provided port get_sensor { receives temperature, sensorinfo, deviceinfo } required port request_sensor { sends add_thermometer } required port request_actuator{ sends add_device, SwitchOn, SwitchOff } provided port human_input { receives add_thermometer, add_device, fetch_temp, fetch_all_temps, SwitchOn, SwitchOff } required port human_output { sends temperature, sensorinfo, deviceinfo } 33

34 The Room X1 PIM in text (5) the thing properties property thermometers:integer[25] // Identifiers of the thermometers in the set property thermotext:string[25] // corresponding explanatory text property thermoval:double[25] // storing the values received from the thermometers (through the PSM) property last_thermo:integer = 0 // number of thermometers in the set // temporary variables property id_s:long // temporary id value (to be used with kick-down) property temp_s:double // temporary temperature value property found:boolean // temporary - true when item found in loop property i:integer // runner index in list 34

35 ThingML simple user interface By using Java and the compiler true and compile with Swing, the compiler will provide a simple Swing window user interface 35

36 interface //SIMULATION thing TempSim includes "true" { required port give_values { sends temperature } provided port show_values { receives temperature } } thing GadgetSim includes "true" {provided port show_gadgets { receives sensorinfo, deviceinfo } } thing OnOffSim includes "true" {provided port show_onoff { receives SwitchOn, SwitchOff } } 36

37 The Room X1 A simulated execution Shows temperatures every 10 seconds when PSM is sending PIM System response to user User input commands Fake gadget hardware observation Simulates switch on or off 37

38 The Room X1 PIM a summary X1 PIM is a thing where the state machine is rather simple X1 PIM functions according to the behavior specified X1 PIM does more than that it functions for more traces than those specified by the sequence diagram Many people would after trying it think it worked well X1 PIM is not perfect, it is not particularly robust Try adding the same thermometer several times 38

39 From Simulation to the Real System In Simulation we have had an artificial environment we may have applied abundant resources In the Real System we need to hook up to the underlying physical devices this requires driver software that may apply low level constructs in other languages than ThingML we may have a scarcity of resources and may consider what functionality or operations to omit 39

40 The Room X1 Thermometer(s) Simulated Real Tellstick Duo Simulated Real Switch(es) 40

41 The Room X1: Architecture of the real system TheRoomX1 psm:psm pim:pim get_sensor human_output usr_o T1:ThermometerSet timer timer timr_th:javatimer request_sensor onoff1:onoffset request_actuator human_input console tlstick:tellstickmanager usr_i 41

42 The Elements of CPS Modeling in our course UML Composite structures (Papyrus or Visio) ThingML textual modeling (configurations, state machines) UML Sequence Diagrams (Papyrus or Visio) Java Swing UML State Machines jstick telldus.dll Tellstick hw Sensors/ Actuators 42

43 Same picture with our first CPS model console TheRoomX1 psm:psm T1:ThermometerSet timer timer timr_th:javatimer onoff1:onoffset tlstick:tellstickmanager get_sensor request_sensor request_actuator pim:pim human_output human_input usr_o usr_i sd TheRoomX1behavior thing PIM includes GeneralMsg, TemperatureMsg, HumidityMsg, OnOffMsg { provided port get_sensor { receives running,temperature, humidity,sensorinfo, deviceinfo tlstick:tellstickmanager } required port request_sensor { sends fetch_all_temps, fetch_temp, add_thermometer, fetch_all_hum, fetch_humidity, add_hygrometer initialize(tlstck) } required port request_actuator{ sends add_device, SwitchOn, SwitchOff } provided port human_input { receives fetch_temp, fetch_all_temps, add_thermometer, fetch_humidity, fetch_all_hum, add_hygrometer, add_device, SwitchOn, SwitchOff } required port human_output { sends temperature, humidity, sensorinfo, deviceinfo } statechart PIM_behavior init Init { state Init { transition -> Running event run: get_sensor?running action do // nothing end } state Running { transition -> Running event snsr:get_sensor?sensorinfo action do human_output!sensorinfo(snsr.model,snsr.protocol,snsr.sid,snsr.datatypes,snsr.temperature,snsr.humidity,snsr.timestamp) end T1:ThermometerSet initialize(tlstck) add_thermometer(id1,txt1) add_thermometer(id2, txt2) Fetch_all_temps Fetch_temp(id1) onoff1:onoff temperature(id1,txt1,temp1) temperature(id2,txt2,temp2) temperature(id1,txt1,temp1) add_device(did1,didtxt1) add_device(did2,didtxt2) SwitchOn(did1) SwitchOff(did2) sensorinfo() deviceinfo pim:pim sensorinfo() deviceinfo add_thermometer(id1,txt1) add_thermometer(id2, txt2) Fetch_all_temps temperature(id1,txt1,temp1) temperature(id2,txt2,temp2) Fetch_temp(id1) temperature(id1,txt1,temp1) add_device(did1,didtxt1) add_device(did2,didtxt2) SwitchOn(did1) SwitchOff(did2) Java Swing jstick telldus.dll 43

44 Tellstick from Telldus Tellstick Duo will be our thing controller it is using RF on 433 MHz Go to the TellStick Duo page Install the software and try it Get hold of: One on-off switch One thermometer (possibly two in one and a hygrometer) 44

45 The TellStick Duo software Check that Telldus Service is running in Task Manager (on Windows) 45

46 PSM code: Relating to Maven thing TellstickManager includes PSM_Msg, "<dependency> <groupid>net.juppi</groupid> <artifactid>jstick-api</artifactid> <version>1.6</version> </dependency>" { /* Ports may be defined here */ required port to_t1 { sends initialize defines a dependency in the maven file which is generated by ThingML compiler 46

47 CJML Customer Journey Modeling Language From the VISUAL project VISUAL

48 About the project VISUAL VISUAL goal develop a visual language for documentation and analysis of services serving as a "bridge" from a service concept to service specification VISUAL "products" terminology and notation to specify services methods, tools, prototypes About VISUAL Innovation project (BIA) running until June 2016 partners: Halogen, FINN.no, DIPS, Hafslund, SINTEF, University of Linköping The main components of the visual language have been made publicly available, see

49 The VISUAL language VISUAL is a domain specific language for modelling and visualizing a service process VISUAL differs from other diagrammatic languages in two principal ways It models the service process from the customer's point of view It aims at being intuitive for all users, and does not require a technical background VISUAL is implacably targeting the part of a service process that can be encountered by the customer (or end-user, consumer, citizen) VISUAL builds on the concept of customer journeys and touchpoints. In general, the term customer journey is used both as a metaphor and as a method in the service design domain. VISUAL aims at being an instrument for a precise description and modelling of a service process. It provides a conceptual framework, terminology, and a visual notation. VISUAL is particularly targeting service processes that are technology-driven, standardized, and repeated in high volumes service processes extending over time, being mediated by different communication channels The language is less appropriate for modelling in-session sequences of interaction with a system, e.g. completing a web form VISUAL 49

50 Target group The core of VISUAL targets a wide user group, in principle "everyone" in a service company The advanced and analytic features of VISUAL targets service owners, business developers, analysts, and technologists The VISUAL language addresses interactions between a customer and one or more service providers. It describes service processes both in its hypothetical state, and as it is experienced in a real context. VISUAL targets only the part of a service that is encountered by the customer or end-user. The service processes described by VISUAL may involve more than one customer/user, and also more than one service provider. VISUAL should appeal to people working with service delivery or service innovation, independent on their role and background VISUAL

51 The states of a service "Services exist in two different states of being.." Lynn Shostack (1982). How to design a service. Eur. J. Marketing 16, The VISUAL language distinguishes two states of a service: The hypothetical, planned service (theory), and the real-time execution of a service (reality). Theory: the planned service delivery as intended by the service provider can be described and modelled may branch into sub-journeys, according to choices or conditions Reality: the actual service delivery it always results in an individual experience the experience is subjective, context dependent, and changes over time the execution of a service may deviate from the plan Planned journey Actual journey VISUAL 51

52 What is a customer journey? Customer journey A customer journey is defined as a sequence or constellation of touchpoints involved for a customer to achieve a specific goal or a desired outcome. The start and end of the journey must be seen in context with the purpose of the analysis As a method, customer journey mapping is practiced in various ways, but there are a few common factors across all approaches: 1. The journey is based on the customer's point of view 2. The journey has a time dimension - or a process nature 3. The journey is divided into steps Customer Example of a hospitality service: Going to the cinema to watch a movie. The service process comprise ordering and paying the ticket, retrieving the ticket, and several procedures at the movie theatre. Example of a health service: Having a knee surgery. The service process typically comprise a visit to the general practitioner, an MR imaging service, visit to a specialist, and finally the surgery. The customer has a relation to more than one service provider during a customer journey. About customer journeys The term customer journey is generally used as metaphor for taking a customer's (or a user, consumer, citizen) perspective. Customer journeys or customer journey mapping also denote a method in service design. The method is used to express a service user's experience. Although the method is commonly used in the service industry, it lacks a theoretical foundation and a formalization. A customer journey is often divided into "before", "during" and "after" the service. Sometimes, the borders between these phases can be hard to define. The Customer Journey Modelling Language (CJML) is a domain specific language for modelling and visualizing a service process. VISUAL

53 Who are involved in a customer journey? Directly involved actors The actors on the left side are directly involved in delivering the service to the customer. They are responsible for (parts of) the customer's journey. External actors The actors on the right side may influence the customer's journey, although they are not responsible for any part of the service delivery. Customer journeys involve a complex combinations of products (tangibles), services (deeds), spaces and information. Service provider Sub-contractor Customer Friend Newspaper The customer often see the set of service providers as "one entity," and does not distinguish (or care) about their interrelation. Example: In the cinema case, this is the cinema company. If they have outsourced the online ticketing system, a subcontractor is also directly involved. Example: This could be the newspaper that made the customer aware of the film, or a friend who recommended the film. VISUAL

54 Touchpoints the "atoms" of the journey Touchpoint A customer journey is modelled as sequences of steps and events that we refer to as touchpoints. A touchpoint is the "atom" of a customer journey. A sub-class of touchpoints represent instances of communication or interaction between the customer and the other actors. These steps are called communication points, and are associated with a sender, a receiver, and a communication channel. Communication points are associated with a sender a receiver a communication channel Service provider Customer Friend In CJML there are different types of touchpoints: communication point action Sub-contractor Newspaper This will be explained in the following slides. VISUAL

55 Touchpoints Touchpoints that involve communication or interaction are referred to as communication points. They make up the backbone of the service process, and has several important attributes that are codified in the visual notation. Service provider Customer Friend Sub-contractor Newspaper Both the direction of the communication, and the communication channel itself are made visually distinct. For example, the touchpoints that are initiated by the customer has a different color compared to the ones initiated by the service provider. VISUAL The customer sends an to the service provider The service provider sends an to the customer

56 Touchpoint typology Directly involved actors The actors on the left side are directly involved in delivering the service to the customer. They are responsible for (parts of) the customer's journey. External actors The actors on the right side may influence the customer's journey, although they are not responsible for any part of the service delivery. Communication point Communication with service provider. Part of the planned journey. External communication point Communication with external actor (not involved in service provisioning) Direct communication Steps involving a "sender" and a "receiver" in the context of the customer's journey. A communication channel is always involved. Action Action involving the service system. Lisa grabs a shopping cart External action Action not involving the service system. Lisa writes a shopping list No communication Steps without communication are called actions. They may or may not involve interaction with the service system. TOUCHPOINT INVOLVING THE SERVICE SYSTEM TOUCHPOINT OUTSIDE THE SERVICE SYSTEM These are the touchpoints that can be controlled (to some extent) by the service provider. VISUAL

57 Diagrams and examples VISUAL 57

58 Overview of VISUAL diagrams There are two main diagram types in VISUAL for describing service delivery: Customer journey diagram Sequential diagram: for visualizing planned and actual customer journeys with few actors involved Swimlane diagram Swimlane diagram: for visualizing planned and actual customer journeys with many actors involved Deviation diagram: for visualizing actual customer journeys VISUAL 58

59 Customer journey A customer journey is modelled as a sequence of touchpoints involved for a customer to achieve a specific goal. Communication points are instances of communication or interaction between a customer and a service provider Actions are non-communicative events or activities conducted by a customer or service provider as part of a customer journey The scope of a customer journey should be defined in relation to the purpose of the journey mapping What is the start of the customer journey? What is the end of the customer journey? VISUAL 59

60 Communication point basics Communication point boundary symbol area Communication points are represented as circles The circle's boundary style carries information about the actor initiating the touchpoint the status of the touchpoint The symbol area carry information about the channel carrying the communication point, or the device being used The symbols are introduced in separate slides Actor The colour of the boundary indicates the actor initiating the communication point green: service provider orange: customer purple: other actor Status The boundary style indicates the status of the communication point solid boundary: completed dashed boundary: missing crossed touchpoint: failing service provider completed customer missing only used for actual journeys other actor failing only used for actual journeys Examples service provider sends an to customer customer fails to retrieve ticket VISUAL 60

61 Sequential diagram example planned journey Planned customer journey consisting of a sequence of communication points in chronological order. Note: This example journey is used as an illustration throughout this section. It represents a simplified version of the service process for going to the movies. VISUAL 61

62 Deviation diagram description Touchpoints are shown in two different layers. See descriptions in in figure. Missing and failing communication points that are part of the planned journey appear as grey "ghost" symbols in the upper level All the expected elements are shown in the upper level E1 E2 E3 Expected elements Deviations All the deviations (ad-hoc, missing and failing touchpoints) are shown in the lower level M1 Missing and failing communication points that are part of the planned journey appear in the lower "deviations" level showing status and initiator F1 A1 When a deviation follows as a direct consequence of an ad-hoc, missing, or failing element, it is displayed vertically below the touchpoint it originated from (as shown in this visualization) When an deviation touchpoint follows an ad-hoc, missing, or failing touchpoint, but is not directly connected to the previous touchpoint, it is displayed horizontally beside this touchpoint VISUAL 62

63 ATL - Model Transformation Language "Families to Persons" A simple illustration of model-to-model transformation Freddy Allilaire Frédéric Jouault ATLAS group, INRIA & University of Nantes, France Adapted from Telecom and Informatics

64 Context of this work The present courseware has been elaborated in the context of the Usine Logicielle project ( of the cluster Paris- Région with the support of the Direction Générale des Entreprises, Conseil Régional d Ile de France, Conseil Général des Yvelines, Conseil Général de l'essonne, and Conseil Général des Hauts de Seine. The MDD courseware provided here with the status of open source software is produced under the EPL 1.0 license. Telecom and Informatics

65 Overview This presentation describes a very simple model transformation example, some kind of ATL "hello world". It is intended to be extended later. The presentation is composed of the following parts: Prerequisites. Introduction. Metamodeling. Transformation. Conclusion. Telecom and Informatics

66 Prerequisites In the presentation we will not discuss the prerequisites. The interested reader may look in another presentation to these prerequisites on: MDE (MOF, XMI, OCL). Eclipse/EMF (ECORE). AMMA/ATL. Telecom and Informatics

67 Introduction The goal is to present a use case of a model to model transformation written in ATL. This use case is named: Families to Persons. Initially we have a text describing a list of families. We want to transform this into another text describing a list of persons. Telecom and Informatics

68 Goal of the ATL transformation we are going to write Transforming this into this. Family March Father: Jim Mother: Cindy Son: Brandon Daughter: Brenda other Families Mr. Jim March Mrs. Cindy March Mr. Brandon March Mrs. Brenda March other Persons Let's suppose these are not texts, but models (we'll discuss the correspondence between models and texts later). Telecom and Informatics

69 Input of the transformation is a model Family March Father: Jim Mother: Cindy Son: Brandon Daughter: Brenda Family Sailor Father: Peter Mother: Jackie Son: David Son: Dylan Daughter: Kelly <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="families"> <Family lastname="march"> <father firstname="jim"/> <mother firstname="cindy"/> <sons firstname="brandon"/> <daughters firstname="brenda"/> </Family> <Family lastname="sailor"> <father firstname="peter"/> <mother firstname="jackie"/> <sons firstname="david"/> <sons firstname="dylan"/> <daughters firstname="kelly"/> </Family> </xmi:xmi> This is the text. This is the corresponding model. It is expressed in XMI, a standard way to represent models. Telecom and Informatics

70 Output of the transformation should be a model Mr. Dylan Sailor Mr. Peter Sailor Mr. Brandon March Mr. Jim March Mr. David Sailor Mrs. Jackie Sailor Mrs. Brenda March Mrs. Cindy March Mrs. Kelly Sailor This is the text. <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="persons"> <Male fullname="dylan Sailor"/> <Male fullname="peter Sailor"/> <Male fullname="brandon March"/> <Male fullname="jim March"/> <Male fullname="david Sailor"/> <Female fullname="jackie Sailor"/> <Female fullname="brenda March"/> <Female fullname="cindy March"/> <Female fullname="kelly Sailor"/> </xmi:xmi> This is the corresponding model (The corresponding XMI file is named "sample-persons.ecore"). Telecom and Informatics

71 Each model conforms to a metamodel Source metamodel Target metamodel conformsto conformsto <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="families"> <Family lastname="march"> <father firstname="jim"/> <mother firstname="cindy"/> <sons firstname="brandon"/> <daughters firstname="brenda"/> </Family> <Family lastname="sailor"> <father firstname="peter"/> <mother firstname="jackie"/> <sons firstname="david"/> <sons firstname="dylan"/> <daughters firstname="kelly"/> </Family> </xmi:xmi> <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="persons"> <Male fullname="dylan Sailor"/> <Male fullname="peter Sailor"/> <Male fullname="brandon March"/> <Male fullname="jim March"/> <Male fullname="david Sailor"/> <Female fullname="jackie Sailor"/> <Female fullname="brenda March"/> <Female fullname="cindy March"/> <Female fullname="kelly Sailor"/> </xmi:xmi> Source model "sample-families.ecore" Target model "sample-persons.ecore" Telecom and Informatics

72 The general picture conformsto Metametamodel (ECORE) conformsto Source metamodel conformsto Target metamodel conformsto conformsto Source model Target model Telecom and Informatics

73 What we need to provide In order to achieve the transformation, we need to provide: 1. A source metamodel in KM3 ("Families"). 2. A source model (in XMI) conforming to "Families". 3. A target metamodel in KM3 ("Persons"). 4. A transformation model in ATL ("Families2Persons"). When the ATL transformation is executed, we obtain: A target model (in XMI) conforming to "Persons". Telecom and Informatics

74 Definition of the source metamodel "Families" What is Families : A collection of families. Each family has a name and is composed of members: A father A mother Several sons Several daughters Each family member has a first name. Family March Father: Jim Mother: Cindy Son: Brandon Daughter: Brenda Family Sailor Father: Peter Mother: Jackie Sons: David, Dylan Daughter: Kelly Family lastname : String familyfather 0..1 familymother 0..1 familyson 0..1 familydaughter 0..1 father 1 mother 1 sons * daughters * Member firstname : String Telecom and Informatics

75 "Families" metamodel (visual presentation and KM3) Family lastname : String familyfather 0..1 familymother 0..1 familyson 0..1 familydaughter 0..1 father 1 mother 1 sons * daughters * Member firstname : String package Families { } class Family { attribute lastname : String; reference father container : Member oppositeof familyfather; reference mother container : Member oppositeof familymother; reference sons[*] container : Member oppositeof familyson; reference daughters[*] container : Member oppositeof familydaughter; } class Member { attribute firstname : String; reference familyfather[0-1] : Family oppositeof father; reference familymother[0-1] : Family oppositeof mother; reference familyson[0-1] : Family oppositeof sons; reference familydaughter[0-1] : Family oppositeof daughters; } package PrimitiveTypes { datatype String; } Telecom and Informatics

76 "Persons" metamodel (visual presentation and KM3) Person fullname package Persons { abstract class Person { attribute fullname : String; } Male Female class Male extends Person { } class Female extends Person { } } package PrimitiveTypes { datatype String; } Telecom and Informatics

77 The big picture 1. Our goal in this mini-tutorial is to write the ATL transformation, stored in the "Families2Persons" file. M3 Eclipse Modeling Framework (EMF) Ecore.ecore C2 2. Prior to the execution of this transformation the resulting file "sample-persons.ecore" does not exist. It is created by the transformation. M2 C2 C2 C2 Families.km3 ATL.km3 Persons.km3 3. Before defining the transformation itself, we need to define the source and target metamodels ("Families.km3" and "Person.KM3"). M1 sample- Families.ecore C2 C2 C2 Families2Persons.atl sample- Persons.ecore 4. We take for granted that the definition of the ATL language is available (supposedly in the "ATL.km3" file). 5. Similarly we take for granted that the environment provides the recursive definition of the metametamodel (supposedly in the "Ecore.ecore" file). Telecom and Informatics

78 Families to Persons Architecture M3 M2 Eclipse Modeling Framework (EMF) Ecore.ecore C2 C2 C2 Families.km3 ATL.km3 Persons.km3 C2 1. Families and Persons metamodels have been created previously. 2. They have been written in the KM3 metamodel specification DSL (Domain Specific Language). C2 C2 C2 M1 Families2Persons.atl sample- Families.ecore sample- Persons.ecore Telecom and Informatics

79 Families to Persons Architecture M3 M2 M1 sample- Families.ecore Eclipse Modeling Framework (EMF) C2 Ecore.ecore Families.km3 ATL.km3 Persons.km3 C2 C2 C2 C2 Families2Persons.atl C2 C2 sample- Persons.ecore 1. The following file is the sample that we will use as source model in this use case: <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="families"> <Family lastname="march"> <father firstname="jim"/> <mother firstname="cindy"/> <sons firstname="brandon"/> <daughters firstname="brenda"/> </Family> <Family lastname="sailor"> <father firstname="peter"/> <mother firstname="jackie"/> <sons firstname="david"/> <sons firstname="dylan"/> <daughters firstname="kelly"/> </Family> </xmi:xmi> Telecom and Informatics

80 Families to Persons Architecture M3 Eclipse Modeling Framework (EMF) Ecore.ecore C2 1. Now, let us start the creation of the ATL transformation Families2Persons.atl. C2 C2 C2 2. We suppose the ATL environment is already installed. M2 M1 Families.km3 ATL.km3 Persons.km3 C2 C2 C2 Families2Persons.atl 3. The creation of the ATL transformation will follow several steps as described in the next slides. sample- Families.ecore sample- Persons.ecore Telecom and Informatics

81 Families to Persons: project creation First we create an ATL project by using the ATL Project Wizard. Telecom and Informatics

82 Families to Persons: ATL transformation creation Next we create the ATL transformation. To do this, we use the ATL File Wizard. This will generate automatically the header section. IN: Name of the source model in the transformation OUT: Name of the target model in the transformation Families: Name of the source metamodel in the transformation Persons: Name of the target metamodel in the transformation Telecom and Informatics

83 Families to Persons: header section The header section names the transformation module and names the variables corresponding to the source and target models ("IN" and "OUT") together with their metamodels ("Persons" and "Families") acting as types. The header section of "Families2Persons" is: module Families2Persons; create OUT : Persons from IN : Families; Telecom and Informatics

84 Families to Persons: helper "isfemale()" A helper is an auxiliary function that computes a result needed in a rule. Family familyfather 0..1 familymother 0..1 father 1 mother 1 Member The following helper "isfemale()" computes the gender of the current member: lastname : String familyson 0..1 familydaughter 0..1 sons * daughters * firstname : String helper context Families!Member def: isfemale() : Boolean = if not self.familymother.oclisundefined() then true else if not self.familydaughter.oclisundefined() then true else false endif endif; Telecom and Informatics

85 Families to Persons: helper "familyname" The family name is not directly contained in class Member. The following helper returns the family name by navigating the relation between Family and Member : Family lastname : String familyfather 0..1 familymother 0..1 familyson 0..1 familydaughter 0..1 father 1 mother 1 sons * daughters * Member firstname : String helper context Families!Member def: familyname : String = if not self.familyfather.oclisundefined() then self.familyfather.lastname else if not self.familymother.oclisundefined() then self.familymother.lastname else if not self.familyson.oclisundefined() then self.familyson.lastname else self.familydaughter.lastname endif endif endif; Telecom and Informatics

86 Families to Persons: writing the rules After the helpers we now write the rules: Member to Male rule Member2Male { from s : Families!Member (not s.isfemale()) to t : Persons!Male ( fullname <- s.firstname + ' ' + s.familyname ) } Member to Female rule Member2Female { from s : Families!Member (s.isfemale()) to t : Persons!Female ( fullname <- s.firstname + ' ' + s.familyname ) } Telecom and Informatics

87 Summary of the Transformation 1. For each instance of the class "Member" in the IN model, create an Family lastname : String familyfather 0..1 familymother 0..1 familyson 0..1 familydaughte r 0..1 Male + If isfemale() Female Else Male Person fullname : String father mother 1 1 sons * daughters * Female Member firstname : String instance in the OUT model. 2. If the original "Member" instance is a "mother" or one of the "daughters" of a given "Family", then we create an instance of the "Female" class in the OUT model. 3. If the original "Member" instance is a "father" or one of the "sons" of a given "Family", then we create an instance of the "Male" class in the OUT model. 4. In both cases, the "fullname" of the created instance is the concatenation of the Member "firstname" and of the Family "lastname", separated by a blank. Telecom and Informatics

88 Families to Persons Architecture Eclipse Modeling Framework (EMF) 1. Once the ATL transformation Families2Persons is created, we can execute it to build the OUT model. M3 M2 Ecore.ecore C2 C2 C2 Families.km3 ATL.km3 Persons.km3 C2 C2 C2 C2 M1 Families2Persons.atl sample- Families.ecore sample- Persons.ecore <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="persons"> <Male fullname="dylan Sailor"/> <Male fullname="peter Sailor"/> <Male fullname="brandon March"/> <Male fullname="jim March"/> <Male fullname="david Sailor"/> <Female fullname="jackie Sailor"/> <Female fullname="brenda March"/> <Female fullname="cindy March"/> <Female fullname="kelly Sailor"/> </xmi:xmi> Telecom and Informatics

89 ATL Launch Configuration - 1 Telecom and Informatics

90 ATL Launch Configuration - 2 module Families2Persons; create OUT : Persons from IN : Families; Telecom and Informatics

91 Summary We have presented here a "hello world" level basic ATL transformation. This is not a recommendation on how to program in ATL, just an initial example. Several questions have not been answered Like how to transform a text into an XMI-encoded model. Or how to transform the XMI-encoded result into text. For any further questions, see the documentation mentioned in the resource page (FAQ, Manual, Examples, etc.). Telecom and Informatics

92 ATL Resource page ATL Home page ATL Documentation page ATL Newsgroup news://news.eclipse.org/eclipse.modeling.m2m ATL Wiki Telecom and Informatics

93 MDA-compliant Eclipse technologies Eclipse Modeling Tools: Eclipse Modeling Framework (EMF) EMF is a modeling framework and code generation facility for building tools and other applications based on a structured data model. Eclipse Graphical Editing Framework (GEF) The Graphical Editing Framework (GEF) allows developers to take an existing application model and quickly create a rich graphical editor. Eclipse Graphical Modeling Framework (GMF) The Eclipse Graphical Modeling Framework (GMF) provides a generative component and runtime infrastructure for developing graphical editors based on EMF and GEF. Eugenia - plus Spray/Graphiti EuGENia is a tool that automatically generates the.gmfgraph,.gmftool and.gmfmap models needed to implement a GMF editor from a single annotated Ecore metamodel Atlas Transformation Language The ATL project aims at providing a set of transformation tools for GMT. These include some sample ATL transformations, an ATL transformation engine, and an IDE for ATL (ADT: ATL Development Tools). Eclipse Process Framework (EPF) To provide an extensible framework and exemplary tools for software process engineering - method and process authoring, library management, configuring and publishing a process. Telecom and Informatics 93

94 EMFText - MOF to text Telecom and Informatics 94

95 Introduction ATHENA Model-Driven Interoperability (MDI) Framework MDA & Interoperability Metamodelling UML Profiles & DSLs Model Transformations Method Engineering Reusable MDI Assets Method chunks Tools and services Models and metamodels Model transformations DSLs and UML profiles Reference examples Telecom and Informatics 95

96 Model to Text transformation 1/2 MDA places modelling at the heart of the software development process. Various models are used to capture various aspects of the system in a platform independent manner. Sets of transformations are then applied to these platform independent models (PIM) to derive platform specific models (PSM). These PSMs need to be eventually transformed into software artefacts such as code, deployment specifications, reports, documents, etc. It is also common to generate code directly from PIM-like models. (DSL approach) Telecom and Informatics 96

97 Model to Text transformation 1/2 QVT, ATL and MOFScript M2M addresses the need of model to model transformation (e.g., PIM to PIM, PIM to PSM and PSM to PSM) The MOF Model to Text (mof2text) standard addresses how to translate a model to various text artefacts such as code, deployment specifications, reports, documents, etc. Essentially, the mof2text standard needs to address how to transform a model into a linearized text representation. An intuitive way to address this requirement is a template based approach wherein the text to be generated from models is specified as a set of text templates that are parameterized with model elements. Telecom and Informatics 97

98 MOF to Text Overview A template-based approach wherein a Template specifies a text template with placeholders for data to be extracted from models. These placeholders are essentially expressions specified over metamodel entities with queries being the primary mechanisms for selecting and extracting the values from models. These values are then converted into text fragments using an expression language augmented with a string manipulation library. Template can be composed to address complex transformation requirements. Large transformations can be structured into modules having public and private parts. Telecom and Informatics 98

99 MOF to Text Example [template public classtojava(c : Class)] class [c.name/] { // Attribute declarations [attributetojava(c.attribute)] // Constructor [c.name/] () { } } [/template] [template public attributetojava(a : Attribute)] [a.type.name/] [a.name/]; [/template] class Employee { // Attribute declarations String name; Department dept; Double salary; } // Constructor Employee() { } Telecom and Informatics 99

100 Language details 1/3 Instead of defining two templates separately, a template can iterate over a collection by using the for block. Using the for block preserves WYSIWYG-ness and improves readability. For example the classtojava template can use the for block as shown below: [template public classtojava(c : Class)] class [c.name/] { // Attribute declarations [for(a : Attribute c.attribute)] [a.type.name/] [a.name/]; [/for] // Constructor [c.name/] () { } } [/template] The for block declares a loop variable a of type Attribute and produces for each Attribute in the collection c.attribute the text between the [for] and [/for]. Telecom and Informatics 100

101 Language details 2/3 A template can have a guard that decides whether the template can be invoked. For example, the following classtojava template is invoked only if the class is concrete. [template public classtojava(c : Class)? (c.isabstract = false) ] Complex model navigations can be specified using queries. The following example shows use of a query alloperations to collect operations of all abstract parent classes of a class in a class hierarchy. [query public alloperations(c: Class) : Set ( Operation ) =c.operation->union ( c.superclass->select(sc sc.isabstract=true)->iterate(ac : Class; os:set(operation) = Set{} os->union(alloperations(ac)))) /] Telecom and Informatics 101

102 Language details 3/3 As we have seen, a template has WYSIWYG nature with the text to be output being specified in exactly the way it should look in the output. There may be cases where the quantity of the text producing logic far outweighs the text being produced. In this case, it is more intuitive to specify the text producing logic without use of template public classtojava(c : Class) class c.name { // Constructor c.name () { } } [template public classtojava(c : Class)] class [c.name/] { // Constructor [c.name/] () { } } [/template] Telecom and Informatics 102

103 OMG Standard for model-to-text MOF2Text: A merge of the different model to text proposals, where MOFScript was one of several Many similarities with MOFScript: imperative language w/ explicit rule calls reusing selected parts of QVT/OCL Differs from MOFScript: Mainly syntactical Context type does not have its own slot, inserted in the parameter list More traditional for-statements instead of foreach Escaping direction is flexible: The transformation code can be escaped, or the output text can be escaped (as in MOFScript). Telecom and Informatics 103

104 Tool Support Eclipse M2T Project: Acceleo MTL: MOFScript M2T: Parser, model and editor that uses the MOFScript runtime Telecom and Informatics 104

105 MOFScript Model to Text language and Tool Telecom and Informatics 105

106 Introduction Model Driven Development (MDD) emphasizes the use of models as first class artifacts CIM <--> PIM <--> PSM <--> TEXT / CODE MOFScript bridges Model Text Public class a extends x.. B.wsdl z Z association type Simple c.html Telecom and Informatics 106

107 MOFScript placed in the 4-layer architecture M3 MOF conforms to conforms to M2 Source Metamodel based on MOFScript language conforms to conforms to M1 Source model MOFScript transformation executed by input MOFScript tool engine output Target text Telecom and Informatics 107

108 What is MOFScript? The MOFScript tool is an implementation of the MOFScript model to text transformation language Developed at Sintef ICT in the EU-supported MODELWARE project An Eclipse plug-in Mapping of model artifacts to a multitude of textual languages Was part of standardization process within OMG OMG RFP MOF Model to Text Transformation process Telecom and Informatics 108

109 MOFScript a transformation language Language for writing model to text transformations Rules / Operations are called explicit (Procedural language) Partly based on the current QVT specification (keeps it within the family) Transforms input models to output text files Generate text from any MOF-based model, e.g., UML models or any kind of domain model. Telecom and Informatics 109

110 MOF Script - background Usability Ease of use: Writing and understanding Few constructs End user recognizability Similar to programming and scripting languages Imperatively oriented Sequential execution semantics Rules are called explicitly Might also support pattern matching execution Contents of rules is executed sequentially Compatibility Alignment with latest QVT (QVTMerge) specification Telecom and Informatics 110

111 MOFScript in action MOF MODELS LEXICAL OUTPUT UML RDBMS BPMN MOFScript Program code XML Documentation Telecom and Informatics 111

112 MOFScript architecture Telecom and Informatics 112

113 MOFScript a model to text tool Provides the means of: Editing, compiling and executing Syntax high-lightning Content assist Outline MOFScript Console Telecom and Informatics 113

114 The main steps of using the MOFScript tool Task: Define a transformation from source model A to text t. (A t) 1. Import or define the source metamodel for A. 2. Write the MOFScript to transform A to t in the MOFScript editor 3. Compile the transformation. Any errors in the transformation will be presented. 1. Fix errors, if any 4. Load a source model corresponding to A s metamodel. 1. Using the Eclipse plugin, this is prompted by the tool when trying to execute. 5. Execute the MOFScript in the MOFScript tool. 1. The transformation is executed. Output text / files are produced. Telecom and Informatics 114

115 Built-in operations String operations Various string manipulation operations, such as: size, substring, substringbefore After, tolower, toupper, indexof, trim, normalizespace, endswith, startswith, replace, equals, equalsignorecase, charat, islowercase, isuppercase Collection library Standard collection operations Hashmap: put, get, clear, size, keys, values, isempty, foreach, List: add, size, clear, isempty, first, last, foreach Model: size, first, isempty, foreach System and utility operations Various utility functions, such as time, date, getenv, setenv, position, count UML2 Operations Operations available when UML2 models are loaded hasstereotype, getappliedstereotypes, getappliedstereotype Telecom and Informatics 115

116 Textual syntax Textmodule textmodule UML2Java (in mymod:uml2) Rules Files Escaped output mymod.package::mappackage () { 'package ' self.name ';' } file f2 (c.name +.java ) ' package ' c.ownerpackage.name';' f2.println ( public class + c.name); 'public class ' c.name ' extends Serializable {' Telecom and Informatics 116

117 Textual syntax Entry point rule mymod.model::main () { // code for entry point } Iterators self.ownedmember->foreach(c:mymod.class) '<class name= ' c.name ' />' } Conditional statements if (self.hasstereotype( Feature ) { ' This is a feature type ' } else if (self.hasstereotype( Product )) { ' This is a product type ' } else { ' this is neither ' } Telecom and Informatics 117

118 Textual syntax Collections var packagenames_list:list var packagename_hashtable:hashtable self.ownedmember->foreach(p:uml.package) { packagenames_list.add (p.name) packagename_hashtable.put (p.id, p.name) } if (packagename_hashtable.size () > 0) { ' Listing the package names that does not start with S ' packagename_hashtable->foreach (s:string not(s.startswith( S )) { ' Package: ' s } } Telecom and Informatics 118

119 Textual syntax Invoking rules uml.package::interfacepackages () { if (self.getstereotype() = Service ){ file (self.name.tolower() + ".wsdl") self.wsdlheader() self.wsdltypes() self.ownedmember->foreach(i:uml.interface) { i.wsdlmessages() i.wsdlporttype() i.wsdlbindings() i.wsdlservice() } self.wsdlfooter() } } Return results uml.package::getpackagenametolower(): String { result = self.name.tolower() } Telecom and Informatics 119

120 UML OCL Object Constraint Language The Object Constraint Language ISBN OCL home page Telecom and Informatics 120

121 Model examples ThiNgami nos knnn dozzzkf() karphew(zaa) Editor text Font changefont(font) addelem(elem) spellcheck() NuclearReactorCore add(controlrod, int) ControlRod remove(int) Telecom and Informatics 121

122 Precise modeling Details in models Avoid misunderstanding Completeness Baseline for code generation Model analysis Consistence among models Relationships and mappings between models Analysis of models Telecom and Informatics 122

123 Simplify with OCL Flight flights 0..* 1 Airplane PassengerFlight CargoFlight 0..* 0..* 1 1 PasssengerPlane CargoPlane Telecom and Informatics 123

124 Diagram with invariants Flight 0..* type = flights enum{cargo, passenger} 1 Airplane type = enum{cargo, passenger} context Flight inv: type = #cargo implies airplane.type = #cargo inv: type = #passenger implies airplane.type = #passenger Telecom and Informatics 124

125 Definition of constraint A constraint is a restriction on one or more values of (part of) an objectoriented model or system. Telecom and Informatics 125

126 Example model Airport name: String origin destination departing Flights * * arriving Flights Flight departtime: Time /arrivaltime: Time duration : Interval maxnrpassengers: Integer flights * airline Airline passengers * {ordered} name: String Passenger $minage: Integer age: Integer needsassistance: Boolean 0..1 airline 0..1 book(f : Flight) CEO Telecom and Informatics 126

127 Constraint context and self Every OCL expression is bound to a specific context. The context may be denoted within the expression using the keyword self. Who? Me? Telecom and Informatics 127

128 Notation Constraints may be denoted within the UML model or in a separate document. the expression: context Flight inv: self.duration < 4 is identical to: context Flight inv: duration < 4 is identical to: Flight <<invariant>> duration < 4 duration: Integer Telecom and Informatics 128

129 Elements of an OCL expression In an OCL expression these elements may be used: basic types: String, Boolean, Integer, Real. classifiers from the UML model and their features attributes, and class attributes query operations, and class query operations associations from the UML model Telecom and Informatics 129

130 OCL types OclAny Real OclType OclState String Boolean OclExpression Integer Collection Set Bag Sequence Telecom and Informatics 130

131 Example: OCL basic types context Airline inv: name.tolower = klm context Passenger inv: age >= (( )* 3.1).abs implies mature = true Telecom and Informatics 131

132 Model classes and attributes Normal attributes context Flight inv: self.maxnrpassengers <= 1000 Class attributes context Passenger inv: age >= Passenger.minAge Telecom and Informatics 132

133 Example: query operations context Flight inv: self.departtime.difference(self.arrivaltime).equals(self.duration) Time $midnight: Time month : String day : Integer year : Integer hour : Integer minute : Integer difference(t:time):interval before(t: Time): Boolean plus(d : Interval) : Time Interval nrofdays : Integer nrofhours : Integer nrofminutes : Integer equals(i:interval):boolean $Interval(d, h, m : Integer) : Interval Telecom and Informatics 133

134 Example: navigations Navigations context Flight inv: origin <> destination inv: origin.name = Amsterdam context Flight inv: airline.name = KLM Telecom and Informatics 134

135 Basic Navigation expressions Instructor name 0..1 * qualifiedinstructors assignedto * Session date * * qualifiedfor Course name i: Instructor, c: Course, s: Session The name of the course: c.name The date of the session: s.date The instructor assigned to the session: s.instructor The course of the session: s.course The name of the course of the session: s.course.name The instructors qualified for the session: s.course.qualifiedinstructors Let s navigate on a model Telecom and Informatics 135

136 Navigation Example 1 * * r A B C a r1 * r3 1 a1 a2 b1 b2 b3 b4 b5 b6 b7 b8 c1 c2 c3 c4 What does a1.r1.r2.r3 yield? Assuming the B s have a boolean attribute black ; black=false for b6, b8 - what expression refers from a2 to the set { b1 } Telecom and Informatics 136

137 Association classes context Person inv: if employer.name = Klasse Objecten then job.type = #trainer else job.type = #programmer endif Job type : {trainer, programmer} Person * 1 employee employer Company name : String Telecom and Informatics 137

138 Three subtypes to Collection Set: arrivingflights(from the context Airport) Bag: arrivingflights.duration (from the context Airport) Sequence: passengers (from the context Flight) Telecom and Informatics 138

139 Collection operations OCL has a great number of predefined operations on the collections types. Syntax: collection->operation Telecom and Informatics 139

"Families to Persons"

Families to Persons "" A simple illustration of model-to to-model transformation Freddy Allilaire Frédéric Jouault ATLAS group, INRIA & University of Nantes, France -1- Context of this work The present courseware has been

More information

M. (1) (1) (2) (1) ATLAS

M. (1) (1) (2) (1) ATLAS Practice of Model Transformation and Model Weaving in the Eclipse Modeling Project with ATL and AMW Part 1 ATL: the ATLAS Transformation Language Mikaël Barbero (1) Marcos Didonet Del Fabro (1) Juan M.

More information

Introduction To Model-to-Model Transformation

Introduction To Model-to-Model Transformation - 1 - 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

More information

INF5120 Modelbased System development

INF5120 Modelbased System development INF5120 Modelbased System development Lecture 11: 09.04.2018 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no 1 2 Course parts (16 lectures) - 2018 Part I-a -(Introduction to Modeling): 15/1

More information

INF5120 and INF9120 Modelbased System development

INF5120 and INF9120 Modelbased System development INF5120 and INF9120 Modelbased System development Lecture 6-1: 20.02.2016 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no 1 Course parts (16 lectures) - 2017 January (1-3) (Introduction to

More information

INF5120 Modelbased System development

INF5120 Modelbased System development INF5120 Modelbased System development Lecture 12: 16.04.2018 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no Telecom and Informatics 1 Course parts (16 lectures) - 2018 Part I-a -(Introduction

More information

INF5120 Modellbasert Systemutvikling Modelbased System development

INF5120 Modellbasert Systemutvikling Modelbased System development INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 5: 10.02.2014 Arne-Jørgen Berre arneb@ifi.uio.no or Arne.J.Berre@sintef.no Telecom and Informatics 1 Oblig 1 Group work Service

More information

INF5120 and INF9120 Modelbased System development

INF5120 and INF9120 Modelbased System development INF5120 and INF9120 Modelbased System development Lecture 5: 13.02.2016 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no Telecom and Informatics 1 Course parts (16 lectures) - 2017 January

More information

INF5120 Modelbased System development

INF5120 Modelbased System development INF5120 Modelbased System development Lecture 9: 12.03.2018 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no 1 Course parts (16 lectures) 2018 Part I-a -(Introduction to Modeling): 15/1 -

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

Transforming models with ATL

Transforming models with ATL The ATLAS Transformation Language Frédéric Jouault ATLAS group (INRIA & LINA), University of Nantes, France http://www.sciences.univ-nantes.fr/lina/atl/!1 Context of this work The present courseware has

More information

INF5120 Model-Based System Development

INF5120 Model-Based System Development INF5120 Model-Based System Development Lecture #3: Metamodelling and UML profiles, MDA technologies 04 February 2008 Brian Elvesæter, SINTEF 1 Outline Model-driven interoperability (MDI) framework MDA

More information

INF5120 Modellbasert Systemutvikling Modelbased System development

INF5120 Modellbasert Systemutvikling Modelbased System development INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 12: 03.04.2017 Arne-Jørgen Berre arneb@ifi.uio.no or Arne.J.Berre@sintef.no Telecom and Informatics 1 Content Introduction to

More information

QoS-aware model-driven SOA using SoaML

QoS-aware model-driven SOA using SoaML QoS-aware model-driven SOA using SoaML Niels Schot A thesis submitted for the degree of MSc Computer Science University of Twente EEMCS - TRESE: Software Engineering Group Examination committee: Luís Ferreira

More information

Transformation of the system sequence diagram to an interface navigation diagram

Transformation of the system sequence diagram to an interface navigation diagram Transformation of the system sequence diagram to an interface navigation diagram William Germain DIMBISOA PhD Student Laboratory of Computer Science and Mathematics Applied to Development (LIMAD), University

More information

Introduction to MDE and Model Transformation

Introduction to MDE and Model Transformation Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and

More information

ATL: Atlas Transformation Language. ATL User Manual

ATL: Atlas Transformation Language. ATL User Manual ATL: Atlas Transformation Language ATL User Manual - version 0.7 - February 2006 by ATLAS group LINA & INRIA Nantes Content 1 Introduction... 1 2 An Introduction to Model Transformation... 2 2.1 The Model-Driven

More information

Sequence Diagram Generation with Model Transformation Technology

Sequence Diagram Generation with Model Transformation Technology , March 12-14, 2014, Hong Kong Sequence Diagram Generation with Model Transformation Technology Photchana Sawprakhon, Yachai Limpiyakorn Abstract Creating Sequence diagrams with UML tools can be incomplete,

More information

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik Modellierung operationaler Aspekte von Systemarchitekturen Master Thesis presentation October 2005 March 2006 Agenda Goals Model-Driven Software Development Pro-active Infrastructure (PAI) Operational

More information

INF Lecture plan

INF Lecture plan INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 2: 01.02.2010 Metamodeling and UML profiles Arne-Jørgen Berre Brian Elvesæter ICT 1 INF5120 - Lecture plan - 2010 1: 25/1: Introduction

More information

An Introduction to MDE

An Introduction to MDE An Introduction to MDE Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila alfonso@di.univaq.it. Outline 2 2» Introduction» What is a Model?» Model Driven Engineering Metamodeling

More information

Overview of lectures today and Wednesday

Overview of lectures today and Wednesday Model-driven development (MDA), Software Oriented Architecture (SOA) and semantic web (exemplified by WSMO) Draft of presentation John Krogstie Professor, IDI, NTNU Senior Researcher, SINTEF ICT 1 Overview

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

OMG Specifications for Enterprise Interoperability

OMG Specifications for Enterprise Interoperability OMG Specifications for Enterprise Interoperability Brian Elvesæter* Arne-Jørgen Berre* *SINTEF ICT, P. O. Box 124 Blindern, N-0314 Oslo, Norway brian.elvesater@sintef.no arne.j.berre@sintef.no ABSTRACT:

More information

Papyrus: Advent of an Open Source IME at Eclipse (Redux)

Papyrus: Advent of an Open Source IME at Eclipse (Redux) Papyrus: Advent of an Open Source IME at Eclipse (Redux) Kenn Hussey Eclipse Modeling Day, Toronto November 18, 2009 A Perfect Storm for Tools Core technologies like MOF and UML are evolving Microsoft

More information

ThingML: A Modelling Language for the Internet of Things

ThingML: A Modelling Language for the Internet of Things ThingML: A Modelling Language for the Internet of Things Franck Fleurey SINTEF franck.fleurey@sintef.no Background: SINTEF has 1400 employees in Trondheim Established in 1950 An Independent Multi-Disciplinary

More information

SCOS-2000 Technical Note

SCOS-2000 Technical Note SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared

More information

TOWARDS MODEL TRANSFORMATION DESIGN PATTERNS

TOWARDS MODEL TRANSFORMATION DESIGN PATTERNS TOWARDS MODEL TRANSFORMATION DESIGN PATTERNS Jean Bézivin, Frédéric Jouault, Jean Paliès ATLAS Group (INRIA & LINA, University of Nantes) {bezivin frederic.jouault jean.palies}@gmail.com Abstract Keywords:

More information

Applications Of Model Weaving Techniques

Applications Of Model Weaving Techniques Applications Of Model Weaving Techniques Hugo Bruneliere, Jendrik Johannes INRIA, TUD 1 Context of this work The present courseware has been elaborated in the context of the MODELPLEX European IST FP6

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

Small is Beautiful Building a flexible software factory using small DSLs and Small Models Small is Beautiful Building a flexible software factory using small DSLs and Small Models Jos Warmer Partner, Ordina jos.warmer@ordina.nl 1 Modeling Maturity Levels MML 0: No specification MML 1: Textual

More information

INF5120 Modellbasert Systemutvikling Modelbased System development

INF5120 Modellbasert Systemutvikling Modelbased System development INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 10: 23.03.2015 Arne-Jørgen Berre arneb@ifi.uio.no or Arne.J.Berre@sintef.no Telecom and Informatics 1 INF5120 - Lecture plan -

More information

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain

More information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: Models in Software Development: Methods, Techniques and Tools CISC836: Models in Software Development: Methods, Techniques and Tools Topic 4: Code Generation with EMF Meta modeling Languages for meta models: Ecore Using EMF and Ecoreto define a data model Using EMF

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

Model Driven Engineering (MDE)

Model Driven Engineering (MDE) Model Driven Engineering (MDE) Yngve Lamo 1 1 Faculty of Engineering, Bergen University College, Norway 26 April 2011 Ålesund Outline Background Software Engineering History, SE Model Driven Engineering

More information

Deliverable D4.2. SHAPE MDE Toolset User s Guide

Deliverable D4.2. SHAPE MDE Toolset User s Guide Service and Software Architectures, Infrastructures and Engineering Small or Medium-scale Focused Research Project Semantically-enabled Heterogeneous Service Architecture and Platforms Engineering Acronym

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

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

challenges in domain-specific modeling raphaël mannadiar august 27, 2009 challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing

More information

ATL TRANSFORMATION EXAMPLE

ATL TRANSFORMATION EXAMPLE 1. ATL Transformation Example 1.1. Example: KM3 Problem The example describes a transformation a KM3 metamodel [1] in a Problem model. The generated Problem model contains the list of non-structural errors

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

ECLIPSE MODELING PROJECT

ECLIPSE MODELING PROJECT ECLIPSE MODELING PROJECT A Domain-Specific Language Toolkit Richard С. Gronback AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Pans Madrid

More information

AUTOMATED BEHAVIOUR REFINEMENT USING INTERACTION PATTERNS

AUTOMATED BEHAVIOUR REFINEMENT USING INTERACTION PATTERNS MASTER THESIS AUTOMATED BEHAVIOUR REFINEMENT USING INTERACTION PATTERNS C.J.H. Weeïnk FACULTY OF ELECTRICAL ENGINEERING, MATHEMATICS AND COMPUTER SCIENCE SOFTWARE ENGINEERING EXAMINATION COMMITTEE dr.

More information

COMET. Component and Model-based development Methodology. Adapted from the COMBINE methodology. COMET Methodology Handbook

COMET. Component and Model-based development Methodology. Adapted from the COMBINE methodology. COMET Methodology Handbook COMET Component and Model-based development Methodology Adapted from the COMBINE methodology COMET Methodology Handbook Business, Requirements, Architecture and Platform modelling documentation Date: 24

More information

arxiv: v1 [cs.se] 17 Aug 2016

arxiv: v1 [cs.se] 17 Aug 2016 Introduction to the Case Management Model and Notation (CMMN) arxiv:1608.05011v1 [cs.se] 17 Aug 2016 Mike A. Marin University of South Africa IBM Analytics Group mmarin@acm.org August 18, 2016 Abstract

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

ATL Transformation Examples. The KM3 to Metric ATL transformation

ATL Transformation Examples. The KM3 to Metric ATL transformation s The KM3 to Metric ATL transformation - version 0.1 - September 2005 by ATLAS group LINA & INRIA Nantes Content 1 Introduction... 1 2 The KM3 to Metrics ATL transformation... 1 2.1 Transformation overview...

More information

Object Management Group Model Driven Architecture (MDA) MDA Guide rev. 2.0 OMG Document ormsc/

Object Management Group Model Driven Architecture (MDA) MDA Guide rev. 2.0 OMG Document ormsc/ Executive Summary Object Management Group Model Driven Architecture (MDA) MDA Guide rev. 2.0 OMG Document ormsc/2014-06-01 This guide describes the Model Driven Architecture (MDA) approach as defined by

More information

Christian Doppler Laboratory

Christian Doppler Laboratory Christian Doppler Laboratory Software Engineering Integration For Flexible Automation Systems AutomationML Models (in EMF and EA) for Modelers and Software Developers Emanuel Mätzler Institute of Software

More information

Introduction to EGF. Benoît Langlois / Thales Global Services.

Introduction to EGF. Benoît Langlois / Thales Global Services. www.thalesgroup.com Introduction to EGF Benoît Langlois / Thales Global Services 2 / Agenda Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Agenda Introduction EGF Architecture Concepts

More information

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer Unit-1 Concepts Oral Question/Assignment/Gate Question with Answer The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering Object Management Group (OMG)

More information

Experimental transformations between Business Process and SOA models

Experimental transformations between Business Process and SOA models International Journal of Informatics Society, VOL.4, NO.2 (2012) 93-102 93 Experimental transformations between Business Process and SOA models Akira Tanaka, and Osamu Takahashi view5 LLC, Japan School

More information

The Open Group SOA Ontology Technical Standard. Clive Hatton

The Open Group SOA Ontology Technical Standard. Clive Hatton The Open Group SOA Ontology Technical Standard Clive Hatton The Open Group Releases SOA Ontology Standard To Increase SOA Adoption and Success Rates Ontology Fosters Common Understanding of SOA Concepts

More information

INF Lecture plan

INF Lecture plan INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 3: 30.01.2012 Arne-Jørgen Berre arneb@ifi.uio.no or Arne.J.Berre@sintef.no 1 INF5120 - Lecture plan - 2012 Part I: SSI Service

More information

INF5120 Modellbasert Systemutvikling Modelbased System development

INF5120 Modellbasert Systemutvikling Modelbased System development INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 7: 25.02.2013 Arne-Jørgen Berre arneb@ifi.uio.no or Arne.J.Berre@sintef.no INF5120 - Lecture plan - 2013 1 (14/1): Introduction

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

Hippo Software BPMN and UML Training

Hippo Software BPMN and UML Training Hippo Software BPMN and UML Training Icon Key: www.hippo-software.co.uk Teaches theory concepts and notation Teaches practical use of Enterprise Architect Covers BPMN, UML, SysML, ArchiMate Includes paper

More information

Model Abstraction versus Model to Text Transformation

Model Abstraction versus Model to Text Transformation Model Abstraction versus Model to Text Transformation Jon Oldevik, Tor Neple, Jan Øyvind Aagedal SINTEF Information and Communication Technology, Forskningsvn 1, N-0314 Oslo, Norway {jon.oldevik tor.neple

More information

Model Driven Development of Component Centric Applications

Model Driven Development of Component Centric Applications Model Driven Development of Component Centric Applications Andreas Heberle (entory AG), Rainer Neumann (PTV AG) Abstract. The development of applications has to be as efficient as possible. The Model Driven

More information

UNIVERSITY OF OSLO Department of Informatics. Metamodel-based Editor for Service Oriented Architecture (MED4SOA) Master thesis.

UNIVERSITY OF OSLO Department of Informatics. Metamodel-based Editor for Service Oriented Architecture (MED4SOA) Master thesis. UNIVERSITY OF OSLO Department of Informatics Metamodel-based Editor for Service Oriented Architecture (MED4SOA) Master thesis Rudin Gjataj July 5, 2007 ... to my grandparents, R. and A. Rama, whose love

More information

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1. www.thalesgroup.com Start Up Benoît Langlois / Thales Global Services 2 / Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Introduction EGF Architecture Concepts & Practice EGF Portfolios

More information

Model-Driven Language Engineering

Model-Driven Language Engineering Model-Driven Language Engineering Example of the ThingML language Franck Fleurey SINTEF Research Scientist (franck.fleurey@sintef.no) http://www.fleurey.com/franck INF520 - April 202 Language Engineering

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Detailed Description and User Guide

Detailed Description and User Guide Overview The aim of this Use Case is to implement a set of mappings already defined between a pair of metamodels using the ATL language. More specifically, we want to implement the transformation for obtaining

More information

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com Department of Software Systems Engineering University of Isfahan Fall 2013 Overview Model & Modeling UML & UML Profile

More information

A Formal Approach to Modeling and Model Transformations in Software Engineering

A Formal Approach to Modeling and Model Transformations in Software Engineering A Formal Approach to Modeling and Model Transformations in Software Engineering Department of Computer Engineering Faculty of Engineering Bergen University College 17.06.2008 EXPO 2008, Integration and

More information

A Customizable Methodology for the Model driven Engineering of Service based System Landscapes

A Customizable Methodology for the Model driven Engineering of Service based System Landscapes A Customizable Methodology for the Model driven Engineering of Service based System Landscapes Michael Stollberg, Brian Elvesæter, Victor Shafran, Roman Magarshak MDA4ServiceCloud Workshop Paris, France,

More information

Curriculum Map Grade(s): Subject: AP Computer Science

Curriculum Map Grade(s): Subject: AP Computer Science Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History

More information

Train control language teaching computers interlocking

Train control language teaching computers interlocking Computers in Railways XI 651 Train control language teaching computers interlocking J. Endresen 1, E. Carlson 1, T. Moen 1, K. J. Alme 1, Ø. Haugen 2, G. K. Olsen 2 & A. Svendsen 2 1 ABB, Bergensveien

More information

INF5120. INF5120 Modellbasert Systemutvikling Modelbased System development. Lecture 4: CIM and PIM (SoaML and SOA) Arne-Jørgen Berre

INF5120. INF5120 Modellbasert Systemutvikling Modelbased System development. Lecture 4: CIM and PIM (SoaML and SOA) Arne-Jørgen Berre INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 4: 09.02.2009 CIM and PIM (SoaML and SOA) Arne-Jørgen Berre 1 CIM to PIM to PSM What service-oriented aspects to capture in s

More information

FREQUENTLY ASKED QUESTIONS

FREQUENTLY ASKED QUESTIONS Borland Together FREQUENTLY ASKED QUESTIONS GENERAL QUESTIONS What is Borland Together? Borland Together is a visual modeling platform that enables software teams to consistently deliver on-time, high

More information

BIG MODELS AN ALTERNATIVE APPROACH

BIG MODELS AN ALTERNATIVE APPROACH 2. BIG MODELS AN ALTERNATIVE APPROACH Whitepaper Eclipse Summit 2008 Modeling Symposium Jos Warmer, Ordina (jos.warmer@ordina.nl) Abstract Scaling up modeling within project runs into many practical problems.

More information

Introduction to OpenArchitectureWare

Introduction to OpenArchitectureWare Introduction to OpenArchitectureWare Dr. Neil Loughran Neil.Loughran@sintef.no 20 th April 2009 ICT 1 Objective To give some insights into an alternative model transformation approach i.e. OpenArchitectureWare

More information

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction to Dependable Systems: Meta-modeling and modeldriven Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software

More information

Bachelor of Engineering, IT Thesis

Bachelor of Engineering, IT Thesis Technical University of Denmark Bachelor of Engineering, IT Thesis models Jakob Frydensberg Study no.: s020629 May 2008 Internal Report Number: IMM-B.Eng-2008-5 Supervisor: Hubert Baumeister, IMM, DTU

More information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Electronic Communications of the EASST Volume X (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Teaching Model Driven Language Handling Terje

More information

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS A Metamodel independent approach for Conflict Detection to support distributed development in MDE By Mostafa Pordel mpl08001@student.mdh.se A THESIS Submitted in partial fulfillment of requirements for

More information

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Lessons learned from building Eclipse-based add-ons for commercial modeling tools Lessons learned from building Eclipse-based add-ons for commercial modeling tools (from a technology perspective) István Ráth Ákos Horváth EclipseCon France June 14 2018 MagicDraw A popular modeling tool

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture Overview of DSLE Model driven software engineering g in general Grammars, signatures and meta-models DSL Design Code generation Models increase the level of abstraction used for both hardware and software

More information

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations 1 MDD with OMG Standards MOF, OCL, QVT & Graph Transformations Andy Schürr Darmstadt University of Technology andy. schuerr@es.tu-darmstadt.de 20th Feb. 2007, Trento Outline of Presentation 2 Languages

More information

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Stuart Duguid Portal & Workplace Specialist TechWorks, IBM Asia-Pacific Overview / Scope The aim of

More information

Science of Computer Programming. A model-driven process for the modernization of component-based systems

Science of Computer Programming. A model-driven process for the modernization of component-based systems Science of Computer Programming 77 (2012) 247 269 Contents lists available at SciVerse ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico A model-driven process

More information

COMET. Component and Model-based development Methodology. Adapted from COMET I and COMBINE. COMET Methodology Handbook

COMET. Component and Model-based development Methodology. Adapted from COMET I and COMBINE. COMET Methodology Handbook COMET Component and Model-based development Methodology Adapted from COMET I and COMBINE COMET Methodology Handbook Business, Requirements, Architecture and Platform modelling documentation Date: 05. April

More information

Chapter 5 System modeling

Chapter 5 System modeling Chapter 5 System Modeling Lecture 1 1 Topics covered Context models Interaction models Structural models Behavioral models Model-driven driven engineering 2 System modeling System modeling is the process

More information

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

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Metamodeling and Metaprogramming Seminar

Metamodeling and Metaprogramming Seminar Metamodeling and Metaprogramming Seminar 1. Introduction Prof. O. Nierstrasz Spring Semester 2008 Metamodeling and Metaprogramming Seminar Lecturer: Assistant: WWW: Oscar Nierstrasz www.iam.unibe.ch/~oscar

More information

Model Driven Service Interoperability through use of Semantic Annotations

Model Driven Service Interoperability through use of Semantic Annotations Model Driven Service Interoperability through use of Semantic Annotations Arne-Jørgen Berre Fangning Liu Jiucheng Xu Brian Elvesæter SINTEF, Norway KTH, Sweden SINTEF, Norway SINTEF, Norway Arne.J.berre@sintef.no

More information

Model Driven Engineering (MDE) and Diagrammatic Predicate Logic (DPL)

Model Driven Engineering (MDE) and Diagrammatic Predicate Logic (DPL) Model Driven Engineering (MDE) and Department of Computer Engineering Faculty of Engineering Bergen University College NORWAY 06.06.2008 Institute of Mathematics and Informatics, Vilnius, LITHUANIA Project

More information

OMG Modeling Glossary B

OMG Modeling Glossary B OMG Modeling Glossary B This glossary defines the terms that are used to describe the Unified Modeling Language (UML) and the Meta Object Facility (MOF). In addition to UML and MOF specific terminology,

More information

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 16 Pattern-Based Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger

More information

administrivia today UML start design patterns Tuesday, September 28, 2010

administrivia today UML start design patterns Tuesday, September 28, 2010 administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified

More information

A universal PNML Tool. Lukasz Zoglowek

A universal PNML Tool. Lukasz Zoglowek A universal PNML Tool Lukasz Zoglowek Kongens Lyngby 2008 Technical University of Denmark Informatics and Mathematical Modelling Building 321, DK-2800 Kongens Lyngby, Denmark Phone +45 45253351, Fax +45

More information

Modelling in Enterprise Architecture. MSc Business Information Systems

Modelling in Enterprise Architecture. MSc Business Information Systems Modelling in Enterprise Architecture MSc Business Information Systems Models and Modelling Modelling Describing and Representing all relevant aspects of a domain in a defined language. Result of modelling

More information

Acceleo Galileo Simultaneous Release

Acceleo Galileo Simultaneous Release Acceleo 0.8.0 Galileo Simultaneous Release Jonathan Musset Release Review : June 10, 2009 C om m unic a tion C ha nnel :e c lip s e.m o d e lin g.m 2 t n e w s g ro u p P roc es s D oc um enta tion : h

More information

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations Agris Sostaks, Elina Kalnina, Audris Kalnins, Edgars Celms, and Janis Iraids Institute of Computer Science and Mathematics,

More information

INF Lecture plan

INF Lecture plan INF5120 Modellbasert Systemutvikling Modelbased System development Lecture 12: 16.04.2012 Arne-Jørgen Berre arneb@ifi.uio.no or Arne.J.Berre@sintef.no Telecom and Informatics 1 INF5120 - Lecture plan -

More information

GMF 2.0 Europa Simultaneous Release

GMF 2.0 Europa Simultaneous Release GMF 2.0 Europa Simultaneous Release June 06, 2007 Release Review revision 2.3.1 January 17, 2007 1 Europa Simultaneous Release 2007 by Borland Software Corporation, made available under the EPL v1.0 GMF

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information