Multi-level modelling allows modelling at more than two meta-levels at once. The document discusses how multi-level modelling can be used for model-driven engineering. It presents the basics of multi-level modelling using concepts like clabjects, potency, levels and the orthogonal classification architecture. Examples are provided where multi-level modelling has advantages over two-level modelling, such as for modelling product types and instances, and domain-specific process modelling languages. Tool support for multi-level modelling is discussed, as well as how multi-level models can be managed through constraints, transformations and code generation.
This document provides an overview and introduction to the C# programming language and .NET framework. It covers key C# concepts like its syntax, type system, classes, interfaces, collections and more. It also discusses .NET concepts like assemblies, garbage collection, and tools for C# development like Visual Studio.NET. The document contains sample C# code and concludes with a Hello World example to demonstrate basic C# syntax.
The document provides an overview of a two-day training course on C# scripting for an iX HMI solution. Day 1 covers basic C# concepts like variables, data types, flow control, methods, exceptions, arrays, and debugging. Day 2 focuses on scripting specifically for the iX platform, including accessing tags, screens, services, and more. Specific topics covered include script modules, events, file access, timers, serial ports, and referencing external assemblies.
This document summarizes Jonathan Fine's presentation on JavaScript Miller Columns. The presentation covers what Miller Columns are, a demonstration of them, how to specify the user interface and author content, using delegation in frameworks, running tests, sample test data, defining classes in JavaScript, and ways to make JavaScript more Pythonic. The goal is to develop a production version of Miller Columns that relies on library modules and is supported by documentation.
Lukas Renggli is a software engineer at Google who specializes in meta-models. He discusses several meta-models he has worked with including Protocol Buffers for serialization, Magritte for generic services, Google Web Toolkit for model-driven web development, and Helvetia for programming languages. He explains how each meta-model provides practical benefits like extensibility, language independence, and enabling the creation of specialized tools and applications.
Approaching Collaborative Modeling as an Uncertainty Reduction ProcessRomina Eramo
This document proposes approaching collaborative modeling as an uncertainty reduction process. It presents a model-driven approach where a metamodel with uncertainty (UMM) is generated from the base metamodel to represent multiple model versions as design alternatives. Modelers can then collaboratively edit models conforming to the UMM, with uncertainty points connecting elements to specific versions. The uncertainty is gradually reduced by selecting alternatives until a final model is obtained, supported by operations to filter the UMM and obtain the desired model. An example collaborative modeling scenario is provided to illustrate the approach.
MDE can take the form of OMG's Model Driven Architecture (MDA) using UML profiles or domain-specific languages (DSLs) with custom meta-models and notations. MDA is more generally applicable but also heavier weight and tool-dependent, while DSLs are lighter weight but have higher initial costs to develop the language environment. Both approaches have strengths when the right tooling is developed, such as reduced development time and higher quality, but challenges remain in reducing costs, improving flexibility and applicability to different scenarios.
Este documento define y explica los diferentes tipos de tributos que pagamos, incluyendo impuestos, contribuciones y tasas. Los impuestos se pagan por demostrar capacidad de pago y no hay contraprestación a cambio. Las contribuciones se pagan cuando recibimos un beneficio de obras públicas. Las tasas se pagan por el uso de bienes o servicios públicos. El estudio de los tributos es importante para entender las finanzas del gobierno y saber por qué y cuánto debemos pagar.
Multi-level modelling allows modelling at more than two meta-levels at once. The document discusses how multi-level modelling can be used for model-driven engineering. It presents the basics of multi-level modelling using concepts like clabjects, potency, levels and the orthogonal classification architecture. Examples are provided where multi-level modelling has advantages over two-level modelling, such as for modelling product types and instances, and domain-specific process modelling languages. Tool support for multi-level modelling is discussed, as well as how multi-level models can be managed through constraints, transformations and code generation.
This document provides an overview and introduction to the C# programming language and .NET framework. It covers key C# concepts like its syntax, type system, classes, interfaces, collections and more. It also discusses .NET concepts like assemblies, garbage collection, and tools for C# development like Visual Studio.NET. The document contains sample C# code and concludes with a Hello World example to demonstrate basic C# syntax.
The document provides an overview of a two-day training course on C# scripting for an iX HMI solution. Day 1 covers basic C# concepts like variables, data types, flow control, methods, exceptions, arrays, and debugging. Day 2 focuses on scripting specifically for the iX platform, including accessing tags, screens, services, and more. Specific topics covered include script modules, events, file access, timers, serial ports, and referencing external assemblies.
This document summarizes Jonathan Fine's presentation on JavaScript Miller Columns. The presentation covers what Miller Columns are, a demonstration of them, how to specify the user interface and author content, using delegation in frameworks, running tests, sample test data, defining classes in JavaScript, and ways to make JavaScript more Pythonic. The goal is to develop a production version of Miller Columns that relies on library modules and is supported by documentation.
Lukas Renggli is a software engineer at Google who specializes in meta-models. He discusses several meta-models he has worked with including Protocol Buffers for serialization, Magritte for generic services, Google Web Toolkit for model-driven web development, and Helvetia for programming languages. He explains how each meta-model provides practical benefits like extensibility, language independence, and enabling the creation of specialized tools and applications.
Approaching Collaborative Modeling as an Uncertainty Reduction ProcessRomina Eramo
This document proposes approaching collaborative modeling as an uncertainty reduction process. It presents a model-driven approach where a metamodel with uncertainty (UMM) is generated from the base metamodel to represent multiple model versions as design alternatives. Modelers can then collaboratively edit models conforming to the UMM, with uncertainty points connecting elements to specific versions. The uncertainty is gradually reduced by selecting alternatives until a final model is obtained, supported by operations to filter the UMM and obtain the desired model. An example collaborative modeling scenario is provided to illustrate the approach.
MDE can take the form of OMG's Model Driven Architecture (MDA) using UML profiles or domain-specific languages (DSLs) with custom meta-models and notations. MDA is more generally applicable but also heavier weight and tool-dependent, while DSLs are lighter weight but have higher initial costs to develop the language environment. Both approaches have strengths when the right tooling is developed, such as reduced development time and higher quality, but challenges remain in reducing costs, improving flexibility and applicability to different scenarios.
Este documento define y explica los diferentes tipos de tributos que pagamos, incluyendo impuestos, contribuciones y tasas. Los impuestos se pagan por demostrar capacidad de pago y no hay contraprestación a cambio. Las contribuciones se pagan cuando recibimos un beneficio de obras públicas. Las tasas se pagan por el uso de bienes o servicios públicos. El estudio de los tributos es importante para entender las finanzas del gobierno y saber por qué y cuánto debemos pagar.
Un estudio encontró que menos del 1% de las demandas contra el Estado venezolano tienen éxito. El estudio analizó 3,127 decisiones judiciales entre 2007-2008 y encontró que solo una de 293 demandas de nulidad administrativa tuvo éxito, aunque fue revocada meses después. De 75 demandas de empresas privadas, ninguna tuvo éxito, mientras que 4 demandas estatales sí lo tuvieron. A pesar de la ley, la realidad muestra poca protección judicial contra el Estado.
Software based projects are available for computer science, Information science and Information technology students. We have projects on JAVA, DOT NET, PHP, Web Applications, Android, Phyton etc.
More than 3000 project concepts are available for students to choose from. We have projects on Android, Cloud Computing, Networking, Image processing, Data Mining, Secure Computing, Mobile Computing, Ns2 etc.
All the projects are developed based on latest IEEE papers, We develop the projects according to university standards. We also provide synopsis guidance to students, Domain selection guidance, Classes on JAVA, J2EE, J2ME, Tools explanations, Source code explanation, Execution Guidance and provide complete project documentation materials and ppt materials.
We also provide projects for BSc, MSc, BCA,MCA and polytechnic students.
The document contains data on employee ages in percentages and numbers. Most employees (38.46% or 5 people) are between 31-35 years old. The next largest groups are between 26-30 years old (23.08% or 3 people) and 36-40 years old (23.08% or 3 people). In total there are 13 employees.
Jamie Fitzsimons is a highly recommended real estate agent based on testimonials from past clients. One client said Jamie went above and beyond to provide spot-on advice and genuine attention to their needs during a stressful home buying process. Another client noted Jamie was informed about neighborhoods, found multiple listings fitting their budget and needs, and guided them through a difficult negotiation process. A third client thanked Jamie for tirelessly working to sell their home in less than a week and going above and beyond to ensure everything came together at closing.
1. Asoka established principles of just and compassionate governance, seeking to promote the welfare of all people impartially as if they were his own children.
2. Some key principles were no harsh treatment of people, medical treatment for both people and animals, and minimizing harm, such as reducing slaughter of animals from hundreds of thousands to just a few.
3. Asoka oversaw the establishment of medical facilities across his realm and had beneficial plants and trees imported and grown to aid people and animals.
There has been made provision of free shelter,food,supervision for earthquake victims who currently got discharged from hospital and have lost their family members.Patanjali yogpeeth nepal runs Disaster Relief Missions so Donate and Support For Nepal.
Online presentation character development educationIwobe Kingsley S.
This presentation is designed to create a deep awareness of the importance of character education in our academic program and our learning curriculums with particular interest in African secondary schools. And to introduce the first Academic material on Character development education for teenage students to help them with the capacity for effective personal judgment, choices and decisions as against the wave of amorals trends and values sweeping across our whole society.
The photographer used a Canon 50D camera to take pictures for a magazine, shooting against white and grey backgrounds. Two lamps with lighting gels were also used to make the pictures more interesting and add vibrance.
The document discusses threading in Android applications. It begins by explaining that the main or UI thread is responsible for drawing the user interface and handling input/output events. Any blocking operations on this thread can cause the application to become unresponsive. The document then discusses various approaches for offloading work from the main thread including using AsyncTask, HandlerThread, IntentService, and ThreadPoolExecutor. It provides examples and best practices for implementing each approach to avoid blocking the main thread and ensure responsive user experiences.
The document discusses theories of interlanguage and fossilization in second language acquisition. It provides examples of error correction techniques for spoken and written errors. According to the document, student-generated repairs are most effective for learning as they require active engagement from students. While students want frequent correction to avoid fossilization, overcorrection can reduce motivation. The document concludes by discussing considerations for when and how to correct errors based on student exposure, error seriousness, and communication impact.
This document contains a peer editing checklist for a writing assignment. It includes questions for the peer editor and author to go through to check various elements of writing, including word choice, sentence structure, paragraph structure, and overall paper formatting. The questions cover topics such as spelling, parts of speech, vocabulary level, punctuation, capitalization, subject-verb agreement, paragraph organization, and following assignment guidelines. The peer editor leaves comments after each question for the author to address.
The document discusses proofs by contraposition. It explains that a statement of the form "if p then q" can be proven by showing its contrapositive "if not q then not p" is true. It provides examples of proofs using this method, including proving if n^2 is even then n is even, if m + n is even then m and n have the same parity, and if 3n + 2 is odd then n is odd. Homework exercises are provided applying this proof technique.
Theo giáo sư John Wheeler, tại một cấp độ siêu nhỏ của không gian, có một "đại dương" năng lượng vô tận liên tục được tạo ra khi năng lượng từ các chiều phi vật thể của Hệ Đa-vũ-trụ chảy vào thế giới vật chất chúng ta đang ở. Nếu chúng ta biết cách để tạo ra một trật tự trong đại dương năng lượng hỗn loạn này, chúng ta sẽ có cách để trích xuất năng lượng từ chân không lượng tử và sử dụng nó cho các mục đích cụ thể như: phát điện, tạo nhiệt, xử lý nước thải, v.v.
Tháng 3/2015, GS.Ts Alexander G. Parkhomov (ĐH Lomonosov-Moskva) đã báo cáo kết quả thử nghiệm thiết bị phản ứng Hợp hạch lạnh phiên bản mới của ông trước một hội đồng khoa học ở Moskva. Đây là bản dịch Powerpoint của Parkhomov hôm đó. Trong đợt thử nghiệm này, Parkhomov đã cho vận hành thiết bị hơn 3 ngày với mức COP cuối cùng hơn 2 (tức năng lượng ở đầu ra lớn hơn năng lượng đầu vào gấp 2 lần). Các thí nghiệm của Parkhomov được xem như là minh chứng cho các thí nghiệm trước đây của Rossi, Pons, Fleischmann, et al. trong lĩnh vực Hơp hạch lạnh (phản ứng hạt nhân an toàn).
Khoa học Năng lượng Mới cung cấp cho chúng ta một cái nhìn mới về một số lực cơ bản trong Thiên nhiên. Trong bản thuyết trình này, chúng ta sẽ đề cập đến bốn chủ đề chính: 1) Lực hấp dẫn với quán tính, 2) nguyên nhân hiệu ứng "chuyển động vĩnh cửu" của các nguyên tử và thiên hà, 3) Quỹ đạo electron với Trường Điểm 0, và 4) Các giao tiếp plasma.
Khi chúng ta áp dụng kiến thức của mình về các lực cơ bản trong thiên nhiên (như trọng lực, quán tính...) để tìm hiểu về cơ học thiên thể, chúng ta sẽ đến với một cách hiểu mới về vũ trụ. Trong bản thuyết trình này, chúng tôi xin đề cập đến bốn chủ đề vũ trụ học: 1) Năng lượng Tối, 2) Lý thuyết Trường Thống nhất, 3) Vụ Nổ lớn, và 4) sự dịch chuyển đỏ các thiên hà và ngôi sao xa xôi.
This document summarizes some experiments conducted by researchers from the Universidad Autónoma de Madrid on model-driven engineering. It introduces the researchers and their work analyzing meta-models, model transformations, and evaluating modeling tools and notations with users. Specific experiments discussed include checking meta-models for refactoring opportunities, statically analyzing transformations to find errors, and evaluating domain-specific modeling tools and construction notations. The researchers find multi-level modeling patterns commonly occur in meta-models and show examples of refactoring modeling scenarios to a multi-level structure.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It adds static typing and structuring mechanisms like classes, interfaces, and modules to JavaScript to help catch errors and provide better documentation for large scale JavaScript application development. Some key features of TypeScript include optional static types for functions and variables, classes with inheritance and static methods, interfaces, modules, generics, and type inference.
The document discusses object-oriented programming and C++. It begins with an introduction to OOP compared to procedural programming. Key concepts of OOP like classes, objects, inheritance and polymorphism are explained. The document then discusses C++ programming, including the structure of C++ programs, basic input/output functions, data types in C++, variables and constants. Pointers in C++ and how computer memory works with pointers are also summarized.
Un estudio encontró que menos del 1% de las demandas contra el Estado venezolano tienen éxito. El estudio analizó 3,127 decisiones judiciales entre 2007-2008 y encontró que solo una de 293 demandas de nulidad administrativa tuvo éxito, aunque fue revocada meses después. De 75 demandas de empresas privadas, ninguna tuvo éxito, mientras que 4 demandas estatales sí lo tuvieron. A pesar de la ley, la realidad muestra poca protección judicial contra el Estado.
Software based projects are available for computer science, Information science and Information technology students. We have projects on JAVA, DOT NET, PHP, Web Applications, Android, Phyton etc.
More than 3000 project concepts are available for students to choose from. We have projects on Android, Cloud Computing, Networking, Image processing, Data Mining, Secure Computing, Mobile Computing, Ns2 etc.
All the projects are developed based on latest IEEE papers, We develop the projects according to university standards. We also provide synopsis guidance to students, Domain selection guidance, Classes on JAVA, J2EE, J2ME, Tools explanations, Source code explanation, Execution Guidance and provide complete project documentation materials and ppt materials.
We also provide projects for BSc, MSc, BCA,MCA and polytechnic students.
The document contains data on employee ages in percentages and numbers. Most employees (38.46% or 5 people) are between 31-35 years old. The next largest groups are between 26-30 years old (23.08% or 3 people) and 36-40 years old (23.08% or 3 people). In total there are 13 employees.
Jamie Fitzsimons is a highly recommended real estate agent based on testimonials from past clients. One client said Jamie went above and beyond to provide spot-on advice and genuine attention to their needs during a stressful home buying process. Another client noted Jamie was informed about neighborhoods, found multiple listings fitting their budget and needs, and guided them through a difficult negotiation process. A third client thanked Jamie for tirelessly working to sell their home in less than a week and going above and beyond to ensure everything came together at closing.
1. Asoka established principles of just and compassionate governance, seeking to promote the welfare of all people impartially as if they were his own children.
2. Some key principles were no harsh treatment of people, medical treatment for both people and animals, and minimizing harm, such as reducing slaughter of animals from hundreds of thousands to just a few.
3. Asoka oversaw the establishment of medical facilities across his realm and had beneficial plants and trees imported and grown to aid people and animals.
There has been made provision of free shelter,food,supervision for earthquake victims who currently got discharged from hospital and have lost their family members.Patanjali yogpeeth nepal runs Disaster Relief Missions so Donate and Support For Nepal.
Online presentation character development educationIwobe Kingsley S.
This presentation is designed to create a deep awareness of the importance of character education in our academic program and our learning curriculums with particular interest in African secondary schools. And to introduce the first Academic material on Character development education for teenage students to help them with the capacity for effective personal judgment, choices and decisions as against the wave of amorals trends and values sweeping across our whole society.
The photographer used a Canon 50D camera to take pictures for a magazine, shooting against white and grey backgrounds. Two lamps with lighting gels were also used to make the pictures more interesting and add vibrance.
The document discusses threading in Android applications. It begins by explaining that the main or UI thread is responsible for drawing the user interface and handling input/output events. Any blocking operations on this thread can cause the application to become unresponsive. The document then discusses various approaches for offloading work from the main thread including using AsyncTask, HandlerThread, IntentService, and ThreadPoolExecutor. It provides examples and best practices for implementing each approach to avoid blocking the main thread and ensure responsive user experiences.
The document discusses theories of interlanguage and fossilization in second language acquisition. It provides examples of error correction techniques for spoken and written errors. According to the document, student-generated repairs are most effective for learning as they require active engagement from students. While students want frequent correction to avoid fossilization, overcorrection can reduce motivation. The document concludes by discussing considerations for when and how to correct errors based on student exposure, error seriousness, and communication impact.
This document contains a peer editing checklist for a writing assignment. It includes questions for the peer editor and author to go through to check various elements of writing, including word choice, sentence structure, paragraph structure, and overall paper formatting. The questions cover topics such as spelling, parts of speech, vocabulary level, punctuation, capitalization, subject-verb agreement, paragraph organization, and following assignment guidelines. The peer editor leaves comments after each question for the author to address.
The document discusses proofs by contraposition. It explains that a statement of the form "if p then q" can be proven by showing its contrapositive "if not q then not p" is true. It provides examples of proofs using this method, including proving if n^2 is even then n is even, if m + n is even then m and n have the same parity, and if 3n + 2 is odd then n is odd. Homework exercises are provided applying this proof technique.
Theo giáo sư John Wheeler, tại một cấp độ siêu nhỏ của không gian, có một "đại dương" năng lượng vô tận liên tục được tạo ra khi năng lượng từ các chiều phi vật thể của Hệ Đa-vũ-trụ chảy vào thế giới vật chất chúng ta đang ở. Nếu chúng ta biết cách để tạo ra một trật tự trong đại dương năng lượng hỗn loạn này, chúng ta sẽ có cách để trích xuất năng lượng từ chân không lượng tử và sử dụng nó cho các mục đích cụ thể như: phát điện, tạo nhiệt, xử lý nước thải, v.v.
Tháng 3/2015, GS.Ts Alexander G. Parkhomov (ĐH Lomonosov-Moskva) đã báo cáo kết quả thử nghiệm thiết bị phản ứng Hợp hạch lạnh phiên bản mới của ông trước một hội đồng khoa học ở Moskva. Đây là bản dịch Powerpoint của Parkhomov hôm đó. Trong đợt thử nghiệm này, Parkhomov đã cho vận hành thiết bị hơn 3 ngày với mức COP cuối cùng hơn 2 (tức năng lượng ở đầu ra lớn hơn năng lượng đầu vào gấp 2 lần). Các thí nghiệm của Parkhomov được xem như là minh chứng cho các thí nghiệm trước đây của Rossi, Pons, Fleischmann, et al. trong lĩnh vực Hơp hạch lạnh (phản ứng hạt nhân an toàn).
Khoa học Năng lượng Mới cung cấp cho chúng ta một cái nhìn mới về một số lực cơ bản trong Thiên nhiên. Trong bản thuyết trình này, chúng ta sẽ đề cập đến bốn chủ đề chính: 1) Lực hấp dẫn với quán tính, 2) nguyên nhân hiệu ứng "chuyển động vĩnh cửu" của các nguyên tử và thiên hà, 3) Quỹ đạo electron với Trường Điểm 0, và 4) Các giao tiếp plasma.
Khi chúng ta áp dụng kiến thức của mình về các lực cơ bản trong thiên nhiên (như trọng lực, quán tính...) để tìm hiểu về cơ học thiên thể, chúng ta sẽ đến với một cách hiểu mới về vũ trụ. Trong bản thuyết trình này, chúng tôi xin đề cập đến bốn chủ đề vũ trụ học: 1) Năng lượng Tối, 2) Lý thuyết Trường Thống nhất, 3) Vụ Nổ lớn, và 4) sự dịch chuyển đỏ các thiên hà và ngôi sao xa xôi.
This document summarizes some experiments conducted by researchers from the Universidad Autónoma de Madrid on model-driven engineering. It introduces the researchers and their work analyzing meta-models, model transformations, and evaluating modeling tools and notations with users. Specific experiments discussed include checking meta-models for refactoring opportunities, statically analyzing transformations to find errors, and evaluating domain-specific modeling tools and construction notations. The researchers find multi-level modeling patterns commonly occur in meta-models and show examples of refactoring modeling scenarios to a multi-level structure.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It adds static typing and structuring mechanisms like classes, interfaces, and modules to JavaScript to help catch errors and provide better documentation for large scale JavaScript application development. Some key features of TypeScript include optional static types for functions and variables, classes with inheritance and static methods, interfaces, modules, generics, and type inference.
The document discusses object-oriented programming and C++. It begins with an introduction to OOP compared to procedural programming. Key concepts of OOP like classes, objects, inheritance and polymorphism are explained. The document then discusses C++ programming, including the structure of C++ programs, basic input/output functions, data types in C++, variables and constants. Pointers in C++ and how computer memory works with pointers are also summarized.
The document summarizes a presentation on model execution given by Benoit Combemale. It discusses the history of model execution, including its use in scientific computing, hardware design, and software/systems design. It outlines current initiatives like Matlab Simulink, xtUML, and Papyrus-RT. It advocates for language-oriented modeling and software language engineering using language workbenches. It also discusses implementing semantics for domain-specific languages using approaches like visitors and action languages. The main current initiatives highlighted are language workbenches and the Eclipse GEMOC Studio.
This document discusses machine learning concepts and techniques for categorization, popularity, and sequence labeling. It introduces linear models, decision trees, ensemble methods, and evaluation metrics. The document aims to provide a self-contained tutorial and explain the notation used. It outlines examples of machine learning applications and discusses encoding objects with features, the machine learning framework, and specific techniques like perceptrons, logistic regression, decision trees, boosting, and hidden Markov models.
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
AI/ML Infra Meetup
May. 23, 2024
Organized by Alluxio
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
- Eric Wang (Software Engineer, @Uber)
Uber has numerous deep learning models, most of which are highly complex with many layers and a vast number of features. Understanding how these models work is challenging and demands significant resources to experiment with various training algorithms and feature sets. With ML explainability, the ML team aims to bring transparency to these models, helping to clarify their predictions and behavior. This transparency also assists the operations and legal teams in explaining the reasons behind specific prediction outcomes.
In this talk, Eric Wang will discuss the methods Uber used for explaining deep learning models and how we integrated these methods into the Uber AI Michelangelo ecosystem to support offline explaining.
The document discusses Visual Basic 2010 and object-oriented programming concepts. It covers the system development cycle, programming languages, object-oriented principles like encapsulation, inheritance and polymorphism. It also discusses programming concepts like classes and objects, events and actions, integrated development environments, and tools like buttons, checkboxes and listboxes. The document provides instructions on installing VB 2010 Express and creating basic programs to learn Visual Basic.
My presentation at Sulake (www.sulake.com) about functional programming languages and how to adopt a functional-style in Java development. I argue that functional programs are more robust than imperative ones.
Extending High-Utility Pattern Mining with Facets and Advanced Utility Functi...Francesco Cauteruccio
The document proposes a framework for extending high-utility pattern mining (HUPM) with facets and advanced utility functions. It introduces a multi-layer transaction representation using containers, objects, and transactions. Facets can be associated with items or different transaction levels to define utility. Advanced utility functions combine utility vectors in various ways to calculate pattern utility. An ASP encoding is developed to find patterns satisfying minimum occurrence and utility thresholds. The framework is evaluated on a sentiment analysis dataset, demonstrating quantitative and qualitative benefits over classical HUPM.
The document proposes a novel approach called multi-level model product lines (MLM PLs) that combines multi-level modeling and product lines to create highly configurable families of modeling languages. MLM PLs support open variability through instantiation at different meta-levels and closed variability through feature configurations. A theory and tool implementation are presented, allowing exploratory modeling where variability can be resolved incrementally. The approach is demonstrated using the MetaDepth modeling environment.
GPT and other Text Transformers: Black Swans and Stochastic ParrotsKonstantin Savenkov
Over the last year, we see increasingly more performant Text Transformers models, such as GPT-3 from OpenAI, Turing from Microsoft, and T5 from Google. They are capable of transforming the text in very creative and unexpected ways, like generating a summary of an article, explaining complex concepts in a simple language, or synthesizing realistic datasets for AI training. Unlike more traditional Machine Learning models, they do not require vast training datasets and can start based on just a few examples.
In this talk, we will make a short overview of such models, share the first experimental results and ask questions about the future of the content creation process. Are those models ready for prime time? What will happen to the professional content creators? Will they be able to compete against such powerful models? Will we see GPT post-editing similar to MT post-editing? We will share some answers we have based on the extensive experimenting and the first production projects that employ this new technology.
Feature Importance Analysis with XGBoost in Tax auditMichael BENESTY
Presentation of a real use case at TAJ law firm (Deloitte Paris) of applying Machine learning on accounting to help clients to prepare their tax audit.
Generic Math, funzionalità ora schedulata per .NET 7, e Azure IoT PnP mi hanno risvegliato un argomento che nel mio passato mi hanno portato a fare due/tre viaggi, grazie all'Università di Trieste, a Cambridge (2006/2007 circa) e a Seattle (2010, quando ho parlato pubblicamente per la prima volta di Azure :) e che mi ha fatto conoscere il mito Don Box!), a parlare di codice in .NET che aveva a che fare con la matematica e con la fisica: le unità di misura e le matrici. L'avvento dei Notebook nel mondo .NET e un vecchio sogno legato alla libreria ANTLR (e tutti i miei esercizi di Code Generation) mi portano a mettere in ordine 'sto minestrone di idee...o almeno ci provo (non so se sta tutto in piedi).
This document discusses design patterns and provides examples of implementing some common patterns in C#. It begins with an introduction to design patterns, their history and types. It then demonstrates implementing singleton, prototype, facade and decorator patterns in C#, including class diagrams and implementation steps. It discusses advantages of design patterns and hints for advanced development, like making patterns thread-safe. The document concludes with a thank you.
LESSON 4: INTRODUCING FUNCTIONS AND MODULAR DESIGN
Learn about Functions in Python. Advantages and disadvantages of functions. Introduction to Modular design. Local and Global Variables and their use. Passing parameters. What are arguments? Big questions: Evolution vs Intelligent design in light of functions (and modular design). A closer look at Robotics and advances in this field. Challenges and tasks including with solutions. Suggested research/HW and YouTube video recommendations. A note on Python’s built in functions.
Lecture two,
An introduction to Design Pattern
History
Pattern Language,
Categorization according to GoF
MVC
Creational Design Patterm
Factory Method
Abstract Factory
Singleton
Builder
This document discusses reusability, portability, and interoperability in object-oriented analysis and design. It provides examples of deliberate software reuse from companies like Raytheon, Toshiba, NASA, GTE, and Hewlett-Packard that achieved reuse rates from 15-60% and significant cost savings and productivity gains. Barriers to reuse include the "not invented here" attitude and bugs in reused code. The document also discusses achieving portability across platforms and interoperability between programs from different vendors.
Sofwear deasign and need of design patternchetankane
This document discusses software design and the need for design patterns. It covers the three phases of software design: analysis, design, and implementation. It then discusses what design patterns are, providing the definition that they are standard solutions to common programming problems. The document outlines the three main categories of design patterns: structural, creational, and behavioral. It provides examples like the factory pattern, explaining how it works to reduce dependencies and improve flexibility. In summary, the document introduces software design processes and argues that using design patterns provides benefits like improved code reuse and developer communication.
This document describes a model-driven approach to building augmented reality (AR) applications. Key points:
- AR applications are specified using models that describe the domain, AR representation, object anchoring using techniques like QR codes and beacons, and interaction with external APIs.
- An AR interpreter renders the virtual objects based on the models and allows interaction in the physical world.
- The approach was evaluated through case studies of AR apps for networking, museums, home design, inventory, and social media. A user study found the AR apps to have good usability.
- Future work includes adding physics, collaborative editing, migrating the designer to the web, and more user studies.
This document presents a modular approach to defining families of domain-specific languages (DSLs) using graph transformations. The approach uses language modules that define the abstract syntax and semantics of DSL variants. Module dependencies and extensions define how the variants relate and combine. Configurations select modules to derive a specific DSL meta-model and rules. The approach reduces specification effort compared to defining each variant separately while ensuring behavioral consistency. Tool support and experiments demonstrate the feasibility of the modular approach.
This document provides an overview of scientific paper writing. It discusses why publishing research is important, different types of venues and their review processes. It also covers topics such as ethics in publishing, rankings of venues and authors, and types of papers. The document then describes how to structure a research paper, including sections such as the introduction, main body, related work, and conclusions. Finally, it provides tips for scientific writing and the publication process.
The document discusses flexible modeling based on facets. It introduces facets as objects that can be added to and removed from host objects, acquiring their slots, types, and constraints. This allows objects to become open and dynamically extendable. Facets provide a way to reuse operations on models, extend existing objects with new information, and view models through different "scenes". Facet laws and interfaces control facet acquisition and removal and which meta-models can be used for facets.
The document discusses mutation testing for ATL model transformations. It introduces mutation testing and how it can be applied to ATL. The key contributions are new mutation operators for ATL that mimic common developer errors, evaluation of test generation techniques and operators, and an open-source tool for mutation testing of ATL.
Máster en Métodos Formales en Ingeniería Informáticamiso_uam
Presentación del Máster en Métodos Formales en Ingeniería Informática en jornadas de posgrado en la facultad de ciencias de la Universidad Autónoma de Madrid
This document discusses analysing meta-model product lines (MMPLs) through lifted analysis techniques. It presents MMPLs as a compact representation of multiple meta-model variants defined through features. It aims to ensure the correctness of MMPLs by lifting existing meta-model analysis techniques to the product line level, including syntactic analysis of meta-models and checking meta-model properties. The key contributions are a declarative notion of MMPLs, lifted analyses to check well-formedness and properties more efficiently than enumerating each meta-model, and a classification of different property types that can be analysed on MMPLs. Tool support for specification and analysis of MMPLs is also discussed.
This document discusses facet-oriented modeling, which introduces the concept of facets to provide flexibility and dynamism to model-driven engineering. Facets allow objects to dynamically acquire and drop slots, types, and constraints. A facet is an object that becomes part of a host object, making its slots accessible. A DSL is presented for adding and removing facets. Facet interfaces and laws specify valid facet combinations and when hosts should acquire facets. The approach is evaluated in scenarios like integrating annotation models and reuse of transformations. It is implemented in the MetaDepth modeling tool.
This document discusses requirements for flexible modelling tools that can accommodate different modelling purposes and stages of development. It proposes a meta-modelling language and explicit modelling process to provide flexibility in modelling. The meta-modelling language supports multiple classification levels and types, as well as extensibility through untyped elements. An explicit modelling process defines phases, conformance rules, and transitions between phases to provide guidance for model development. Process-aware assistance filters model checks and fixes according to the current process intent.
The document discusses developing a transformation product line (TPL) approach to define model transformations over variants of a meta-model product line (MMPL) in a compact, reusable, extensible, and analyzable way by using transformation fragments with presence conditions and composing them through abstraction and overriding mechanisms. It aims to address the challenges of defining transformations over many variants of a meta-model in a scalable way while maintaining correctness through analysis at the TPL level.
The document provides an overview of the Model-Driven Engineering (MDE) research activities of the MISO group at the Universidad Autónoma de Madrid. The MISO group focuses on areas like (meta-)modelling, domain-specific languages, and model transformations. Some of their work includes multi-level modelling, a-posteriori typing, modelling through social networks, pattern-based development of DSLs, and analysis of model transformations for correctness.
The document summarizes model-driven engineering (MDE) and discusses approaches to reuse in MDE transformations. Specifically:
- MDE aims to increase abstraction in software development by modeling at a higher level of abstraction rather than coding directly. Models are used to describe problems, simulate/verify/test, and generate code.
- Reusing MDE artifacts like transformations is challenging as they are defined for specific meta-models. Current practice involves ad-hoc copying and adapting transformations, which is error-prone.
- The document presents three approaches to improve reuse: concepts, multi-level modeling, and a-posteriori typing. Concepts define transformations at a more abstract level and allow automated adaptation.
This document provides an overview of the Model-Driven Engineering (MDE) research activities at the MISO group at the Autonomous University of Madrid. The MISO group conducts research in (meta-)modeling, domain-specific languages, and model transformations. Their work includes multi-level modeling, a-posteriori typing, modeling through social networks, active DSLs, transformation analysis, and techniques for improving the reusability of model transformations.
The document discusses the need for and concepts around active domain-specific languages (DSLs) that can be used across devices and enable more advanced modeling scenarios. It presents a feature space for DSLs that includes characteristics like being geolocated, supporting external interactions and context-sensitivity. An active DSL is defined as combining these features. The initial realization of these ideas is demonstrated with DSL-Comet, which allows specifying DSLs for use on desktop and mobile and supports collaboration. Future work includes expanding DSL-Comet's capabilities and applying DSLs to large-scale collaborative modeling applications.
This document presents an approach for reusing model transformations through the extraction of typing requirements models (TRMs) from transformations. TRMs characterize the minimal requirements that source and target meta-models must satisfy for a transformation to be well-typed. The approach extracts TRMs from ATL transformations through an attribute grammar. Meta-models can then be checked for conformance to the TRMs to determine if a transformation can be reused. An evaluation of the approach on four transformations showed that it achieved high precision and recall in checking over 2,000 mutated meta-models for conformance.
This document discusses domain-specific modeling languages (DSLs) and presents opportunities and challenges in their construction and use. It proposes an example-based process to engage domain experts in DSL development by automatically inducing a meta-model from example model fragments provided by experts. It also discusses opportunities to make DSLs more "active" by extending their use beyond static design-time scenarios, such as through mobile and context-aware modeling.
1) DSL-maps provide a graphical, mind-map inspired notation for flexibly representing requirements for domain-specific languages (DSLs).
2) An automated transformation can generate an initial meta-model design from a DSL-map by mapping ideas to classes and relationships.
3) A preliminary evaluation with 7 engineers found DSL-maps easy to understand and that the generated meta-models from DSL-maps with pattern assistance were complete and useful.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
14 th Edition of International conference on computer visionShulagnaSarkar2
About the event
14th Edition of International conference on computer vision
Computer conferences organized by ScienceFather group. ScienceFather takes the privilege to invite speakers participants students delegates and exhibitors from across the globe to its International Conference on computer conferences to be held in the Various Beautiful cites of the world. computer conferences are a discussion of common Inventions-related issues and additionally trade information share proof thoughts and insight into advanced developments in the science inventions service system. New technology may create many materials and devices with a vast range of applications such as in Science medicine electronics biomaterials energy production and consumer products.
Nomination are Open!! Don't Miss it
Visit: computer.scifat.com
Award Nomination: https://x-i.me/ishnom
Conference Submission: https://x-i.me/anicon
For Enquiry: Computer@scifat.com
Transforming Product Development using OnePlan To Boost Efficiency and Innova...OnePlan Solutions
Ready to overcome challenges and drive innovation in your organization? Join us in our upcoming webinar where we discuss how to combat resource limitations, scope creep, and the difficulties of aligning your projects with strategic goals. Discover how OnePlan can revolutionize your product development processes, helping your team to innovate faster, manage resources more effectively, and deliver exceptional results.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
React.js, a JavaScript library developed by Facebook, has gained immense popularity for building user interfaces, especially for single-page applications. Over the years, React has evolved and expanded its capabilities, becoming a preferred choice for mobile app development. This article will explore why React.js is an excellent choice for the Best Mobile App development company in Noida.
Visit Us For Information: https://www.linkedin.com/pulse/what-makes-reactjs-stand-out-mobile-app-development-rajesh-rai-pihvf/
🏎️Tech Transformation: DevOps Insights from the Experts 👩💻campbellclarkson
Connect with fellow Trailblazers, learn from industry experts Glenda Thomson (Salesforce, Principal Technical Architect) and Will Dinn (Judo Bank, Salesforce Development Lead), and discover how to harness DevOps tools with Salesforce.
A neural network is a machine learning program, or model, that makes decisions in a manner similar to the human brain, by using processes that mimic the way biological neurons work together to identify phenomena, weigh options and arrive at conclusions.
The Comprehensive Guide to Validating Audio-Visual Performances.pdfkalichargn70th171
Ensuring the optimal performance of your audio-visual (AV) equipment is crucial for delivering exceptional experiences. AV performance validation is a critical process that verifies the quality and functionality of your AV setup. Whether you're a content creator, a business conducting webinars, or a homeowner creating a home theater, validating your AV performance is essential.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
2. WHAT IS THE TUTORIAL ABOUT?
2
Model-Driven Engineering
• Models are core assets of development
• Automatically processable, refined into
code, etc.
• Mainstream modelling approach is two-
level (meta-models/models)
Multi-level modelling
• More than two meta-levels at a time
• Meta-levels can influence other levels
beyond the immediate one
• Simplifies modelling in some scenarios
ProductType@2
VAT@1: double
price: double
Book: ProductType
VAT=18.0
price=10.0
mobyDick: Book
two-level
multi-level
3. WHAT WILL BE COVERED
3
Concepts
• Basic concepts of potency-based multi-level modelling
• Use of model management languages in a multi-level setting
When to use multi-level modelling
• Examples: realistic, beyond toy examples
• “Smells” signalling scenarios where a multi-level solution has benefits
• Results of analysis over more than 400 meta-models
Use in practice
• Support by the metaDepth meta-modelling tool (http://metaDepth.org)
• Integrated with the Epsilon model management languages
4. MATERIAL
Download the last version of metaDepth (0.2c) at
• http://metaDepth.org
• Java 8 is needed
• PlantUML is optional (http://plantuml.com/)
All files used in this tutorial are available at
• http://metaDepth.org/tutorial
Downloading this material is not needed to follow the tutorial
…but you will get a better understanding of the tool
…and you’ll be able to play with our running example
4
5. AGENDA
5
Multi-level modelling: the basics
motivation
clabjects, potency
orthogonal classification, linguistic extensions
meta-modelling features
examples
MetaDepth
Multi-level model management
Advanced techniques
When and where to use multi-level modelling
Summary and conclusion
6. MOTIVATION
Sometimes, one needs to explicitly model meta-modelling
facilities, like:
• Instantiation (modelling both types and objects)
• Declaration and instantiation of attributes and references
• Inheritance
For example:
• Product types and instances [e-commerce applications]
• Task types and instances [process modelling languages]
• Component types and instances [architectural languages]
• Player types and instances [gaming applications]
• …
6
7. EXAMPLE
7
Model product types (books, CDs) and their instances, to be
added on demand. Product types have a VAT, while
instances have a price.
Explicit modelling of types and instances
• Types can be added dynamically
• Features of types are fixed and known a priori
Common modelling pattern, also known as: Type object
[Martin et. al 97], item descriptor [Coad 1992], metaobject
[Kiczales and Rivieres 1991]
8. SOLUTION 1: STATIC TYPES
8
ProductType
Book
vat: double {readonly}
price: double
vat : double =4.0
GoF: Book
price = 35
product
types
Features of
product types
product
instances
Does not meet the
requirements (product types
are not dynamic)
Emulates values at the
meta-level via redefinition
Uses a native meta-
modelling facility
(instantiation)
9. SOLUTION 2: EXPLICIT
DYNAMIC TYPES
9
Requires adding an extra
class (more if dynamic
features are needed)
Requires emulating the
instantiation relation
Explicit modelling of
instantiation yields flexibility
ProductType
vat: double
Product
price: double
type1
Book: ProductType
vat = 4.0
:type
GoF: Product
price = 35
product
types
product
instances
10. SOLUTION 3: PROMOTION
TRANSFORMATION
10
Needs a model transformation
Hides information: “every
ProductType is a Product”
hardcoded in the transformation
Disconnection between type and
instance facets of ProductTypes
Flexibility of the transformation
Book
(3) type facet
GoF: Book
price = 35
(4)
Product
price: double
ProductType
vat: double
(2) instance facet
(1)
Book:ProductType
vat=4.0
Similar to the concept of powertype
13. CLABJECT =
CLASS + OBJECT
Elements have a combined type and instance facet
Book
• Instance of ProductType
• Can provide a value for vat
• Type for GoF
• Can declare new features
• (We’ll see how, using the OCA)
ProductType has type facet only
GoF has instance facet only
13
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
C. Atkinson and T. Kühne. 2001. The essence of multilevel metamodeling. UML’01 (LNCS), Vol.
2185. Springer, 19–33.
14. POTENCY
Used to characterize instances beyond the
next meta-level
Models, Clabjects and their features have a
potency
• Natural number (or zero)
• Decreased at each lower meta-level
• Indicates at how many meta-levels the
element can be instantiated
We use the “@potency” notation
By default elements take the potency of their
containers
14
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
C. Atkinson and T. Kühne. 2001. The essence of multilevel metamodeling. UML’01 (LNCS), Vol.
2185. Springer, 19–33.
16. POTENCY
Strict meta-modelling approach (*)
Instantiation is mediated… also for fields
16
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
price: double
vat=4.0
price = 35
@2
@1
@0
shortcut for
(*) modulo “linguistic extensions”
17. POTENCY
Strict meta-modelling approach (*)
Instantiation is mediated… also for fields
17
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
price: double = 35
vat=4.0
@2
@1
@0
price can be given a
value at level 1, acting
as default value for
Book instances
(*) modulo “linguistic extensions”
18. POTENCY
Strict meta-modelling approach (*)
Instantiation is mediated… also for fields
18
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double=35
vat=4.0
@2
@1
@0
price can be given a
value at level 2, acting
as default value for
instances of instances
of ProductType
(*) modulo “linguistic extensions”
19. LEVEL
Refers to the potency of the model
A model with level L can hold elements with potency L
19
ProductType
Book:
ProductType
GoF: Book
price: double
price = 35
@2
@1
@0
TaxKind@1
value: double
tax@1
0..1
SuperReduced:
TaxKind
value = 6.0
Reduced:
TaxKind
value = 10.0
:tax
General:
TaxKind
value = 21.0
22. 22
LINGUISTIC VIEW
Clabject
*supers
InstanceType
potency: int
type
*
*
Linguistic meta-model
(very simplified)
*
Feature
«ling.instanceOf»
Model
*
L2: Model
vat: Feature
potency=2
ProductType: Clabject
potency=2
potency=1
price: Feature
potency=2
L1: Model
potency=1
:type
Book: Clabject
potency=1
price1: Feature
potency=1
vat: Feature
potency=0
:type
:type
L0: Model
potency=0
GoF: Clabject
potency=0
price0: Feature
potency=0
:type
:type
:type :type
0..1
23. LINGUISTIC
EXTENSIONS
Elements with no ontological type
• Ontological typing is optional
• Linguistic typing is mandatory
New clabjects or features
Not everything can be anticipated
at the top-most level
23
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
price = 35
numPages = 250
@2
@1
@0
vat=4.0
numPages : int
J. de Lara, E. Guerra. 2010. Deep meta-modelling with metaDepth. In TOOLS’10 (LNCS),
Vol. 6141. Springer, 1–20.
24. 24
LINGUISTIC
EXTENSIONS
Elements with no ontological type
• Ontological typing is optional
• Linguistic typing is mandatory
New clabjects or features
Not everything can be anticipated
at the top-most level
Author
Book:
ProductType
GoF: Book
vat@1: double
price: double
price = 35
numPages = 395
@2
@1
@0
vat=4.0
numPages : int
ProductType
name: String
books
*
eg: Author
name=“Gamma”
:books
eg: Author
name=“Johnson”
:books
33. ADVANTAGES
The top level can be customized for the process domain
• Family of DSLs for process modelling
Transformations can be defined over the top level and reused
across the whole family
• Code generators
• Model-to-model transformations
• In-place transformations
• Queries
33
36. EXERCISE/RUNNING EXAMPLE:
A META-MODEL FOR ARCADE GAMES
Create a language to describe adventure games (like Pacman, Sabre
Wulf, Gauntlet, Atic-atac, etc)
Games based on connected tiles, able to hold treasures and playing
characters
• “heroes” (like Pacman)
• “evils” (like Ghosts)
Heros will have an initial number of lives, while at run-time, they will
hold an actual number of lives and a score
The language should permit creating types of tiles, heroes, evils and
treasures (with custom properties)
The language should permit describing the initial game configuration
Later on, we will define the generic rule games…
36
40. AGENDA
40
Multi-level modelling: the basics
MetaDepth
hands-on examples
Multi-level model management
Advanced techniques
When and where to use multi-level modelling
Summary and conclusion
41. Textual multi-level modelling tool
• Started in 2009
• Deep characterization based on clabjects/potency
• Orthogonal Classification Architecture
• http://metaDepth.org
Integrated with the Epsilon Languages for model management
• Constraints in EOL/EVL
• Derived attributes in EOL
• In-place transformations in EOL
• Model-to-Model transformations in ETL
• Code generation in EGL
41
Juan de Lara, Esther Guerra: Deep Meta-modelling with MetaDepth. TOOLS (48) 2010: 1-20
42. METADEPTH
42
Model Ecommerce@2 {
Node ProductType {
vat@1 : double=10;
price : double=7.5;
}
}
Ecommerce BookStore{
ProductType Book { vat = 4.0; }
}
BookStore WHSmith {
Book GoF { price = 35; }
}
ProductType
Book:
ProductType
GoF: Book
vat@1: double=10
price: double=7.5
vat=4.0
price = 35
@2
@1
@0
Models are normally created in external text editors, and stored in files with
.mdepth extension.
43. SAMPLE SESSION
> load “ProductSimple”
:: loading ../metadepth.samples/src/tutorial/ProductSimple.mdepth (6
clabjects created in 0.22 s).
> dump
:: dumping all
… (shows the models in memory)
> compile PlantUML
Executing...
:: compiling all models to PlantUML format,
generated file ./Ecommerce.txt
43
(generated png
by PlantUML)
The load command can also be included in .mdepth
files
44. COMMANDS & TIPS
Use set to show all environment variables
You’ll need to set DIR to your working folder
> set DIR "../metadepth.samples/src/tutorial"
:: setting environment variable DIR
Use context to enter in the context of a specific model
> context WHSmith
:: entering context WHSmith
You can use verify to check all (current model’s) constraints
> verify
:: Constraints in WHSmith evaluated, (0) violations
44
45. COMMANDS & TIPS
You can add new elements to a model using the # command
> #
:: entering metadepth execution mode
> Book another { price = 45; }
> #
> dump
:: dumping WHSmith
ext BookStore WHSmith{
ext Book GoF
{
price=35.0;
}
ext Book another
{
price=45.0;
}
}
45
46. COMMANDS&TIPS
The # command permits also using any embedded language
Currently EOL, ETL and EGL are embedded
> # EOL
:: entering eol execution mode
> new Book;
> ProductType.allInstances().println();
> #
Set {another, MD_3825653c837c4d12b1f21e09c83f2fa9, GoF}
(more about “transitive typing” later)
46
47. COMMANDS & TIPS
Retyping shell commands is
time consuming
You can save your commands in
a “.mdc” file
Command files can be executed
with the run command
run “Product”
Files are sought in folder of DIR
variable
47
load "ProductSimple“
dump
context WHSmith
Verify
#
Book JavaBible { price = 89; }
#
# EOL
var t := new Book;
t.price := JavaBible.price;
ProductType.all.println();
#
dump
compile PlantUML
Product.mdc
49. USING LINGUISTIC
TYPES
It is possible to use either ontological or linguistic types
> # EOL
:: entering eol execution mode
> Node.all.println();
> #
Sequence {GoF, another}
The linguistic meta-model is transparently available through
reflection
> # EOL
:: entering eol execution mode
> GoF.type.println();
> #
Book
The “^” notation can be used if needed to disambiguate (GoF.^type)
49
50. LINGUISTIC
EXTENSIONS
50
Ecommerce BookStore{
ProductType Book {
vat = 4.0;
pages : int;
authors : Author[*] {ordered, unique};
}
Node Author {
name : String;
}
}
BookStore WHSmith {
Book GoF {
price = 35;
pages = 395;
authors = [Gamma, Helm, Johnson, Vlissides];
}
Author Gamma { name = "Eric Gamma"; }
Author Helm { name = "Richard Helm"; }
Author Johnson { name = "Ralph Johnson"; }
Author Vlissides { name = "John Vlissides"; }
}
Model Ecommerce@2 {
Node ProductType@2 {
vat@1 : double = 7.5;
price@2 : double = 10;
}
}
51. CAPABILITIES
Derived fields
• Expressions using the Epsilon Object Language
Constraints and features in models
• Avoids creating an artificial class just to set a global constraint
Nested models, model import
• Models are first-class citizens, unlike in EMF
Customizable textual syntax
Model extension
A-posteriori typing
Concepts (genericity mechanism)
51
52. DERIVED FIELDS
Model Store@2 {
Node ProductType{
vat@1 : double = 7.5;
price : double = 10;
/finalPrice@2: double = $self.vat*self.price/100 +self.price$;
}
}
52
Computation expressions for derived fields using the Epsilon
Object Language (EOL)
Derived fields with primitive type, or references
53. RUNNING EXAMPLE (1)
53
Model ArcadeGame@2 {
Node TileKind {
next : TileKind[*];
elements : ElementKind[*];
}
abstract Node ElementKind{}
abstract Node CharacterKind : ElementKind { }
Node HeroKind : CharacterKind {
initLives@1 : int = 3;
lives : int = 3;
score : int = 0;
}
Node EvilKind : CharacterKind {}
Node TreasureKind : ElementKind {}
}
56. AGENDA
56
Multi-level modelling: the basics
MetaDepth
Multi-level model management
constraints
transformations
code generation
Advanced techniques
When and where to use multi-level modelling
Summary and conclusion
57. MULTI-LEVEL MODEL
MANAGEMENT
For a multi-level modelling framework to be useful, we need:
• Constraint languages
• Transformation languages supporting
• Code generation
• Model-to-model transformation
• In-place model transformation
These need to be adapted to a ML setting
In practice, metaDepth has been integrated with the Epsilon
languages
57
58. DEEP CONSTRAINT
LANGUAGE
Level at which the constraint is defined vs level at which we want to
evaluate it
• Constraints have “potency”
58
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
posPrice@2:
self.price>0
defined
evaluated
59. DEEP CONSTRAINT
LANGUAGE
Level at which the constraint is defined vs level at which we want to
evaluate it
• Constraints have “potency”
59
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 0
@2
@1
@0
posPrice@2:
self.price>0
defined
evaluated
60. 60
TRANSITIVE TYPING
We might not know type names at intermediate levels
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
lotsOfProducts@2:
ProductType.allInstances()->
size()>10
defined
CD:
ProductType
vat=10.0
Disintegration:
CD
price = 20
evaluated
TYPE.allInstances() returns all
direct and indirect instances of
TYPE at the current level
61. LEVEL NAVIGATION
Make (upwards) meta-level navigation implicit
• At level 0:
> GoF.vat.println();
> 4.0
Fields with instance facet in clabjects can be
accessed in instance clabjects.
61
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
62. LINGUISTIC META-
MODEL
Transparent access to the linguistic meta-model in constraint
expressions
62
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
lotsOfProducts@2:
self.type.allInstances()->
size()>10
defined
evaluated
Clabject
*supers
InstanceType
potency: int
type
*
*
Linguistic meta-model
(simplified)
*
Feature
«ling.instanceOf»
^ prefix can be used to
prevent name collisions:
self.^type…
63. LINGUISTIC META-
MODEL
Transparent access to the linguistic meta-model in constraint
expressions
63
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
lotsOfProducts@2:
self.type.allInstances()->
size()>10
defined
evaluated Clabject
*supers
InstanceType
potency: int
type
*
*
Linguistic meta-model
(simplified)
*
Feature
«ling.instanceOf»
lotsOfProducts2@2:
ProductType.allInstances()->
size()>10
What is the difference?
64. METADEPTH
MetaDepth uses the Epsilon Object Language (EOL) to
express constraints
• Also for operations and expressions for derived fields
EOL is a variant of OCL
• Permits side effects (assignments, object creation)
• Has imperative constructs (e.g., loops)
The basis of other Epsilon languages
• ETL for model-to-model transformation
• EGL for code generation
64
65. EXERCISE
Add constraints to the running example to ensure that:
• There are no isolated tiles at level 0
• Treasures, Heroes and Evils are connected to one tile at level 0
• There is at least one hero at level 0
• There are no less evils than heroes at level 0
• There can be no Pacman in the castle
Add a derived attribute to calculate the number of (direct)
reachable tiles at level 0.
65
66. 66
Model ArcadeGame@2 {
Node TileKind {
next : TileKind[*];
elements : ElementKind[*];
/numReachable : int = $self.next.size()$;
noIsolated : $self.numReachable>0 or
TileKind.all.exists( t | t.next.includes(self))$
}
abstract Node ElementKind{
connected : $TileKind.all.one( t | t.elements.includes(self))$
}
abstract Node CharacterKind : ElementKind { }
Node HeroKind : CharacterKind {
initLives@1 : int = 3;
lives : int = 3;
score : int = 0;
}
Node EvilKind : CharacterKind {}
Node TreasureKind : ElementKind {}
someHero@2 : $HeroKind.all.size()>=1$
moreEvils@2 : $EvilKind.all.size() >= HeroKind.all.size()$
}
SOLUTION (1)
67. 67
ArcadeGame PacMan {
TileKind Cell {
nextCell : Cell[*] {next};
coin : Coin[0..1] {elements};
pacman : Pacman[0..1] {elements};
ghosts : Ghost[*] {elements};
}
TileKind Castle : Cell {
noPacmans : $not self.pacman.isDefined()$
}
TreasureKind Coin {
value : int=10;
}
HeroKind Pacman {
initLives = 3;
}
EvilKind Ghost {
}
}
Conflicts and consistency of (ML) constraints
can be analyzed:
Towards automating the analysis of integrity
constraints in multi-level models. MULTI
2014@MODELS. Esther Guerra, Juan de Lara.
SOLUTION (2)
69. IN-PLACE MODEL
TRANSFORMATION
69
Infrastructure for a family of DSLs
• Operations can be attached to meta-classes
• Operations with potency
Design similar to an object oriented framework
• Common operations
• Operations expected to be overriden at next meta-level
For the running example:
• A game engine for the DSL (autonomous play)
• Core of the engine will be common (basic movement rules, game over
and winning condition)
• Some operations can be overriden at level 1 (ie., particular to Pacman)
70. RUNNING EXAMPLE
70
@metamodel(name=ArcadeGame,file=Arcade.mdepth)
@potency(value=2)
operation main() {
'Simulating the arcade game'.println();
var maxStep : Integer := 30;-- to limit infinite behaviours
var numStep : Integer := 0;
var hero : HeroKind := HeroKind.all.first();
hero.~initCell := hero.getCurrentTile();
for (e in EvilKind.all) {
e.~initCell := e.getCurrentTile();
}
while (numStep<maxStep) {
('----------------------------------------------------').println();
('Time : '+numStep).println();
hero.move();
if (hero.isWin()) {
(' ******* Our hero '+hero+' has won! *******').println();
(' ******* score '+p.score).println();
(' ******* lives '+p.lives).println();
return;
}
if (checkDamaged(hero)) return;// game over
for (e in EvilKind.all) {
e.move();
}
if (checkDamaged(hero)) return;// game over
numStep := numStep+1;
}
}
71. 71
operation checkDamaged(hero : HeroKind) : Boolean { // returns true if game over
if (hero.isDamaged()) {
(' Our hero '+hero+' has been damaged').println();
hero.die();
if (hero.hasDied()) {
' ******* Game over! *******'.println();
(' ******* score '+hero.score).println();
return true;
} else {
hero.restart();
for (e in EvilKind.all) {
e.restart();
}
}
}
return false;
}
operation ElementKind getCurrentTile() : TileKind {
return TileKind.all.select( t | t.elements.includes(self) ).first();
}
operation HeroKind move() {
var currentTile : TileKind := self.getCurrentTile();
var toTile : TileKind := currentTile.next.random();
(' Moving hero from '+currentTile+' to '+toTile).println();
currentTile.removeHero(self);
toTile.addHero(self);
}
…
Operation in
global context
Operations for
instances of
ElementKind and
HeroKind at level 0
72. 72
operation TileKind removeHero(h : HeroKind) {
(' Removing hero '+h+' from '+self).println();
}
operation TileKind addHero(h : HeroKind) {
(' Adding hero '+h+' to '+self).println();
}
operation TileKind removeEvil(g : EvilKind) {
(' Removing evil '+g+' from '+self).println();
}
operation TileKind addEvil(g : EvilKind) {
(' Adding evil '+g+' to '+self).println();
}
Cannot provide “true” code for adding objects, since we do not know
the name of the reference
These operations should be overriden at the next meta-level
“Hot spots”:
typically to be
overriden at the
next meta-level
J. de Lara, E. Guerra, J. Sánchez Cuadrado. Model-driven engineering with domain-specific meta-modelling
languages. SoSyM 14(1): 429-459 (2015)
74. MODEL-TO-MODEL
TRANSFORMATION
Many scenarios:
• Deep transformations (eg. defined at @2, applied at @0)
• Co-transformations (eg. defined at @2, applied at @1 and @0)
• Refining transformations (overriding rules at @1)
• Reflective & linguistic transformations (generic, using linguistic
types)
• Multi-level target (eg creating models at @1 and @0)
For the running example:
• A (deep) transformation into Petri nets
• Reusable for any concrete adventure game
74
J. de Lara, E. Guerra, J. Sánchez Cuadrado. Model-driven engineering with domain-specific meta-modelling
languages. SoSyM 14(1): 429-459 (2015)
78. AGENDA
78
Multi-level modelling: the basics
MetaDepth
Multi-level model management
Advanced techniques
splitting models
leap potency
deep references
When and where to use multi-level modelling
Summary and conclusion
79. SPLITTING MODELS
Having all elements in one model does not scale
• Models created to “annotate” other ones
Facility for model import
• Makes accesible the model elements of other models
Level mismatches
• Importing and imported models do not need to have the same
level
• Often reconciled through deep references
79
81. EXAMPLE: DEFINING A
CONCRETE SYNTAX
81
Graphics PeopDiag
imports People{
Rectangle PersonRep {
width = 6;
height = 6;
refsToPerson : Person {refsTo};
}
}
Model People{
Node Person {
name : String;
age : int;
}
}
82. EXAMPLE: DEFINING A
CONCRETE SYNTAX
82
PeopDiag somePeopleDiag
imports somePeople
{
PersonRep p1r {
x = 10; y = 10;
refsToPerson = p1;
}
}
People somePeople{
Person p1 {
name = “Alan”;
age =42;
}
}
83. EXAMPLE: COMPONENT-BASED
COLLABORATIVE WEB APPLICATIONS
83
•Component types
•Component instances
•Interconnections
Component
view
•Pages
•Style
•Layout
Presentation
view
•Users
•Roles
User
view
•Data format (schemas)
•Data values
Data view
Model of Collaborative
Web Application
instance of
Language Definition
code
generator
Language Usage
Final Application
Juan de Lara, Esther Guerra, Ruth Cobos, Jaime Moreno-Llorena: Extending Deep Meta-
Modelling for Practical Model-Driven Engineering. Comput. J. 57(1): 36-58 (2014)
84. SPLITTING MODELS
AND DEEP REFERENCES
84
ComponentView @2
ComponentType
ident: String
name:String
JavaScript
Component
@1
AppletComponent
codeBase: String
params:String[*]
@1
StyleContent
1
Presentation
StyleTree
11
Page
*
content
PresentationView
StyleHead
bgcolor: String
color: String
fontSize: Integer
@1
... ...
«imports»
comps
*
@1
@0
mapTable:
TableVisualizer
TableVisualizer:
JavaScriptComponent
p1: Page
@0
Not what we want: we want pages to hold
instances of instances of ComponenType
85. SPLITTING MODELS
AND DEEP REFERENCES
85
ComponentView @2
ComponentType
ident: String
name:String
JavaScript
Component
@1
AppletComponent
codeBase: String
params:String[*]
@1
StyleContent
1
Presentation
StyleTree
11
Page
*
content
PresentationView
StyleHead
bgcolor: String
color: String
fontSize: Integer
@1
... ...
«imports»
Not allowed: instances of comps should
point to direct instances (with potency 1)
of ComponentType
comps
*
@1
@0
mapTable:
TableVisualizer
TableVisualizer:
JavaScriptComponent
p1: Page
@0
86. SPLITTING MODELS
AND DEEP REFERENCES
86
ComponentView @2
ComponentType
ident: String
name:String
JavaScript
Component
@1
AppletComponent
codeBase: String
params:String[*]
@1
StyleContent
1
Presentation
StyleTree
11
Page
*
content
PresentationView
StyleHead
bgcolor: String
color: String
fontSize: Integer
@1
... ...
«imports»
comps@0
*
p1: Page
@0
Deep reference: reference
to a clabject with certain
potency
@1
@0
mapTable:
TableVisualizer
TableVisualizer:
JavaScriptComponent
87. LEAP POTENCY
Identity instantiation:
elements instantiated
at intermediate levels
with no extra
information
87
@2
Component view
Component
Type
@1
@0
cal:CalendarEngine
InParam
OutParam
Connector
*
*
*
*
CalendarEngine:
JavaScriptComponent
TableVisualizer:
JavaScriptComponent
CallEvents:OutParam
DTable:InParam
tab:TableVisualizer
ev:CallEvents c:Connector dt:DTable
Connector:
Connector
*
*
90. RUNNING EXAMPLE
Assume we do not need to define types of tiles
• All tiles are the same: same behaviour and connectivity
We have a “potency mismatch”
• We only want tile instances, not types (ie., potency 1)
• We still want to define character types (ie., potency 2)
90
91. SOLUTION 1: LEAP POTENCY
91
Model ArcadeSimple@2 { // we are not interested in defining types of tiles
Node Tile@(2) { // leap potency (otherwise identity instantiation)
next : Tile[*];
elements : ElementKind@0[*]; // deep reference
}
abstract Node ElementKind{
}
abstract Node CharacterKind : ElementKind {
}
Node HeroKind : CharacterKind {
initLives@1 : int = 3;
lives : int = 3;
score : int = 0;
}
Node EvilKind : CharacterKind {}
Node TreasureKind : ElementKind {}
}
92. SOLUTION 1: LEAP POTENCY
92
ArcadeSimple PacMan {
TreasureKind Coin {
value : int=10;
}
HeroKind Pacman {
initLives = 5;
}
EvilKind Ghost {
}
}
PacMan RuntimePacman {
Tile c0 { next = [c1, c4]; elements = [co0, p]; }
Tile c1 { next = [c2, c0]; elements = [co1]; }
Tile c2 { next = [c3, c1]; elements = [co2]; }
Tile c3 { next = [c4, c2]; elements = [co3, g]; }
Tile c4 { next = [c0, c3]; elements = [co4];}
Pacman p {}
Ghost g {}
Coin co0 {}
Coin co1 {}
Coin co2 {}
Coin co3 { value = 20; }
Coin co4 {}
}
93. SOLUTION 2:
MODEL SPLIT
93
Make explicit the two concerns of the DSL:
• Board layout
• Character definition
Model ArcadeCharacters@2 {
abstract Node ElementKind{}
abstract Node CharacterKind : ElementKind {}
Node HeroKind : CharacterKind {
initLives@1 : int = 3;
lives : int = 3;
score : int = 0;
}
Node EvilKind : CharacterKind {}
Node TreasureKind : ElementKind {}
}
ArcadeCharacters PacmanCharacters {
TreasureKind Coin { value : int=10;}
HeroKind Pacman { initLives = 5; }
EvilKind Ghost {}
}
PacmanCharacters PacmanRuntime {
Pacman p {}
Ghost g {}
Coin co0 {}
…
}
94. SOLUTION 2:
MODEL SPLIT
94
Make explicit the two concerns of the DSL:
• Board layout
• Character definition
Model ArcadeBoard imports ArcadeCharacters {
// Not interested in defining types of tiles
Node Tile {
next : Tile[*];
elements : ElementKind@0[*];
}
}
ArcadeBoard PacmanBoard imports PacmanRuntime {
Tile c0 { next = [c1, c4]; elements = [co0, p]; }
Tile c1 { next = [c2, c0]; elements = [co1]; }
Tile c2 { next = [c3, c1]; elements = [co2]; }
Tile c3 { next = [c4, c2]; elements = [co3, g]; }
Tile c4 { next = [c0, c3]; elements = [co4];}
}
95. AGENDA
95
Multi-level modelling: the basics
MetaDepth
Multi-level model management
Advanced techniques
When and where to use multi-level modelling
Multi-level patterns
How frequent are these ML “smells”?
Summary and conclusion
96. MULTI-LEVEL
PATTERNS
96
Patterns signalling that a multi-level solution could be
beneficial
Emulate a meta-modelling facility within a meta-model:
• Type-object: typing and instantiation
• Dynamic features: feature definition and instantiation
• Dynamic auxiliary domain concepts: class definition and
instantiation
• Relation configurator: Reference cardinality and its semantics
• Element classification: Inheritance
In multi-level these facilities are native at every meta-level
J. de Lara, E. Guerra, J. Sánchez Cuadrado: When and How to Use Multilevel Modelling.
ACM Trans. Softw. Eng. Methodol. 24(2): 12:1-12:46 (2014)
97. TYPE-OBJECT
97
ProductType
Book:
ProductType
GoF: Book
vat@1: double
price: double
vat=4.0
price = 35
@2
@1
@0
ProductType
vat: double
Product
price: double
type1
Book: ProductType
vat = 4.0
:type
GoF: Product
price = 35
Dynamic addition of new types, and instantiation of these
ProductType
Book
vat: double {readonly}
price: double
vat : double =4.0
GoF: Book
price = 35
Explicit modelling
Static types Multi-level
102. PRACTICAL APPLICABILITY
How often do these patterns occur?
Analysis of meta-model repositories:
• ATL meta-model zoo (305 meta-models) [8.5% occur.]
• OMG specifications (116 specs) [35%~38% occur.]
• ReMoDD (15 meta-models) [20% occur.]
• Articles in journals/conferences
84 meta-models with 459 occurrences (avg 5.5)
• Most common pattern is the type-object
• Most used solution is explicit types (~70%)
102
105. WHERE?
Business process/enterprise modelling
• Base meta-model customized for different enterprises or project
types (OrganizationType/Organization, ProjectType/Project, etc)
• Process modelling languages (TaskType/Task)
• Powertypes, explicit modelling for implementation
• Many occurrences per meta-model
105
108. STATIC TYPES TO MULTI-LEVEL
108
KDMElement
name: String
KDM
Relationship
from
to
/outbound
/inbound
*{union}
{union}*
KDMModel
/owned
element
{union}*
CodeModel
AbstractCode
Element
AbstractCode
Relationship
/owned
relation{union}*
coderelation
{subsets
ownedRelation}
*
ParameterTo
CodeItem
from{redefines
from}
to{redefines
to}
KDMElement
name: String
KDM
Relationship
from
to
outbound
inbound
*
*
KDMModel @2
CodeModel : KDMModel @1
AbstractCode
Element:
KDMElement
CodeItem:
KDMElement
AbstractCode
Relationship:
KDMRelationship
ParameterTo:
KDMRelationship
from: from
to: to
*
{subsets ownedElement}
codeElement
• KDM (OMG) • Simpler base meta-model
109. AGENDA
109
Multi-level modelling: the basics
MetaDepth
Multi-level model management
Advanced techniques
When and where to use multi-level modelling
Summary, conclusions and outlook
110. SUMMARY
Multi-level modelling
• Generalizes two-level modelling overcoming some of its limitations
• Useful when the type-object pattern arises
• Leads to simpler models
MetaDepth
• A tool for Multi-level modelling
• Integrated with the Epsilon languages for model management
110
The limits of my language mean the limits of my world.
Ludwig Wittgenstein
111. OUTLOOK
Use it in real MDE scenarios
• Let us know if you use metaDepth
Improve tooling
• Eclipse plugin
Refactoring of multi-level models
• flattenings and un-flattenings
A-posteriori typing
111
112. MORE…
112
Other related tools
• melanee (http://www.melanee.org/)
• DPF Workbench
• …
MULTI series of workshops (at MODELS)
• MULTI 2014 (Valencia)
• MULTI 2015 (Ottawa)
• MULTI 2016 (Saint Malo)
MLM wiki
• http://homepages.ecs.vuw.ac.nz/Groups/MultiLevelModeling/
113. MAIN METADEPTH REFERENCES
1. Original publication about the tool:
J. de Lara and E. Guerra. “Deep meta-modelling with MetaDepth“. 2010. Proc. TOOLS
2010. LNCS 6141, Springer, pp.: 1-20.
2. Integration with ML management languages. Concrete syntax:
J. de Lara, E. Guerra, J. Sánchez-Cuadrado. “Model-driven engineering with domain-
specific meta-modelling languages“. 2015. SoSyM (Springer), Vol 14(1). pp.:429-459. Best
papers of ECMFA'12.
3. Leap potency, deep reference, deep code generation, application in practice:
J. de Lara, E. Guerra, R. Cobos, J. Moreno Llorena. “Extending deep meta-modelling for
practical model-driven engineering”. 2014. The Computer Journal, Vol 57(1). pp.:36-58
4. Analysis of ML constraints:
E. Guerra, J. de Lara. ”Towards automating the analysis of integrity constraints in multi-
level models”. 2014. MULTI'2014, (Valencia) (CEUR). pp.:1-10.
5. ML patterns. Applicability study for MLM:
J. de Lara, E. Guerra, J. Sánchez Cuadrado. “When and How to Use Multi-Level
Modelling”. 2014. ACM TOSEM, Vol 24(2). pp.:1-46.
113