This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Automatically bridging UML profiles into MOF metamodelsIvano Malavolta
27th August 2015. My presentation at SEAA 2015 (http://paginas.fe.up.pt/~dsd-seaa-2015/) about our approach for autmatically bridging UML profiles into MOF metamodels. SEAA 2015 is the 41st Euromicro Conference on Software Engineering and Advanced Applications, and it has been held in 26 - 28 August 2015, Funchal, Madeira, Portugal.
Accompanying paper:
http://www.ivanomalavolta.com/files/papers/SEAA_2015.pdf
Abstract:
In Model-Driven Engineering, UML profiles and MOF-based Domain Specific Modeling Languages (DSMLs) are the most used approaches for describing domain specific applications. The choice of the right approach depends on several aspects, such as tool support, expressivity, complexity of models, company policies. In general, profiled UML models are very much used since they are intuitive for designers and model editors already exist, however they are intrinsically complex for model manipulation (e.g., transformation, analysis); conversely, domain specific models are more concise and easy to be manipulated, but they require an initial effort in terms of designers training and model editors development.
In this paper we propose an approach that allows getting the best of the two worlds: on one side designers can use UML profiles familiar to them, on the other side DSML models (automatically generated from profiled UML models) enable a better model manipulation. Our approach is based on an automatic bridge between UML profiles and MOF metamodels (which are the main artifacts of MOF-based DSMLs). The bridge is transparent to the user since it autonomously operates both on UML profiles and all the involved models. The bridge is realized through model transformation techniques in the Eclipse platform. In this paper we show its application on a case study based on SysML.
[2015/2016] Introduction to software architectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
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
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEAnže Vodovnik
This paper describes the use of model driven architecture and its application in control system development. It also presents a prototype solution based on the Eclipse framework implemented by the author.
Anže Vodovnik, Klemen Žagar, Cosylab, Ljubljana, Slovenija
Simon Brown is coming to the UK to teach his Software Architecture for Developers Workshop in April, so we asked him if he could give a free talk on software architecture for our community. Simon agreed to give a talk exploring the question "Architecture, where do you start?".
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Automatically bridging UML profiles into MOF metamodelsIvano Malavolta
27th August 2015. My presentation at SEAA 2015 (http://paginas.fe.up.pt/~dsd-seaa-2015/) about our approach for autmatically bridging UML profiles into MOF metamodels. SEAA 2015 is the 41st Euromicro Conference on Software Engineering and Advanced Applications, and it has been held in 26 - 28 August 2015, Funchal, Madeira, Portugal.
Accompanying paper:
http://www.ivanomalavolta.com/files/papers/SEAA_2015.pdf
Abstract:
In Model-Driven Engineering, UML profiles and MOF-based Domain Specific Modeling Languages (DSMLs) are the most used approaches for describing domain specific applications. The choice of the right approach depends on several aspects, such as tool support, expressivity, complexity of models, company policies. In general, profiled UML models are very much used since they are intuitive for designers and model editors already exist, however they are intrinsically complex for model manipulation (e.g., transformation, analysis); conversely, domain specific models are more concise and easy to be manipulated, but they require an initial effort in terms of designers training and model editors development.
In this paper we propose an approach that allows getting the best of the two worlds: on one side designers can use UML profiles familiar to them, on the other side DSML models (automatically generated from profiled UML models) enable a better model manipulation. Our approach is based on an automatic bridge between UML profiles and MOF metamodels (which are the main artifacts of MOF-based DSMLs). The bridge is transparent to the user since it autonomously operates both on UML profiles and all the involved models. The bridge is realized through model transformation techniques in the Eclipse platform. In this paper we show its application on a case study based on SysML.
[2015/2016] Introduction to software architectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
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
MODEL DRIVEN ARCHITECTURE, CONTROL SYSTEMS AND ECLIPSEAnže Vodovnik
This paper describes the use of model driven architecture and its application in control system development. It also presents a prototype solution based on the Eclipse framework implemented by the author.
Anže Vodovnik, Klemen Žagar, Cosylab, Ljubljana, Slovenija
Simon Brown is coming to the UK to teach his Software Architecture for Developers Workshop in April, so we asked him if he could give a free talk on software architecture for our community. Simon agreed to give a talk exploring the question "Architecture, where do you start?".
When talking about modeling, I think there will be a bundle of terms that will come to our mind, UML, domain driven development, DSL, forward/reverse enginerring, MDD, MDA, BPMN. These technology or methodology have been there for years; And obviously, modeling has proven itself to provide value by improving communication, business-alignment, quality, and productivity. Its applicability includes a number of disciplines such as analysis, design, or development. But why aren’t we all doing Model Driven Development yet?
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
Evaluation of meta modeling tools for domain specific modeling language chnjlPG Scholar
A Domain Specific Languages for modeling web pages and provide automatic code generation with a web-testing framework.
The whole process of Meta-modeling in the MetaEdit+ tool rotates around the Meta types represented together as GOPPRR’
Our technique are based on building abstractions of web pages and modeling state-machine-based test behavior using domain specific language
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
2. Agenda
Modeling platforms and Platform Independence
Model Transformations
MDA in the Eclipse IDE
The Atlas Transformation Language
3. CIM, PIM and PSM
CIM: Computation Independent Model
A vocabulary of a problem domain useful to a
variety of stakeholders
PIM: Platform Independent Model
A specification of a system that does not take into
account technical details of a specific platform
PSM: Platform Specific Model
A specification of a system expressed in terms of
the specification model of the platform
4. The MDA process (abstraction)
www.ibm.com/developerworks/ibm/library/i-modev1/!
8. MDA: Mappings between Models
From PIM to Specific
Platform- Middleware
Independent Technologies via OMG
Model
Standard Mappings
CORBA Java/EJB XML/SOAP Other
Model Model Model Model
From PSM to
application interfaces,
code, GUI descriptors,
SQL queries, etc.
CORBA Java/EJB XML/SOAP Other
9. Model Representation
UML Model (PIM) XMI Document
<Auto>
<Color> Red </Color>
MOF
<Door> 4 </Door>
<Engine> 2 </Engine>
</Auto>
XMI DTD, Schema
IDL, Java… <!Element Auto
interface Auto (Color*,
{ Class Auto Door*,
}; {public String color; Engine*)>
public int Door;
public int Engine;
}
10. Model Transformation
Working with interrelated models requires to ensure
their vertical, horizontal, and evolutionary consistency
This activity can be performed taking one or more
source models as input and producing one or more
target models as output
The process of model transformation must comply with
a set of transformation rules
12. PIM to PSM Transformation
It is used when the PIM is mapped into
a platform specific infrastructure
The transformation is based on a set of
platform features
These features should be described by
UML
13. PIM to PIM Transformation
It is used when models are enhanced,
refined or filtered during the
development lifecycle without needing
any platform specific information
Example: analysis-to-design model
transformation
14. PSM to PSM Transformation
It is used for component realization
and deployment
Generally, it is related to platform
dependent model refinement
15. PSM to PIM Transformation
It is performed for abstracting models of
existing technology-dependent
implementations into a platform independent
model
It is a refactoring process hard to be fully
automated
16. Model Mapping
A technique for setting the specifications, that drives
the transformation from the source model to the target
model
The main mapping techniques are [8s]:
Model-Type mapping
The mapping is realized between platform-independent data types and platform-
specific data types. The two kinds of data type drive the transformation
Metamodel mapping
The mapping is realized between the PIM metamodel data type and the PSM
metamodel data type.
Model-Instance mapping
It uses marks, i.e. concepts of the target-model explaining how to transform source
model elements
20. Approaches to Model Transformations
The tools performing model transformations can use:
Direct transformations: internal model representation
manipulated by specific APIs
Intermediate transformations: model exported in an
external standard form (e.g., XMI) that can be manipulated
Transformation language: a language with specific
constructs for defining and applying transformations
21. Platform Independence
Platform Independence is a “fuzzy” concept
It means independence from a specific execution and
development domains
The domains from which the independence can be
asserted are the usual software engineering
abstraction domains:
Programming Languages
Software Architectures
Operative Systems
Data Representation
22. Ex.: Bank Account Architectural PIM
• Nothing said about the
architecture and the
developing technologies
• It is the model used by bank
manager and stakeholders
23. Ex.: Bank Account Architectural PSM
• It specifies a remote and some local objects
• It adds some implementation information
• It is the model used by analyst and
programmers
• it conforms to the PIM
• it can be a PIM for a further platform specific model
24. MDA Tools
Currently, there are no tools that implement MDA
as envisioned by the OMG community
MDA itself is still being defined
Existing tools allow partial transformations
They are usually limited to
specific platforms
specific languages
specific transformations
Usually they are evolutions of tools born in other
research fields
Especially in Generative programming and
Metaprogramming
25. EMF and ATL
Two interesting technologies are emerging that are
more and more used in MDA tools:
1. The Eclipse Modeling Framework (EMF) is the
analogous of MOF in the Eclipse IDE Platform
It consists of an extended set of API, a metamodelling
framework named Ecore and an Eclipse IDE plug-in
2. The Atlas Transformation Language (ATL) is a
language specifically targeted for model
transformations
It supports MOF 1.4 and Ecore while conforming to MDA
transformation specifications
26. MDA and Middleware
Middleware is an enabling
technology for MDA
Generators’
increasing
complexity
27. From Coding to Modeling
What is the difference between programming
language abstractions and MDE/MDA
abstractions?
The former allow to abstract the solution space
they are “computing oriented”
MDE/MDA allow to abstract the problem space
they are “application domain oriented”
The current Enterprise Computing scenario
requires to move the software development
emphasis from coding to modeling systems
28. Metadata Integration
Why we cannot use a single language to describe all the
aspects of a system?
The problem is not that we
use different languages to
describe different aspects of
software components
The problem is that we have
no overall architecture for
integrating specifications
made in different languages
MDA defines a single
architecture for the integrated
management of metadata
29. The Eclipse IDE in a Nutshell
Eclipse is an open Universal Tooling Platform
Open Source licensed via Common Public License
Managed via the Eclipse Project (www.eclipse.org)
Maintained by the Eclipse Foundation
An independent consortium whose members include: IBM, SuSe,
Borland, RedHat, HP, SAP, OMG
It provides an open platform for application
development tools
It runs on a wide range of operating systems
It is language-neutral
It facilitates seamless tool integration
It adds new tools to existing installed products
30. What is Eclipse?
A general purpose IDE
An open, extensible architecture based on plug-ins
Plug-in development environment PDE
Java development tools JDT
Eclipse Platform Platform
Standard Java2 Virtual Machine Java VM
31. The Eclipse Architecture
Another
Eclipse Platform
App
Java Workbench Help
Development
Tools JFace
(JDT)
SWT
Team Your
Tool/App
Plug-in Workspace
Development Debug
Environment
(PDE)
Their
Platform Runtime Tool
Eclipse Project
32. MDA in Eclipse
There are a number of plug-ins that support
the MDA features in Eclipse
Indeed, there is not a single tool that gives a
full support of MDA features as envisioned
by the OMG
Three MDA plug-in categories can be
identified basing on their focus:
1. Models representation and management
2. Models transformation
3. Models-to-Code generation
33. Notable MDA Projects in Eclipse
Name Description Categ./
License
Acceleo A MDA based code generator for various target middleware 3 / Free
and languages: Java EE, C#, Python, PHP etc.
Atlas It defines a management environment for MDE repositories 1 / Free
based on the "megamodel" approach. A megamodel is a
Megamodel registry of model resources available in a given scope (a
Management zone) In order to manage megamodels users may use
(AM3) metamodels from a library or invent their own ones for new
kinds of artifacts.
Atlas Model A tool for representing correspondence between models by 1 / Free
means of a model (named weaving model). Common
Weaver (AMW) weaving use cases are: data exchange, data integration,
model merging, etc
Atlas A model transformation language that provides 2 / Free
ways to produce a set of target models from a
Transformation set of source models. It also provide a toolkit
Language (ATL) (the ATL IDE) with a number of tools aimed to
ease the development of ATL transformations.
34. Notable MDA Projects in Eclipse
Name Description Categ./
License
Epsilon It can be used to manage models of different modeling 1/Free
technologies using a family of integrated model
management languages. It can be used for model
navigation, modification, transformation, validation and
comparison. It also provides tools for defining and
executing wizard and for code profiling and monitoring.
IBM Model Is a set of tools that helps to make comparisons, check 2 / IBM
consistency, and implement transformations between License
Transformation Eclipse Modeling Framework (EMF) models.
Framework
Kermeta A metaprogramming environment based on an object 2 / Free
oriented executable meta-modeling paradigm: a
Domain Specific Language (DSL) optimized for
metamodel engineering. It allows model and metamodel
management, weaving and transformation.
35. Notable MDA Projects in Eclipse
Name Description Categ./
License
openArchitectur It is suite of tools and components supporting in 1, 3 / Free
model driven software development. It is built upon a
eWare modular model-to-code generator framework
implemented in Java. It supports arbitrary import (model)
formats, meta models, and output (code) formats It is “a
tool for building MDA tools”
AndroMDA AndroMDA is an extensible generator framework that 3 / Free
adheres to MDA. Models from UML tools are
transformed into deployable components different
platforms: J2EE, Spring, .NET. It provides patterns for
Axis, Struts, JSF, Spring, Hibernate and other toolkits
QiQu It transforms an UML-model into source-code (Java, C#, 3 / Free
Cobol etc.). It relies on XMI and allows to build a
domain-specific generator that transform models into
code or anything else (XML, HTML, Scripts, Excel etc.)
Modeling Eclipse Plugins: http://www.eclipseplugincentral.com/Web_Links-index-req-viewcatlink-cid-11.html
36. MDA Enabling Technologies in Eclipse
There are a set of de-facto standard Eclipse
plug-ins that enable MDE features
These plug-ins enable upper-standing MDA
plug-ins to operate
We consider an essential subset of these
plug-ins in order to start experiencing with
MDA
38. QVT (Query View Transform)
QVT is an OMG specification
QVT extends OCL 2.0 to imperative OCL
QVT defines 3 DSL named Relations,
Core and Operational Mappings
Relations and Core are declarative
languages
OperationalMapping is an imperative
language with constructs like loops,
conditions, etc.
39. A Transformation Language: ATL
The Atlas Transformation Language (ATL)
is an answer to the OMG Query View and
Transformation (QVT) RFP
ATL is a QVT-like transformation language
and engine with a large user community and
an open source library of transformations
ATL provides the developers with a mean to
specify the way to produce a number of
target models from a set of source models
40. Eclipse and Modeling Plug-ins
The Eclipse Modeling Framework (EMF) is a
framework and a code generation facility
It allows to define and mange models in Java,
XML and UML
It relies on a meta-metamodel named Ecore
UML2 is an EMF-based implementation of the
UML 2.x metamodel
It provides the support for UML model plug-ins
It defines a common XMI schema for diagram
interchange
41. Eclipse and Graphical Plug-ins
The Graphical Editing Framework (GEF) allows
to create a graphical editor under Eclipse
GEF provides a layout and rendering toolkit for
displaying graphs, manage palettes, handle and
resize graphical objects
The Graphical Modeling Framework (GMF)
provides components and runtime
infrastructures for developing graphical editors
based on EMF and GEF
reusable components for graphical editors
generative infrastructure to graphical editor production
42. UML Modeler Plug-ins
Name Description
OmondoUML It is a visual modeling tool based on UML2. It supports
reverse engineering and production code for EJB,
Struts, Web Services. It is based on GEF and EMF.
Papyrus It is an open source product to model in UML2. It
allows to graphically represent diagrams in the
Diagram Interchange (DI2) OMG standard. It supports
Java and C++ code production and some UML
profiles (e.g. SysML)
Topcased It is a software engineering toolkit that provides
various modelers such as UML, Ecore, SysML. It is
compliant with the requirements of critical and
embedded applications
Eclipse ArgoUML It integrates the ArgoUML open source tool in the
Eclipse platform. It is a complete UML modeler
integrated with the AndroMDA MDA plug-in.
43. The ATLAS Transformation Language
ATL is a model transformation language
Specified both as a metamodel and as a textual concrete syntax
It is both declarative and imperative
declarative style is the default choice for simple transformations
source model elements are navigated by means of a set of rules that
create target model elements
It relies on a ATL Virtual Machine that allows transformations
A transformation from the ATL metamodel to the VM code enables to
“execute” ATL transformations
It has been implemented as an Eclipse plug-in
44. ATL Architecture
Execution Engine
Virtual Machine
ATL to bytecode compiler
Eclipse IDE used for
Editor with syntax highlighting
ATL launch support
Source debug
45. ATL Mapping Technique
The mapping technique used by ATL is
metamodel-based
MMM: MOF or Ecore [13]
MMt: ATL metamodel
Mt: ATL transformation model
MMa: source metamodel
MMb: target metamodel
Ma: source model
Mb: target model
Conforming to OMG Q/V/T specifications the transformations (Mt) are
defined as models as well conforming to the ATL metamodel (MMt)
46. ATL Transformations
ATL allows to define different types of
transformations
ATL Modules: are model to model
transformations
ATL Queries: are model to primitive datatype
transformations
ATL Libraries: factorize the ATL code in order
to be imported and used in multiple
transformations
An ATL transformation file has the .atl
extension
47. ATL Modules
Modules enable ATL developers to specify
the way to produce a set of target models starting
from a set of source model
Modules are structured in three sections:
Header section that defines some attributes relative
to the transformation
Helpers that are similar to Java methods
Rules that define the way target models are
generated from source models
48. ATL Rules
There are two different types of rules
Matching Rules: for ATL declarative specifications
to define for which kind of source elements target elements must
be generated
to define the way the generated target elements have to be
initialized
Called Rules: for ATL imperative programming
they are a particular type of header that can generate target
model elements
It has to be called from an imperative code section
49. ATL Execution Modes
ATL defines two different execution modes for its modules:
Normal execution Mode
Explicitly specifies how each target model element must be generated
from source model elements
Refinement execution Mode
Source model elements are implicitly copied from the source to the
target model
ATL developers focus on the generation of the modified target
elements
It is limited to the transformation of a single source model to a single
target model conforming to the same metamodel
52. Transformation Rules
Transformation declaration and a transformation rule:
TRANSFORMATION uml2java(SOURCE UML, TARGET Java)!
TRACKING TModel;!
RULE umlClassifierToJavaClass(X, Y)!
FORALL UMLClassifier X!
WHERE X.name = N!
MAKE JavaClass Y,!
Y.name = N!
LINKING X, Y BY JavaClassFromUMLClassifier;!
...!
53. Tracking Relationships
Tracking class and a transformation rule:
CLASS JavaClassFromUMLClassifier {!
UMLClassifier a;!
JavaClass c;!
KEY (a);!
}!
RULE umlAttributeToJavaField!
FORALL UMLAttribute X!
WHERE JavaClassFromUMLClassifier LINKS X.owner, JC!
MAKE JavaField Y,!
Y.owner = JC!
LINKING X, Y BY FieldFromAttr;!
54. Rule Inheritance
Rule inheritance and Superseding:
CLASS JavaIntfFromUMLIntf EXTENDS JavaClassFromUMLClassifier;!
RULE umlInterfaceToJavaInterface(X, Y)!
SUPERSEDES umlClassifierToJavaClass(X, Y)!
FORALL UMLInterface X!
MAKE JavaInterface Y,!
Y.name = X.name!
LINKING X, Y BY JavaIntfFromUMLIntf;!
RULE umlClassToJavaClass(X, Y)!
EXTENDS umlClassifierToJavaClass(X, Y)!
MAKE JavaMethod M,!
M.name = X.name,!
Y.constructor = M!
LINKING X, M BY JavaConsFromUMLClass;!
57. ATL DataTypes
The ATL language is based on the OMG Object
Constraint Language (OCL)
Primitive DataType
Boolean, Integer, Real, String
Collection DataType
Set, OrderedSet, Sequence, Bag as collection_type
(element_datatype)
Tuple DataType
TupleType(var_name1 : var_type1, ..., var_namen :
var_typen)
Map DataType
Map{(key1, value1), ..., (keyn, valuen)}
Model Element DataType
metamodel!class
58. An ATL Transformation
The Author Source Metamodel The Person Target Metamodel
The goal is a model to model PIM to PSM
transformation
name and surname attributes must be preserved
An instance of Author is mapped into an instance of
Person
59. An ATL Transformation
module Author2Person;
create OUT : Person from IN : Author;
rule Author {
from
a : Author!Author
to
p : Person!Person (
name <- a.name,
surname <- a.surname
)
}
60. Conclusion
MDE is the next step of the object technology
As objects and classes were seen in the 80's as "first class
entities", with libraries of several hundred of classes
hierarchically organized, models and metamodels are
beginning to be considered alike in the 2000's
Libraries (lattices) of hundreds of metamodels of high
abstraction and low granularity are beginning to appear.
Each such metamodel may contains several hundreds of
concepts and relations
Tools are needed to work with these libraries of models and
metamodels
Research is needed to bring together theory and practice of
model engineering (ontologists, methodologists, software
practitioners, information system builders, database
specialists, etc.)
61. Self-test questions
What is a model transformation?
What is the goal of model
transformations?
What is QVT?
What is ATL?
62. References
Bézivin: On the unification power of models. Software and
System Modeling, Springer, 4:2(171-188), May 2005
Frankel, Model Driven Architecture: Applying MDA to
Enterprise Computing, Wiley, 2003
Kurtev, Bezivin, Jouault, Valduriez, “Model-Based DSL
Framework” . ACM OOPSLA, 602—616. 2006.
Mellor, Scott, Uhl, Weise MDA Distilled: Principles of
Model-Driven Architecture, Addison-Wesley, 2004
Schmidt, Model-Driven Engineering. IEEE Computer, 39:2
(25-31), February 2006.
63. Specifications and URLs
[1s] Eclipse ATL Project, http://www.eclipse.org/m2m/atl
[2s] Eclipse EMF Project, http://www.eclipse.org/modeling/emf/
[3s] OMG, “Common Warehouse Meta-model (CWM)”, Version 1.0, October
2001, http://www.omg.org/cgi-bin/doc?formal/01-10-01.pdf
[4s] OMG, “XML Metadata Interchange (XMI) Specification v1.2”, January
2002, http://www.omg.org/cgi-bin/doc?formal/02-01-01.pdf
[5s] OMG, “Meta Object Facility (MOF) Specification”, Version 1.4, OMG, April
2002, http://www.omg.org/cgi-bin/doc?formal/02-04-03.pdf
[6s] OMG, “Meta Object Facility (MOF) Core Specification”, Version 2.0,
January 2006, http://www.omg.org/docs/formal/06-01-01.pdf
[7s] OMG, “Meta Object Facility 2.0 Query/View/Transformation Specification”,
November 2005, http://www.omg.org/docs/ptc/05-11-01.pdf
[8s] OMG, “MDA Guide Version 1.0.1”, June 2003,
http://www.omg.org/docs/omg/03-06-01.pdf
[9s] OMG, “Unified Modeling Language (UML), version 1.4”,
September 2001, http://www.omg.org/cgi-bin/doc?formal/01-09-67
[10s] OMG, “Unified Modeling Language: Infrastucture”, version 2.2.1,
February 2007, http://www.omg.org/docs/formal/07-02-04.pdf
[11s] Sun, “Java Metadata Interface (JMI) API 1.0 Specification”,
http://jcp.org/aboutJava/communityprocess/final/jsr040/index.html