10 The problem with Bubbles #include<stdio.h> main() { BitVector typeflag (MAXBITS); char buf [1024]; What is a Model? A description of (part of) a system written in a well-defined language. (Equivalent to specification.) [Kleppe, 2003] A representation of a part of the function, structure and/or behavior of a system [MDA, 2001] A description or specification of the system and its environment for some certain purpose. A model is often presented as a combination of drawings and text. [MDA Guide, 2003] A set of statements about the system. [Seidewitz, 2003] (Statement: expression about the system that can be considered true or false.) 20 10

11 What is a Metamodel? A model of a well-defined language [Kleppe, 2003] A model of models [MDA, 2001] A model that defines the language for expressing a model [MOF, 2000] A meta-metamodel is a model that defines the language for expressing a metamodel. The relationship between a meta-metamodel and a metamodel is analogous to the relationship between a metamodel and a model. A model of a modelling language [Seidewitz, 2003] That is, a metamodel makes statements about what can be expressed in the valid models of a certain modelling language. 21 OMG s Four-layer metamodel architecture As with Magritte s picture of the pipe, we need to separate the thing from the model of the thing (I cannot smoke a picture) from the language(s) in which the model is written ( Ceci is not a pipe) 22 11

13 Domain Specific Languages (DSL) Languages for representing different views of a system in terms of models Higher-level abstraction than general purpose languages Closer to the problem domain than to the implementation domain Closer to the domain experts 25 DSLs are defined in terms of Abstract syntax (domain concepts and rules) Concrete syntax (language representation) Metamodels used to represent the abstract syntax Models conform to metamodels DSLs Metamodels are models, too A metamodel conforms to its meta-metamodel Level M 3 Level M 2 the SPEM MM the MOF MMM the UML MM the CWM MM EBNF the Pascal grammar This tower usually ends at level 4 Level M 1 Level M 0 a UML model m a particular use of m another UML model m another use of m a Pascal program P an execution X of program P 26 13

14 Domain Specific Modeling Several notations for Domain Specific Modeling (DSM) already available Abstract and concrete syntaxes for the definition of models, metamodels and their representations Enable the rapid and inexpensive development of DSLs and associated tools (e.g., editors) Repositories of metamodels and model transformations already in place Eclipse/GMT/AM3 project MDWEnet initiative 27 KM3 Specialized textual language for specifying metamodels Abstract syntax based on Ecore and MOF 2.0 Notions of package, class, attribute, reference, data type Simple and easy to work with Possible conversions to/from MOF, Ecore Good tool support Integrated with MDD development environments (AMMA) Growing interest and adoption 28 14

16 Is that all? These descriptions only capture the static specification of the language [Robin Milner]: A (meta)model consists of some concepts, and a description of permissible activity in terms of these concepts. [Chen et al]: Metamodel semantics Structural semantics: describe the meaning of models in terms of the structure of model instances: all of the possible sets of components and their relationships, which are consistent with the well-formedness rules Behavioral semantics: describe the evolution of the state of the modeled artifacts along some time model 31 Some questions It is not clear from the SimpleStateMachines metamodel what happens if an event occurs and there is no transition that can be triggered. Is the event lost, or is it held until the state machine reaches a state with a transition that can be triggered by the event? What is the behavior of the system when it contains internal transitions? How do they exactly behave? 32 16

17 Semantics of Metamodels How to represent the behavioural semantics of metamodels? [Cook]: Cognitive vs. Objectivist semantics Behavioral semantics needs to be formally captured by a mathematical framework representing the appropriate form of dynamics They should allow reasoning about the properties of the system under study (simulation, analysis, ) Three current approaches Axiomatic, Denotational, Operational 33 DSL Glossary 34 17

19 Model Driven Development (MDD) An approach to software development in which the focus and primary artifacts of development are models (as opposed to programs) and model transformations (compare with current language-driven approaches, whose first-class entities are programs and compilers ) MDD implies the (semi) automated generation of implementation(s) from models Modeling languages are key to MDD Model transformation languages are also modeling languages Models conform to meta-models MDA is the OMG s proposal for MDD, using OMG standards: MOF, UML, OCL, XMI, QVT MOF y UML allow the definition of new families of languages 37 Reasons for using MDD You want to provide a way for your domain-experts to formally specify their knowledge, and technology people define how this is implemented (using model transformations). You might want to provide different implementations (i.e. more concrete models) for the same model, perhaps because you want to run it on different platforms (.NET, Java, CORBA). You may want to capture knowledge about the domain, the technology, and their mapping uncluttered with details from the other areas. In general, you don t want to bother with implementation details when specifying you functionality. MDD results in a fan-out, i.e. one set of models can be the source for transformations to several targets

20 Agenda 1. Introduction 2. Models and Metamodels 3. Model Driven Development 4. MDA primer 5. OMG s standards for MDD 6. Conclusions 39 Beyond technology... Too many platforms and technologies Distributed Objects, Components, Web services,... Not really interoperable! Which technology is the best (today)? Too fast evolution Technologies evolve... and get obsolete very soon Which technology will be out tomorrow? And how long will it last? How to protect my investment in business logic? I want my business logic (processes, rules) to be as independent as possible from the supporting technologies So they can separately evolve Without having to start from scratch each time... And protecting the investment in each one 40 20

22 MDA Concepts (1/2) Architecture The architecture of a system is a specification of the parts and connectors of the system and the rules for the interactions of the parts using the connectors Viewpoint A viewpoint on a system is a technique for abstraction using a selected set of architectural concepts and structuring rules, in order to focus on particular concerns within that system View A viewpoint model or view of a system is a representation of that system from the perspective of a chosen viewpoint Implementation An implementation is a specification, which provides all the information needed to construct a system and to put it into operation 43 MDA Concepts (2/2) Platform A set of subsystems/technologies that provide a coherent set of functionality through interfaces and specified usage patterns that any subsystem that depends on the platform can use without concern for the details of how the functionality provided by the platform is implemented. Platform Independent Model (PIM) A model of a subsystem that contains no information specific to the platform, or the technology that is used to realize it. Platform Specific Model (PSM) A model of a subsystem that includes information about the specific technology that is used in the realization of it on a specific platform, and hence possibly contains elements that are specific to the platform

23 MDA models (1/2) Computation Independent Model (CIM) A view from a system from the Computational Independent Viewpoint. A CIM Focuses on the system and its environment; the details of the structure of the system are hidden or as yet undetermined. A CIM is sometimes called a domain model or a business model, and is specified using a vocabulary that is familiar to the practitioners of the domain in question It may hide much or all information about the use of automated data processing systems. Platform Independent Model (PIM) A platform independent model is a view of a system from the platform independent viewpoint. A PIM exhibits platform independence and is suitable for use with a number of different platforms of similar type. 45 MDA models (2/2) Platform Specific Model (PSM) A platform specific model is a view of a system from the platform specific viewpoint. A PSM combines the specifications in the PIM with the details that specify how that system uses a particular type of platform. Platform Model (PM) A platform model provides a set of technical concepts, representing the different kinds of parts that make up a platform and the services provided by that platform. It also provides, for use in a platform specific model, concepts representing the different kinds of elements to be used in specifying the use of the platform by an application

24 Examples of MDA models CIM Use case models capturing the system requirements PIM The software architecture of the system, that describes how the functionality of the system is decomposed into (architectural) components and connectors PSM A model of the J2EE implementation of the system, expressed using the EJB Profile that describes how the (architectural) components need to be implemented by EJBs Code The EJBs themselves, their configuration files, etc., ready to be deployed. 47 Model transformations: MDA Pattern Model transformation is the process of converting one model to another model of the same system The MDA pattern includes (at least): a PIM, a Platform Model, a Transformation, and a PSM 48 24

33 Applying the MDA pattern: 2) Marking UML Profilescan be usedtodefine the marks and for marking PIMs MOF QVT languages will define the mappings 65 Model mappings and marks Mappings An MDA mapping provides specifications for transformation of a PIM into a PSM for a particular platform. The platform model will determine the nature of the mapping Marks Model instance mappings define marks A mark represents a concept in the PSM, which can applied to an element of the PIM to indicate how that element is to be transformed Templates A mapping may also include templates, which are parameterised models that specify particular kinds of transformations These templates are like design patterns, but may include much more specific specifications to guide the transformation 66 33

34 Example of the result of a mapping interface MyClass { int getattributeone(); void setattributeone(int v); int oneoperation(); } 67 Result of a transformation template using a Security Profile (example) 68 34

36 Applying the MDA pattern: 4) Additional information Example. A particular architectural style may be specified: information may be added to connectors to specify quality of service. 71 The MDA pattern can be [has to be usually] applied several times in succession What is a PSM resulting from one application of the pattern, will be a PIM in the next application Each plataform can then address one particular aspect of the system, and are successively applied This process is modular and ordered Applying the MDA Pattern several times 72 36

37 The MDA way Define the system PIMs (structure, behavior, navigation, presentation, components, distribution,...) Select the target platform(s) Web pages (navigation), Java (Travel Agency), WSDL and JWSDP (external services: banks, airlines,...),... Define the transformations Either using transformation rules between the PIM metamodels (the PIM languages) and the target platforms metamodels Or by marking the PIM elements using the marks defined by the mappings Apply the mappings to the PIM elements Using a transformation engine, or manually This will produce a set of elements of different PSM Bridges (e.g., calls) between elements in heterogeneous target PSMs should be defined! 73 The two current MDA approaches Models do not contain all the information (e.g. behavior) Missing information is added as refinement in the PSM or code Round-trip engineering is sometimes possible Models are a complete, executable statement of a solution Model compilers translate these models into a running system ASL are used to model behavior No manual intervention required 74 37

Welcome to lesson 2 of the The Spanish Cat Home learning Spanish course. Bienvenidos a la lección dos. The first part of this lesson consists in this audio lesson, and then we have some grammar for you

manual de servicio nissan murano z51 Reference Manual To understand featuring to use and how to totally exploit manual de servicio nissan murano z51 to your great advantage, there are several sources of

IBM Rational for Power i The business-driven development lifecycle Agenda Business Driven Development Rational Development Lifecycle DEMO 2 The business-driven development lifecycle Prioritize Plan Manage

Real Time Systems Part 2: Cyclic schedulers Scheduling To organise the use resources to guarantee the temporal requirements A scheduling method is composed by: An scheduling algorithm that calculates the

& An explanation by Sr. Jdan direct object pronouns We usually use Direct Object Pronouns to substitute f it them in a sentence when the it them follows the verb. Because of gender, him and her could also

Hoja 1 DE 9 Connecting Cloudino Connector to FIWARE IoT 1. What is FIWARE IoT FIWARE is an open software ecosystem provided by the FIWARE Community (htttp://www.fiware.org). FIWARE exposes to developers

A la caza de vocabulario: come se dice en español? Entrevista: el medio ambiente 1. There are a lot of factories 2. The destruction of the ozone layer 3. In our city there is a lot of rubbish 4. Endangered

Connection from School to Home Kindergarten Math Module 2 Topic A Making 3 with Triangles and Chips Here is a simple activity to help your child learn about composing and decomposing the number 3 and analyzing

Learning Masters Fluent: Wind, Water, and Sunlight What I Learned List the three most important things you learned in this theme. Tell why you listed each one. 1. 2. 3. 22 Wind, Water, and Sunlight Learning

Reflexive verbs In this presentation, we are going to look at a special group of verbs called reflexives. Let s start out by thinking of the English verb wash. List several things that you can wash. Some

iclef-2002 at Universities of Alicante and Jaen University of Alicante (Spain) ! Introduction! Passage Retrieval Systems! IR-n system! IR-n system at iclef-2002! Conclusions and Future works ! Introduction!

The following is an explanation of the procedures for calling a special meeting of the shareholders. Enclosed are copies of documents, which you can use for your meeting. If you have any questions about

TOUCH MATH What is it and why is my child learning this? Memorizing math facts is an important skill for students to learn. Some students have difficulty memorizing these facts, even though they are doing

Tema: Study for the Analysis and the Conceptual Development of a European Port Access System Introduction EPAIC I (European Port Access Identification Card) study, completed in 2008, concluded that there

Flashcards Series 3 El Aeropuerto Flashcards are one of the quickest and easiest ways to test yourself on Spanish vocabulary, no matter where you are! Test yourself on just these flashcards at first. Then,

Brief Introduction to Docking and Virtual Screening with Autodock4 and Autodock Tools Environment set up Launch AutoDock Tools Gui. Aplicaciones --> MGLTools-1.5.4 --> AutoDockTools-1.5.4 You should see