MDD and modeling tools research


Published on

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?

Published in: Technology
  • Be the first to comment

MDD and modeling tools research

  1. 1. Investigation Modeling Tools<br />Jun 20th, 2011<br />Roger Xia<br /> TOC o "1-3" h z u Abstract PAGEREF _Toc296583327 h 2<br />Overview PAGEREF _Toc296583328 h 2<br />MDA (Model-driven architecture) PAGEREF _Toc296583329 h 2<br />Common Modeling Platform and Toolset PAGEREF _Toc296583330 h 3<br />UML vs. DSL PAGEREF _Toc296583331 h 5<br />Textual vs. Visual modeling languages PAGEREF _Toc296583332 h 5<br />Agile Modeling PAGEREF _Toc296583333 h 5<br />Modeling Tools PAGEREF _Toc296583334 h 6<br />Eclipse Modeling Tools PAGEREF _Toc296583335 h 6<br />Graphical Modeling Tools PAGEREF _Toc296583336 h 6<br />Overview of Graphical Modeling Tools PAGEREF _Toc296583337 h 6<br />Screenshot PAGEREF _Toc296583338 h 9<br />Conclusion PAGEREF _Toc296583339 h 16<br />Working on Eclipse PAGEREF _Toc296583340 h 16<br />DSL Tools with textual modeling PAGEREF _Toc296583341 h 17<br />Xtext PAGEREF _Toc296583342 h 17<br />TEF PAGEREF _Toc296583343 h 18<br />TCS PAGEREF _Toc296583344 h 18<br />EMFText PAGEREF _Toc296583345 h 18<br />JetBrains MPS PAGEREF _Toc296583346 h 19<br />DSL2JDT, ETMOP, CAL PAGEREF _Toc296583347 h 19<br />References PAGEREF _Toc296583348 h 19<br />Abstract<br />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? We don’t want to answer this question in this passage, we would like to take an overview of the modeling tools first.<br />Overview<br />To be agile and open, tooling must be standards-based. <br />MDA (Model-driven architecture)<br />MDA is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. The MDA model is related to multiple standards, including the UML, the Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), the Software Process Engineering Metamodel (SPEM), and the Common Warehouse Metamodel (CWM).<br />Common Modeling Platform and Toolset<br />After years of theory and formalism, there now is a convergence towards a common platform and toolset for model driven languages and systems, i.e. the Eclipse Modeling Framework (EMF). The EMF project is a modeling framework and code generation facility for building tools and other applications based on a structured data model. EMF unifies three important technologies: Java, XML, and UML.<br />EMF builds include XML Schema Definition (XSD), now a component of the Model Development Tools (MDT) project, and an EMF-based implementation of Service Data Objects (SDO). Other subprojects, such as CDO (Connected Data Objects), Compare, Model Query, Model Transaction, and Validation Framework, are available separately.<br />EMF (Core)<br />From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. Models can be specified using annotated Java, XML documents, or modeling tools like Rational Rose, then imported into EMF. Most important of all, EMF provides the foundation for interoperability with other EMF-based tools and applications. <br />It appears that model-driven engineering is ready for prime time – one can actually build models, model to model transformations (M2M) and model to code (M2T) generators relatively easy, in a variety of domains.<br />Service Data Objects (SDO)<br /> Service Data Objects is a framework for data application development, which includes an architecture and API. Service Data Objects simplify the J2EE data programming model and abstract data in a service oriented architecture (SOA). SDO unifies data application development, supports, and integrates XML. Service Data Objects incorporate J2EE patterns and best practices.<br />Model Development Tools (MDT)<br />The Model Development Tools project aims at:<br /><ul><li>To provide an implementation of industry standard metamodels;
  2. 2. To provide exemplary tools for developing models based on those metamodels.</li></ul>Some of its components are available to download, such as XSD, OCL (Object Constraint Language), UML2; other components are currently in their validation (incubation) phase, like BPMN2, IMM, MoDisco, MST, Papyrus, SBVR.<br /><ul><li>BPMN2 -- provide a metamodel implementation based on the forthcoming Business Process Model and Notation (BPMN) 2.0 OMG specifications.
  3. 3. IMM -- provide metamodel/profile implementations based on the forthcoming Information Management Metamodel (IMM) OMG specification.
  4. 4. MoDisco -- provides a framework to develop model-driven tools for software modernization. It aims at supporting use-cases such as Quality Assurance, Documentation, Improvement and Migration.
  5. 5. MST -- provides tooling for the development of MOF-compliant metamodels and specifications based on them.
  6. 6. Papyrus -- provides an integrated, user-consumable environment for editing any kind of EMF model and particularly supporting UML and related modeling languages such as SysML and MARTE.
  7. 7. SBVR – provides a metamodel implementation and sample tools based on the adopted Semantics of Business Vocabulary and Business Rules (SBVR) OMG specification.</li></ul>UML vs. DSL<br />UML is used at an implementation independent level.<br />DSLs (domain-specific languages) are used at an implementation dependent level.<br />Best practices for DSLs and Model Driven Development:<br /><ul><li>Designing DSLs: best practices in language design.
  8. 8. Processing models: best practices in making the models expressed with DSLs executable by either code generation or model interpretation.
  9. 9. Process and organization: best practices for process and organization around MDD.</li></ul>Textual vs. Visual modeling languages<br />There are textual and visual modeling languages, and current wisdom is that most domains require both. Of course EMF allows the creation and use of both visual and textual editors, too. The debate in this area is whether textual modeling and visual modeling are two separate activities or whether it is indeed desirable to unify into a combined interaction model. A commonly heard statement is that modeling and programming is one and the same. One can argue with that as it is strongly dependent on the target audience for the tools. It is not common across all domains that subject matter experts are also coders…<br />There were, however, interesting presentations of tools that integrate multiple representations of domain concepts within a predominantly textual editor, for example a state machine encoded in Java that could be represented, embedded in the editor, as a diagram or as a state table. It allowed the engineer to manipulate the state table and then revert back to the Java representation with the changes present in the Java encoding.<br />Agile Modeling<br />Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of software-based systems. At a high level AM is a collection of best practices, depicted in the pattern language map below<br />Modeling Tools<br />There are so many tools created for modeling. <br />Eclipse Modeling Tools<br />This modeling package contains a collection of Eclipse Modeling Project components, including EMF, GMF, MDT XSD/OCL/UML2, M2M, M2T, and EMFT elements. It includes a complete SDK, developer tools and source code. Some of its components are still in incubation phase. Find it here.<br />Graphical Modeling Tools<br />In the following section, we pick out ten modeling tools, some of them are graphic UML tools, some of them are used for data modeling and profiling, some of them focus on MDA.<br />Overview of Graphical Modeling Tools<br />name Version Platform & Environment XMIDescription ArgoUML BSDJava Leading open source UML modeling tool;XMI, OCL support; Forward /reverse engineering/jar/class file import;Cognitive support, Reflection-in-action; corrective automations, i18n, multiple diagram export format Astah Community /Professional Java、C#、C++ A lightweight UML editor integrated with ERD, DFD, CRUD and Mind mapping features for software developers.astah* API (Models of Class, UseCase, Activity, Sequence and Statemachine Diagrams)Originally known as JUDE. StarUML Opensource Run on Win32 platform Open Source UML/MDA Platform;UML2.0; MDA {StarUML provides many customization variables like as UML profile, Approach, Model Framework, NX(notation extension), MDA code and document template and so on.}Plug-in Architecture; UsabilityVisual Paradigm for UML Community / EnterpriseJava, C++, CORBA IDL, PHP, XML Schema, C#, VB .NET, Object Definition Language (ODL), Flash ActionScript 3.0, Delphi, Perl, Python, Objective-C UML modeling, Use case modeling, Report generation (PDF, MS word, HTML, customizable, publish to web), Code engineering;Data modeling: ERD, Support SysML, BPMN, XMI. EclipseUML Omondo Powered by Eclipse 3.7 Indigo;Built on the top of MOF and uses Ecore as opposed to traditional tools which use transformation layers. AndroMDA Open sourceIt takes model(s) from CASE-tool(s) and generates fully deployable applications and other components.EJB, Spring, Hibernate, Struts, .NET, Web Services An open source code generation framework that follows MDA paradigm.Support UML2, based on EMF;A maven plugin to generate project templates such as for J2EE (Hibernate, EJB, Spring, WebServices, and Struts): andromdapp:generate.Schema2XMI is able to read your database and build an XMI file from it, which can then be used to load as a UML model.SQL Power ArchitectCommunity / EnterpriseInnovative Java-based data modeling tool geared specifically for Data Warehouse and Data Mart design. Data Modeling & Profiling Tool; Multi-database support, Forward engineering, Reverse engineering, Model comparison, ETL & OLAPTogether 2008 R3 license Java®/C++/CORBA® IDL UML Modeling, Data Modeling, MDA, DSL toolkit, BPMN validation, Eclipse platform, generate doc;LiveSource® technology; Eclipse PlatformMagicDraw Enterprise License round-trip support for Java, C++, C#, CL (MSIL) and CORBA IDL programming languages Integrate with Eclipse, code engineering mechanism, database schema modeling, DDL generation and reverse engineering facilities;Support RUP and WAE design pattern;Support SysML, BPMN 2.0, DoDAF, OCL, XMI.Enterprise Architect Enterprise License C++, Java, C#, Delphi, SQL-DDL, VB.NET, VB Virtual modeling platform: uml analysis and design, full traceability from requirements to deployment, code engineering in over 10 languages;Scalable, team-based repository;Enterprise frameworks, mind maps, BPMN... Eclipse Integration (MDG Integration).<br />Screenshot<br />ArgoUML<br />Astah*<br />StarUML<br />EclipseUML<br />AndroMDA<br />Architecture of AndroMDA Generated ApplicationsJava.Net<br />SQL Power Architect<br />Tool-based Process for a change request to an existing data model<br />Together 2008 R3<br />Together 2008 Release 3 can be installed to an existing instance of Eclipse SDK version 3.6.1 from the online or archived update site. <br />MagicDraw<br />When using MagicDraw with Eclipse, Mia-Generation is integrated through its standard Eclipse plugin.<br />Create models, generate and edit generated files within Eclipse<br />Conclusion<br />StarUML, ArgoUML, Astah, VP UML are all good UML tools<br />Power architect is a good data modeling and profiling tool<br />AndroMDA and EclipseUML are good at MDA, generating enterprise project from models.<br />Enterprise Architect / Together 2008/ MagicDraw are all powerful tools in UML and Data modeling, but they need pay. <br />Working on Eclipse<br />For the tools (argoUML, androMDA, starUML, VP UML, Together, magicDraw, Enterprise Architect), who support XMI technology, we can export uml to XMI, and then import XMI to another modeling tool which support XMI. (Pay attention to UML version.)<br />Together 2008 R3 based on Eclipse platform.<br />There is a tool called ArgoEclipse, that enables us to work with argouml in eclipse, and also we can use argo2ecore to create uml models created with argouml to the eclipse uml dialet ecore, and then use emf codegenerator (e.g. JET) to generate java code.<br />Merlin, an innovation software modeling tool built on top of Eclipse platform and EMF. support code generation and model transformation.<br />EclipseUML built on the top of MOF and uses Ecore.<br />AndroMDA has a repository called "org.andromda.repositories.emf", which implements the Eclipse EMF repository integration with AndroMDA, this integration allows AndroMDA to use the Eclipse EMF framework as a repository for loading, and querying object models.<br />When using MagicDraw with Eclipse, Mia-Generation is integrated through its standard Eclipse plugin, this integration enables modeling, generating and editing the generated code within Eclipse.<br /> The MDG Integration for Eclipse provides seamless integration with Eclipse and Enterprise Architect.<br />DSL Tools with textual modeling<br />Xtext<br />With Xtext you can easily create your own programming languages and domain-specific languages (DSLs). The framework supports the development of language infrastructures including compilers and interpreters as well as full blown Eclipse-based IDE integration.<br />Resources:<br />Combining Text and Graphics in Eclipse-based Modeling Tools<br />Model Driven Software Development with Eclipse<br />Building DSLs With Eclipse<br />TEF<br />The Textual Editing Framework (TEF) allows you to create textual editors for your EMF-based languages. TEF provides a syntax definition language called TSL. In this language, you, the language engineer, can describe a textual notation for a given Ecore meta-model. TEF is based on Eclipse. There are two different strategies to approach the textual editing of models: Model View Controller (representation/model separation) and Background Parsing (allow using features and plug-ins). TEF chooses the background parsing strategy.<br />TCS<br />Textual Concrete Syntax (TCS) is an Eclipse/GMT component that enables the specification of textual concrete syntaxes for Domain-Specific Languages (DSLs) by attaching syntactic information to metamodels. With TCS, it is possible to parse (text-to-model) and pretty-print (model-to-text) DSL sentences. Moreover, TCS provides an Eclipse editor, which features: syntax highlighting, an outline, hyperlinks, and hovers for every DSL which syntax is represented in TCS.<br />EMFText<br />EMFText is an Eclipse plug-in that allows you to define text syntax for languages described by an Ecore metamodel. EMFText enables developers to define textual Domain Specific Languages quickly and without the need to learn new technologies and concepts.<br />JetBrains MPS<br />Meta Programming System (MPS) is a brand new concept of software development environment implementing the Language Oriented Programming paradigm. Open-source product, available under Apache 2.0 License<br />DSL2JDT, ETMOP, CAL<br />References<br />Model Driven Development Misperceptions and Challenges<br />Making Model-Driven Software Development live up to its promises<br />Textual Modeling Tools<br />From Programming to Modeling and Back again<br />