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?
3. IMM -- provide metamodel/profile implementations based on the forthcoming Information Management Metamodel (IMM) OMG specification.
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. MST -- provides tooling for the development of MOF-compliant metamodels and specifications based on them.
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.
8. Processing models: best practices in making the models expressed with DSLs executable by either code generation or model interpretation.
9. Process and organization: best practices for process and organization around MDD.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 quot;
org.andromda.repositories.emfquot;
, 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 />