This document discusses approaches for constructing domain-specific modeling languages (DSMLs). It presents both a top-down approach, which begins with defining a meta-model, and a bottom-up approach, which starts by drafting example models and then inducing a meta-model. The bottom-up approach aims to facilitate DSML construction by non-experts by allowing them to provide model fragments from which a meta-model is constructed. Annotations on the fragments can trigger refactorings to the meta-model. Open issues that arise are also recorded to aid resolution.
Regression testing tool for Modelica and FMI
Framework to define individual tests, test suites, and execute them either from a GUI or from Python scripts
Uses OPTIMICA Compiler Toolikt compiler to facilitate test design and usage
Tool-agnostic approach for test execution (currently supports Dymola, OpenModelica and OPTIMICA Compiler Toolkit)
Execution on local machines or via a server
Full HTML report provides dashboard overview with links to individual test results
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
Regression testing tool for Modelica and FMI
Framework to define individual tests, test suites, and execute them either from a GUI or from Python scripts
Uses OPTIMICA Compiler Toolikt compiler to facilitate test design and usage
Tool-agnostic approach for test execution (currently supports Dymola, OpenModelica and OPTIMICA Compiler Toolkit)
Execution on local machines or via a server
Full HTML report provides dashboard overview with links to individual test results
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
SysML for embedded system engineering - Academy Camp 2015Régis Castéran
Presentation held during the Berner and Mattner Academy Camp 2015 about SysML usage for requirement specification and architecture description applied to embedded system engineering
Tool Development 09 - Localization & TestingNick Pruehs
Chapter 09 of the lecture Tool Development taught at SAE Institute Hamburg.
Introduction to globalization and localization of WPF applications, as well as unit testing with NUnit.
Præsentationen blev holdt ved InfinIT-konferencen SummIT 2013, der blev afholdt den 22. maj 2013 på Axelborg i København. Læs mere om konferencen her: http://www.infinit.dk/dk/arrangementer/tidligere_arrangementer/summit_2013.htm
Introduction to SOC Verification Fundamentals and System Verilog language coding. Explains concepts on Functional Verification methodologies used in industry like OVM, UVM
Matthew Hause "Building Bridges between Systems and Software with SysML and UML" presentation to INCOSE Colorado Front Range Chapter at Northrop Grumman, Boulder, CO. March 17, 2015
Modelling Software Requirements: Important diagrams and templates (lecture sl...Dagmar Monett
Online lecture at the School of Computer Science, University of Hertfordshire, Hatfield, UK, as part of the 11th Europe Week from 2nd to 6th March 2015.
SysML for embedded system engineering - Academy Camp 2015Régis Castéran
Presentation held during the Berner and Mattner Academy Camp 2015 about SysML usage for requirement specification and architecture description applied to embedded system engineering
Tool Development 09 - Localization & TestingNick Pruehs
Chapter 09 of the lecture Tool Development taught at SAE Institute Hamburg.
Introduction to globalization and localization of WPF applications, as well as unit testing with NUnit.
Præsentationen blev holdt ved InfinIT-konferencen SummIT 2013, der blev afholdt den 22. maj 2013 på Axelborg i København. Læs mere om konferencen her: http://www.infinit.dk/dk/arrangementer/tidligere_arrangementer/summit_2013.htm
Introduction to SOC Verification Fundamentals and System Verilog language coding. Explains concepts on Functional Verification methodologies used in industry like OVM, UVM
Matthew Hause "Building Bridges between Systems and Software with SysML and UML" presentation to INCOSE Colorado Front Range Chapter at Northrop Grumman, Boulder, CO. March 17, 2015
Modelling Software Requirements: Important diagrams and templates (lecture sl...Dagmar Monett
Online lecture at the School of Computer Science, University of Hertfordshire, Hatfield, UK, as part of the 11th Europe Week from 2nd to 6th March 2015.
Project Management Techniques ( CPM & PERT Techniques )
A revised PPT from other shared PPT available
Project management is a scientific way of planning, implementing, monitoring & controlling the various aspects of a project such as time, money, materials, manpower & other resources.
By,
Mr. AKARESH JOSE
Kerala Agricultural University
akareshjose@gmail.com
A seminar in advanced Software Engineering concerning using models to guide the development process, and QVT to transfer a model into another model automatically
DSM is a higher level of CASE process, a way to model data structures and logic in domain concepts independent from programming languages and thus also include syntax details. The final source code in a desired programming language is derived automatically from these high concept models by using exact language generators.The whole process of Meta-modeling in the MetaEdit+ tool rotates around the Meta types represented together as GOPPRR
TOPCASED (The Open-Source Toolkit for Critical Systems) is a software environment primarily dedicated to the realization of critical embedded systems including hardware and/or software.
Started in 2004, TOPCASED covers specification, design and coding stages, including usual fonctionalities such as configuration and change management. TOPCASED is based on Eclipse, and promotes model-driven engineering and formal methods as key technologies. It is developed by a consortium gathering more than 35 partners (big, medium, and small companies, research centers and universities) and is released as free/libre/open-source software.
It has been downloaded about 100,000 times during the last twelve months.
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Embarcados
Nesse webinar será apresentado o passo a passo de como criar projetos com Machine Learning utilizando ferramentas de terceiros como Sensi ML e Edge Impulse.
Tópicos que serão apresentados:
Kits de desenvolvimento para Machine Learning:
EV18H79A: SAMD21 ML Evaluation Kit with TDK 6-axis MEMS
EV45Y33A: SAMD21 ML Evaluation Kit with BOSCH IMU
SAMC21 xPlained Pro evaluation kit (ATSAMC21-XPRO) plus its QT8 xPlained Pro Extension Kit (AC164161)
Ferramentas de desenvolvimento:
MPLAB X
Data Visualizer
Ambiente de terceiros: Sensi ML e Edge Impulse
Coleta de dados
Como desenvolver um projeto usando Machine Learning sem conhecimentos específicos sobre o assunto e com conhecimentos sobre Machine Learning.
Legion is a runtime machine learning platform streamlining the model development process from exploration to production deployment through automation of data workflows, continous delivery, and quality assurance. The project is released under open-source Apache Software License.
The Functional Mockup Interface: FMI overview
Modelica: a very brief overview
A Real-World Example: Active Grill Shutter Controls
Vehicle Thermal Management with Modelica
Continuous Validation of System Requirements
- Intermediate results from ITEA3 MODRIO project
Iterative Controller Development Using Modelica
Conclusions
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...Bernd Grahlmann
Automating Testing with Telelogic DOORS @ NXP - Automatisation de test avec Telelogic DOORS chez NXP Semiconductors (Presentation Telelogic UGC 2008 France)
Developing Tools for “What if…” Testing of Large-scale Software SystemsJames Hill
This presentation discusses some of our experience and results of the years for developing tools for "what if..." testing of large-scale software systems. This work has been sponsored by many public and private organizations.
This talk was originally presented at a Virginia Tech Computer Science seminar.
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
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
2. Model-Driven Engineering (MDE)
• Introduction
• Current Challenges in Defining DSMLs
Top-down approach
Bottom-up approach
Conclusions and open lines
AGENDA
2
3. MODEL DRIVEN
ENGINEERING
Increase the level of abstraction in software
development
Models are actively used to
• Describe the problem…
• Simulate/verify/test…
• Generate code for the final application
Move from the solution space (code-centric) to the
problem space
• Higher levels of productivity and quality
• Less accidental details
3
4. MODEL DRIVEN
ENGINEERING
For specific domains
• Avoid coding the same
solutions over and over
• Families of applications
• Domain-Specific Modelling
Languages
Code
Generator
• Modelling, validation and automatic
generation of telephony services
4
5. MODEL DRIVEN
ENGINEERING
For specific domains:
• Avoid coding the same
solutions over and over
• Families of applications
• Domain-Specific Modelling
Languages
• Code generation from State-Machines
for Railway Signaling Systems
5
Code
generator
8. MODELS AND
META-MODELS
The abstract syntax of DSMLs is
defined through a meta-model
• Classes
• Attributes
• Relations
8
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
9. MODELS AND
META-MODELS
The abstract syntax of DSMLs is
defined through a meta-model
• Classes
• Attributes
• Relations
9
«conforms to»
c1:Conveyor
g:Generator
a:Assembler
c2:Conveyor
c3:Conveyor t:Terminator
p2: Partp2: Partouts
outs
inps
inps
outs inps
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
10. OCL CONSTRAINTS
10
Object Constraint Language
Well-formedness rules, which
every model should satisfy
Based on First-Order Logic
g:Generator
«conforms to»
c:Conveyor
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
context Generator inv:
self.inps->isEmpty() and self.outs->size()>0
context Generator inv:
self.inps->isEmpty() and self.outs->size()>0
context Terminator inv:
self.outs->isEmpty() and self.inps->size()>0
context Assembler inv:
self.inps->size()>0 and self.outs.size()>0
…
inps
11. MODELS AND
META-MODELS
Models are represented using
concrete syntax
• Visual
• Textual
No need for a 1-1 correspondence
between abstract and concrete
syntax elements
11
asse
12. MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
in-place
transformations
12
…
13. MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
Source
Target
13
model-to-model
transformations
14. MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
14
MMsrc MMtar
Msrc Mtar
Transformation
definition
from to
«conforms to» «conforms to»
Transformation
execution
Transformation
developer
Final user
model-to-model
transformations
15. MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
15
Template languages
query and
model navigation
18. MOTIVATION
18
Many DSML construction environments exist nowadays
But:
• Do not focus on scalable DSMLs
• The definition of every DSML has to start from scratch
• Difficult, technical tasks (hampers involvement of domain experts)
• No systematic process for DSML construction
• Do not cover the whole lifecycle of DSML development
Xtext
EMFText
Spoofax
MPS
MetaEdit+
Sirius
GMF
Eugenia
Graphical Textual
19. OUR APPROACHES
Top-down
• Meta-model first
• Reusability by means of patterns
• Pattern to specify model
fragmentation strategies
19
1
2 Patterns
20. OUR APPROACHES
Top-down
• Meta-model first
• Reusability by means of patterns
• Pattern to specify model
fragmentation strategies
Bottom-up
• Start from examples
• Improve the involvement of domain
experts
20
1
2
2
1
3
Patterns
22. WHAT’S IN A META-MODEL?
22
Do different meta-models share features?
• If so, generalize those and make them reusable
• For example, common abstractions for behavioural languages:
• State-machine
• Workflow
• ..
Analysis of ATL meta-model repository
• 305 meta-models
27. MODULARITY PATTERN
27
Customize a fragmentation strategy for a DSL
Generate a modelling
environment that organizes:
• A model as a project (root
class as “Project”)
• Folders associated to classes
tagged as “Package”
• Units (files) for elements in a
container object tagged as
“Unit”
28. APPLYING AN
INFRASTRUCTURE PATTERN
28
Container
extension@1: String
*
Project
contents
modularity pattern
Containee
Package Unit 0..*0..*
meta-model
Component
@Component
@Unit
StateMachine
@StateMachine
@Unit
WTComponents
@Project
Subsystem
@Package
Control
Subsystem
@Package
*
*
*
*
extension=“state”
extension=“figcom”
*
1..*
Hierarchical
Organization 0..5
Model
Injector
Model
Descriptor
EditorTab
39. Facilitate the construction of DSLs by non-experts
There is currently a gap
• domain experts have the knowledge of the domain...
• but lack the expertise to build meta-models.
Drafting example models first might be more
intuituive…
…but current MDE environments require the existence
of a meta-model.
MOTIVATION
39
40. Facilitate the construction of DSLs by non-experts
There is currently a gap
• Domain experts have the knowledge of the domain...
• but lack the expertise to build meta-models.
Drafting example models first might be more
intuituive…
…but current MDE environments require the existence
of a meta-model.
MOTIVATION
40
domain
experts
fragments
meta-model
induction
42. MODEL FRAGMENTS
Examples of concrete situations, gathering DSL
requirements.
• Can focus on a particular aspect (no need to be complete)
Not just documentation
• Actively used to induce a meta-
model
Graphical (sketches) or
textual syntax
43. fragment edu1 {
c : Course {
attr name = "Design Project"
attr course = 2
attr semester = 2
ref coordinator = p1
}
g1 : Group {
attr code = "PADS221"
attr shift = "morning"
ref course = c
}
…
…
g2 : Group {
attr code = "PADS226"
attr shift = "afternoon"
ref course = c
}
p1 : Professor {
attr name = "Juan"
ref teaches = g1
}
p2 : Professor {
attr name = "Eduardo"
ref teaches = g2
}
}
MODEL FRAGMENTS
textual syntax
45. ANNOTATIONS
Provide an insight on some aspect of the fragment
• domain annotations: normally by the domain expert (in sketch)
• design annotations: normally by the engineer (in textual notation)
Impact on the meta-model
• Trigger refactorings
• Produce integrity constraints
46. fragment edu1 {
c : Course {
attr name = "Design Project"
attr course = 2
attr semester = 2
@cycleWith(teaches,course)
ref coordinator = p1
}
g1 : Group {
attr code = "PADS221"
attr shift = "morning"
ref course = c
}
…
…
g2 : Group {
attr code = "PADS226"
attr shift = "afternoon"
ref course = c
}
p1 : Professor {
attr name = "Juan"
ref teaches = g1
}
p2 : Professor {
attr name = "Eduardo"
ref teaches = g2
}
}
ANNOTATIONS
textual syntax
47. …
MeaningElement
ANNOTATIONS
some annotations
Domain Annotation
@unique
Makes the class a singleton
Sets the attribute as the class id
class
attribute
@irreflexive Forbids self-loopsreference
@cycleWith
A given reference must commute
with a set of other references
reference
MeaningElementDesign Annotation
@general
Pulls common attributes of the class
set to a common super class
class
@general Pulls up the annotated reference
attribute
reference
@composition Marks a reference as compositionreference
48. BOTTOM-UP META-MODEL
CONSTRUCTION
Meta-model update upon entering a new fragment
using induction algorithm.
Annotations in a fragment are transfered to the meta-
model, which may trigger refactorings.
Conflicts (e.g., assignment of non-compatible types
for same field) are reported and fixed if possible.
49. INDUCTION ALGORITHM
Create new meta-class for each different object type
in fragment (if class does not exist).
Add new attributes/relation to meta-class for each
new slot/reference in object (if it does not exist).
:A :C
r
A B
r
[a,b] A B
r
[min(a,1),b]
C
BC
existing
meta-model
resulting
meta-model
new fragment
is processed
fragment
:A :C
r
A B
r
[a,b] A B
r
[min(a,1),b]
C
BC
existing
meta-model
resulting
meta-model
new fragment
is processed
fragment
Relations with
same name
pointing to objects
of different type.
50. INDUCTION ALGORITHM
example
50
fragment edu3 {
c: Course{ ref calendar = ca }
@container(w)
ca : Calendar{ ref week = w }
@container(tc1, tc2, lc)
w: Week{
attr weekNumber = 1
ref elements = tc1, tc2, lc
}
tc1 : TheoryClass{
@general ref topics = t
}
tc2 : TheoryClass{ ref topics = t }
lc : LabClass{ ref topics = t }
t: Topic { attr topic= "Design patterns"}
}
51. INDUCTION ALGORITHM
example
51
fragment edu3 {
c: Course{ ref calendar = ca }
@container(w)
ca : Calendar{ ref week = w }
@container(tc1, tc2, lc)
w: Week{
attr weekNumber = 1
ref elements = tc1, tc2, lc
}
tc1 : TheoryClass{
@general ref topics = t
}
tc2 : TheoryClass{ ref topics = t }
lc : LabClass{ ref topics = t }
t: Topic { attr topic= "Design patterns"}
}
54. VIRTUAL ASSISTANT
Detect places where the meta-model can be
improved and recommend solutions
Structural recommendations
• Inline class
• Pullup features (FCA)
• Generalize references
• Replace class by integer
Style recommendations
• Number conflict, camel case, etc
54
55. OPEN ISSUES
Alternatives recorded as “open issues”
• Conflict. Fragment specifying contradictory
information (e.g. different types for an attribute).
• Automatic. Naming of added classes.
Resolution of an open issue may break the
conformance of previous fragments
• Non-breaking and breaking and resolvable
• Preferred by the algorithm
• Breaking and unresolvable
• Provide additional information to keep the conformance
• Discard fragments
55
64. CONCLUSIONS
MDE accelerates software development process
(for specific domains)
DSMLs oriented to particular domains
Constructing environments for DSMLs is time
consuming
• Top-down (pattern-based)
• Bottom-up (example-based)
64
65. OPEN LINES
Flexible modelling
• Informal modelling (early stages)
• Formality (late stages)
Mobility and Context
• DSL-comet
• Available in app Store
65