Introduction
1.0 Description of the Practice
1.1 Summary Description
This document defines the practice of capturing artifacts in rigorous model-based notation as being equivalent to Model-Driven Software Engineering (MDSE) ([Mellor, 2003] and [Schmidt, 2006]). Artifacts, in software engineering, are any products of software development and maintenance processes. These include documentation, source code, executables, test data, scripts for installing and executing all or part of a system, and any engineering data produced under such processes. Rigorous model-based notation often involves the adoption of formal methods. Formal methods support precise specification of the syntax and semantics of languages in which models and mathematical proofs about properties of such models are expressed. This document provides an overview of MDSE for managers, without fully specifying technical details.
MDSE is an emerging practice supported by research and commercially-available software tools. The model-based notation used in this practice is machine-readable and used in the automatic derivation or generation of source code for a software-intensive system. The practice of capturing artifacts in rigorous, model-based notation has evolved over the years, from the use of early Computer Aided Software Engineering (CASE) tools to the use of commercially available Model-Driven Software Engineering (MDSE) tools. MDSE is also known as Model-Driven Development (MDD) and Model-Based Development (MBD). Model-Driven Architecture (MDA) is an Object Management Group (OMG) approach, with associated standards. The practice described by this report is MDSE or MDD. "A basic premise of Model-Driven Development (MDD) is to capture all important design information in a set of formal or semiformal models, which are then kept automatically consistent by tools"[Mattsson, 2009]. A recent marketing study divides the analysis, modeling, and design market into business rules management systems and MDSE. MDSE tools consist of tools for data modeling, Unified Modeling Language (UML) process modeling, and business process modeling. The use of MDSE is growing with the use of business process modeling and Service Oriented Architecture [Hendrick, 2008].
 |
| Figure 1: MDSE Process |
Artifacts in model-based notation are used to record requirements, architecture, or designs. The DACS gold practice on Model-Based Testing describes the construction of models of user behavior, the use of such models in automatically generating test cases, and the tool-based monitoring and execution of testing. This gold practice, on the other hand, focuses on models of software-intensive systems and their architectures, the transformations of such models into designs and implementation, and the maintenance of consistency between models and implementations. Software architecture is "the set of significant decisions about the organization of a software system: selection of the structural elements and their interfaces by which a system is composed, behavior as specified in collaborations among these elements, composition of these structural and behavioral elements into larger subsystems, [and] architectural style that guides this organization. " The architecture includes considerations of "usage, functionality, performance, resilience, reuse, comprehensibility, economic and technology constraints and tradeoffs, and aesthetic concerns" (From the Rational Unified Process, as quoted in [Kruchten, 2004]).
Artifacts in model-based notation are particularly useful for:
- Expression of the system and its evolution
- Communication among system stakeholders
- Evaluation and comparison of architectures in a consistent manner
- Planning, managing, and executing the activities of a system development
- Expression of the persistent characteristics and supporting principles of a system to guide acceptable change
- Verification of a system implementation's compliance with an architectural description
- Recording contributions to the body of knowledge of software-intensive systems architecture.
Table 1: Key Model Characteristics
| Model Property |
Definition |
| Abstraction |
Loss of detail is irrelevant for a certain purpose or viewpoint |
| Understandability |
Presentation in a notation, form, or language appealing to intuition |
| Accuracy |
True-to-life representation of features of interest |
| Capability to Predict |
Manipulation of the model can be used to predict properties of the real system |
| Cost Effective |
Constructing and manipulating the model is less expensive than constructing and manipulating the real system |
Transformations of one model into another and of models into running code are an important aspect of MDSE. Proponents and researchers using MDSE ([Stahl, 2006] and [Kelly, 2008]) distinguish between a full implementation of MDSE and "round trip engineering". In a full implementation, corrective, adaptive, and perfective modifications are made to the models or mapping information, and the source code is regenerated. That is, models are maintained, and source is never altered by direct human intervention. If one is unhappy with source code, one should alter the mapping information that MDSE tools use in generating code. In round trip engineering, on the other hand, both models and source code are updated, with consistency maintained by the process. Code is regenerated after changes to models, and models are rebuilt after changes to the source code. Code generation tools that support round trip engineering should clearly demarcate generated code and merge newly generated code with existing user modifications, as is done in existing Configuration Management tools such as Concurrent Version Systems (CVS).
MDSE has been instantiated by a number of currently-available approaches:
- Domain specific modeling, as described in [Kelly, 2008] and Section 1.2.2
- MDA, as described in [Miller, 2003] and Section 1.2.2.2
- Software Factories, as being developed by Microsoft in their Oslo project and described in Section 1.2.2.3
- The Rational Unified Process for Systems Engineering (RUP SE), as described in [Nolan, 2008] and Section 1.2.2.4
- Eclipse modeling projects, as described in Section 1.2.2.5
The adoption of this practice results in changes from traditional software development. More emphasis is placed on tool usage, particularly architecture and design tools. The production of application frameworks, architectures, software product lines, and small Domain-Specific Modeling Languages is stressed. The source code for specific applications on designated target platforms is automatically generated. The effective use of this application may require the use of a specialist in configuring the tools by selecting design patterns, library routines, etc. for generating code.
MDSE has benefits and costs. Increased productivity, increase reuse, and decreased failures are among the benefits. A steep learning curve, including the toolsets that implement it, prevents total development time from being lowered on the first project in an organization to adopt MDSE. MDSE constrains architecture to be specified by component specification. Constraints and other architectural design rules not easily specified in terms of a model are difficult to communicate under MDSE processes. Developers following MDA processes, at least, still need to be aware of details of the target platform, although such knowledge is specified in tool configuration rather than human development of designs and implementations. A number of organizations have completed successful demonstration projects of MDSE. The case studies in Appendix C substantiate this summary of costs and benefits of MDSE.
Not all those implementing a feasibility for MDSE need to be expert in all activities in MDSE. Some can specialize in designing the domain language, while others specialize in specifying applications using that languages. Steven Kelly and Juha-Pekka Tolvanen recommend that both this feasibility study and later modeling be implemented incrementally [Kelly, 2008].
A detailed description of MDSE in this report is organized around supporting technologies and approaches. A brief overview of UML is followed by a brief description of MDSE itself. The possibility of constructing different models for different application domains is central to MDSE, and metamodels allow for such a range of models. The brief description of MDSE is followed by a list of examples of metamodels. The OMG's MDA, Microsoft's software factories, an approach in the Rational Unified Process, and an Eclipse project constitute approaches to MDSE described in this report. The detailed description of MDSE is concluded by a brief description of some characteristics of the practice. Other sections provide relationships to other Gold Practices and origins of MDSE. Appendices provide background on formal modeling notation, recommending sources, and case studies. This report concludes with some acronyms and resources on the Web for MDSE.
1.2 Detailed Description
This document defines the practice of capturing artifacts in rigorous model-based notation as being equivalent to Model-Driven Software Engineering (MDSE) ([Mellor, 2003] and [Schmidt, 2006]), an emerging practice supported by research and commercially-available software tools. The model-based notation used in this practice is machine-readable and used in the automatic derivation or generation of source code for a software-intensive system. The Unified Modeling Language (UML) provides one model-based notation widely used in such tools. Some (e.g., [Greenfield, 2004] and [Stahl, 2006]) argue that UML needs a more formal definition, an issue being addressed in UML 2. UML builds on earlier notations, such as Data Flow Diagrams (DFDs), Entity-Relationship (ER) diagrams, and Integration Definition (IDEF) diagrams, used in earlier generations of Computer-Aided Software Engineering (CASE) tools. UML can be considered as defining a Domain-Specific Modeling Language (DSML) for Object-Oriented systems. MDSE tools, such as MetaEdit+, provide the user with a capability to define their own DSML and then define a model for their application in that DSML.
CASE tools have provided a capacity to generate at least some code for decades. The practice of enhancing, modifying, or maintaining the source code in later life cycle phases, such as implementation, testing, and operations raises the issue of preserving consistency between models and the implementation. In round trip engineering developers update documentation and models after updating the code and vice-versa, thereby preserving consistency. Researchers (e.g., [Stahl, 2006], p. 74) distinguish between round trip engineering and MDSE. Just as in domains outside of some High Performance Computing applications, developers do not manually update the assembly or machine language generated by compilers, so in a mature MDSE approach the generated source code is not manually maintained. Instead, one updates the models and regenerates code with the MDSE tools. Since this approach has a higher payoff in developer productivity and quality, this report concentrates on the MDSE approach.
Artifacts captured in rigorous model-based notation can be used to:
- Document and express a system and its evolution
- Communicate among system stakeholders
- Consistently evaluate and compare architectures
- Derive implementations by successive transformations of models
- Verify a system implementation's compliance with requirements, particularly through Model Based Testing (MBT).
MDSE supports these uses, with experienced developers, more effectively than many processes relying on non-automated notations and traditional human-intensive design, coding, and testing.
Model-based notations are typically displayed graphically by MDSE tools. The models are expressed in a language, where such languages have a formally defined syntax and semantics. MDSE researchers ([Stahl, 2006], p. 85, and [Kelly, 2008], p. 68-70) distinguish between an abstract syntax and a concrete syntax. The abstract syntax specifies the language constructs, their properties, and relations. The concrete syntax specifies the specific representation of language constructs, for example, a rectangle or oval. Only the abstract syntax need be specified in a format such as XML Metadata Interchange (XMI) for storing and sharing models and their associated DSMLs between tools. Appendix A provides further theoretical background on rigorous model-based notation.
Cognizant of the above background, the following subsection provides an overview of UML. The next subsection defines some key concepts of MDSE. Subsections briefly describe five influential examples of MDSE methodologies, that is, domain specific modeling, Model Driven Architecture (MDA), Microsoft's software factories, IBM Rational's instantiation, and the Eclipse Modeling Framework (EMF). In MDSE, "architecture" is used to mean both relationships among artifacts and models generated during development and maintenance processes and the architecture of a software-intensive system documented, analyzed, and derived from a MDSE approach. The term is used in both senses in these explanations of MDSE methodologies.
1.2.1 Unified Modeling Language
1.2.2 Model-Driven Software Engineering
Model-Driven Software Engineering (MDSE) predicates that a better software-intensive system can often be more cost-effectively developed and maintained by generating it from a model expressed in a Domain-Specific Modeling Language (DSML). Each DSML focuses on an application or problem domain. Since models developed in DSMLs are specified in concepts closely related to the application domain, MDSE raises the level of abstraction of software development over many current approaches (Figure 3). MDSE implies the need for a technology, a meta-metamodel, to define DSMLs to express one's models. A number of efforts have been on-going for a number of years to define such tecnologies. Among these are Model-Driven Architecture (MDA) [Miller, 2003], MetaObject Facility (MOF) [Anonymous, 2006], and related standards from the Object Management Group (OMG); The Eclipse Modeling Framework (EMF); and technology developed by various tool-vendors, such as MetaEdit+ from MetaCase.
 |
| Figure 3: Bridging the Abstraction Gap Between Domain Terms and Their Implementation (Based on [Kelly, 2008]) |
MDSE applies an approach to requirements, architecture, and high-level design analogous to an implementation approach common among the Unix community. These developers sometimes use Unix commands; such as awk, sed, or yacc; or scripting languages, such as Perl or PHP, to define a mini-language customized for the particular task at hand. The desired implementation is then written in this mini-language. Similarly, in MDSE, one defines a DSML in which to model an application. The implementation is then generated from the model.
For decades, the developers of software-intensive systems have found it useful to raise the level of abstraction embodied in their languages and notations. Early CASE and UML tools allow developers to describe systems in a general model-based notation, not specifically tailored for any specific application domain. MDSE allows developers to specify models in a notation tailored for an application domain, thereby abstracting even further from implementation details influencing Object-Oriented UML models. "The full value of MDA is only achieved when the modeling concepts map directly to domain concepts rather than computer technology concepts" [Booch, 2004]. For example, an automotive system might include a navigation system, an audio system, a radio, and a CD player, cities, and streets. A point-of-sale system might include Purchase Orders and items. Models from which such systems are derived would then include distinct elements for these components; these models would not consist simply of various UML classes.
Every model is an instance of a metamodel. [Stahl, 2006] makes a distinction between a metamodel and a DSML. If one views UML as a language for Object-Oriented systems, the corresponding UML meta-model includes the twelve UML diagrams (e.g., a Use Case Diagram), as well as such notions as classes. Figure 4 illustrates the relation between instances of model elements, models, and metamodels. A domain element might be an instantiation of a particular class, such as a specific person with a name, identification number, age, and so on. A model element might be a specific class, such as the class of employees. A metamodel might define the class construct, as in UML, or general notions tailored for the domain, as in a DSML [Kelly, 2008].
 |
| Figure 4: Relationships Among Domains, Models, and Metamodels (Based on [Stahl, 2006]) |
In traditional CASE and UML tools, the meta-model is fixed and predefined. In a sense, the metamodel is hard-coded into the tool. Since a meta-model is a specific kind of model, it too can be viewed as an instance of a higher-level metamodel, that is, a meta-metamodel (Figure 5). In MDSE, the meta-metamodel is fixed, and the metamodel is tailored for the domain. With this approach, UML, at least in version 2.0, is itself defined as a particular instance of the meta-metamodel (Figure 6). For example, the MetaObject Facility (MOF) Classifier is used to specify the concept of a class in UML. A MDSE tool provides a capability to use the built-in meta-metamodel to define a DSML and the corresponding metamodel.
A meta-metamodel could be seen as an instance of a meta-meta-metamodel. Theoretically, the number of meta layers could increase without bound. In practice, the number of layers need not increase above the meta-metamodel. Meta-metamodels, such as the MOF, provide the capability to define themselves, just like any other metamodel that they can be used to define. This approach is analogous to defining the syntax of Backus-Naur Form in Backus-Naur Form, as in Section 8 of [Anonymous, 1996].
In MDSE, models expressed are in languages that have a syntax and semantics. MDSE practitioners (e.g., [Kelly, 2008], pp. 68-70) distinguish between the abstract and concrete syntax of a DSML. The abstract syntax specifies how language elements relate to one another, while the concrete syntax specifies, for example, the particular textual or graphical shape of language elements and their relationships. The concrete syntax does not need to be captured in data shared among MDSE tools.
1.2.2.1 Metamodel Examples
1.2.2.2 Model Driven Architecture
1.2.2.3 Software Factories
A software factory, in this context, is one of a number of Microsoft-sponsored approaches to metamodeling. The Oslo project, is another Microsoft approach now under development. Oslo:
- Provides a visual modeling tool named Quadrant;
- Will store model data within a database repository;
- Includes M, a family of textual languages for metamodeling or meta-metamodeling; and
- Comes with a library of already built domain models and languages.
Oslo allows any number of meta-modeling layers in its architecture. The latest Community Technology Preview (CTP) for the Oslo Software Development Kit (SDK) is dated January 2009. Microsoft describes M as complementary to UML. Microsoft joined OMG on 9 September 2008. Microsoft is now working to ensure its modeling efforts are designed to produce products interoperable with UML. Software factories are more mature than Oslo. Furthermore, a software factory is a software development practice, while Oslo is a combination of tools and languages. Consequently, the remainder of this section describes software factories.
Software factories [Greenfield, 2004] provide one overarching paradigm for MDSE. Software factories:
- Raise the level of abstraction in programming to that of developing DSMLs and models, instead of traditional source code
- Shifts the focus from individual applications to product families
- Dramatically increases the use of automation
- Emphasizes declarative over imperative specifications
[Greenfield, 2004] defines a software factory:
"A Software Factory is a software product line that configures extensible development tools like Visual Studio Team System with packaged content like [DSMLs], patterns, frameworks and guidance, based on recipes for building specific kinds of applications. For example, we might set up a Software Factory for thin client Customer Relationship Management (CRM) applications using the .NET framework, C#, the Microsoft Business Framework, Microsoft SQL Server and the Microsoft Host Integration Server. Equipped with this factory, we could rapidly punch out an endless variety of CRM applications, each containing unique features based on the unique requirements of specific customers. Better yet, we could use this factory to create an ecosystem, by making it available to third parties, who could extend it to rapidly build CRM applications incorporating their value added extensions." Jack Greenfield, Keith Short, Steve Cook, and Stuart Kent
Implementing software factories requires investments and changes in business processes and organizations to achieve potential benefits, particularly from reuse. Developing families of products mandates new planning processes and management structures. Application development concentrates more on the development of infrastructure, tools, and assets such as patterns and frameworks. ([Greenfield, 2004], p. 591-596) In other words, software factories deliver product families. Design patterns are applied automatically within software factories, and software factories provide systematic reuse.
[Greenfield, 1996] compares and contrasts software factories to Rapid Application Development (RAD), MDA, the Rational Unified Process, and agile development. "A Software Factory is essentially a domain specific RAD environment." Software factories differ from a general-purpose RAD in that they use domain-specific models. The concepts captured in such domain-specific models enable more advanced and more extensive automated transformations of models and generation of code. The use of domain-specific models supports the partial automation of design. Automation can use rules governing the selection, configuration, and integration of objects at the level of design. Design-level specification errors can be automatically detected, and domain-specific optimizations and be automatically performed. Visualization, inspection, and debugging of execution at the level of design objects can be made available. Development artifacts are managed with the use of design information.
Unlike MDA, software factories deliver product families from DSMLs. They use design patterns. Software factories use DSMLs, not UML. [Greenfield, 1996] argues effective use of UML applies it in a lightweight fashion. Software factories also apply small metamodels and DSMLs. Software factories do serialize model-based metadata as XML (chap7 and 8), but do not use MOF and XMI. Expositors of software factories claim not using XMI gives them more independence from the metamodels of target languages.
According to [Greenfield, 2004], "the least mature aspects of software factories are language technology, tool extensibility, pattern composition, deferred encapsulation, and the development of standard [DSMLs], patterns, frameworks, and tools for popular domains."
1.2.2.4 Model Driven Systems Development and the Rational Unified Process
The Rational Unified Process for Systems Engineering (RUP SE) "is IBM Rational's instantiation of Model Driven Systems Development" [Nolan, 2008]. RUP SE permits the specification of a system and system elements in either UML or the OMG Systems Modeling Language (SysML). SysML is an extension to UML [Anonymous, 2008]. The RUP SE architecture supports four principles: seperation of concerns, integration, system decomposition, and scalability. Seperation of concerns allows system design to address the concerns of different stakeholders independently. Using common design elements in addressing the different concerns of different stateholders achieves integration. Decomposing the system by structure, not function, allows the for parallel development at any structural level. Using the same framework for systems anywhere from a low-level component to an enterprise system achieves scalability. [Balmelli, 2006] The benefits of MDSE include risk reduction, improved communication among team members, explicit processes for performing trade studies and reasoning about systems issues, early error-detection, incremental integration and improved architecture, traceability ([Nolan, 2008], p. 8)
The process architecture relates the static and dynamic artifacts produced under the process to represent the system to model levels, viewpoints, and views:
- Static artifacts represent the "system in its context" and the components of the system.
- Dynamic artifacts represent how static components collaborate and interact to fullfill their role in the system.
- A model level is "a subset of the system model that represents a certain level of specificity (abstract to concrete); lower levels capture more specific technology choices. Model levels are not levels of decomposition; in fact, a model level can contain multiple levels of decomposition."
- A viewpoint is "a subset of the architecture model that addresses a certain set of engineering concerns while maintaining an integrated, consistent representation of the underlying design".
- A view is an intersection of a viewpoint and a model level. "Views contain artifacts (that is, objects used to document engineering data) that describe how the viewpoint's engineering concern is addressed at a particular model level."
A development effort might not require all core viewpoints. The model views shown in Table 6 are samples.
Table 4: Model Levels in the RUP SE Architecture Framework (from [Nolan, 2008])
| Model Level |
Expresses |
| Context |
System black box - the system and its actors (though this is a black-box view of the system. it is a white box view of the enterprise containing the system.) |
| Analysis |
System white box - initial system partitioning in each viewpoint that establishes the conceptual approach |
| Design |
Realization of the analysis level in hardware, software, and people |
| Implementation |
Realization of the design model into specific configurations |
Table 5: Core RUP SE Viewpoints (based on [Nolan, 2008]
| Viewpoint |
Expresses |
Concern |
| Worker |
Roles and responsibilities of system workers |
Worker activities, human-system interaction, human performance specification |
| Logical |
Logical decomposition of the system as a coherent set of blocks that collaborate to provide the desired behavior |
- Adequate system functionality to realize use cases
- System extensibility and maintainability
- Internal reuse
- Good cohesion and connectivity
|
| Distribution |
Distribution of the physical elements that can host the logical services |
Adequate system physical characteristics to host functionality and meet supplementary requirements |
| Information |
Information stored and processed by the system |
Sufficient system capacity to store data; sufficient system throughput to provide timely data access |
| Geometric |
Spatial relationships between physical systems |
Manufacturability, accessibility |
| Process |
Threads of control that carry out computational elements |
Sufficient partitioning of processing to support concurrency and reliability needs |
Table 6: RUP SE Architecture Framework (from [Nolan, 2008])
| |
Model Viewpoints |
| Model Levels |
Worker |
Logical |
Information |
Distribution |
Process |
Geometric |
| Context |
Role definition, activity modeling |
Use case diagram specification |
Enterrprise data view |
Domain-dependent views |
|
Domain-dependent views |
| Analysis |
Partitioning of system |
Product logical decomposition |
Product data conceptual schema |
Product locality view |
Product process view |
Layouts |
| Design |
Operator instructions |
Software component design |
Product data schema |
Electronic Control Media (ECM) design |
Timing diagrams |
Mechanical Computer-Assisted Design (MCAD) |
| Implementation |
Hardware and software configuration |
The RUP SE process is ideally an iterative lifecycle, where the capabilities developed in each iteration are chosen based on risk identification and mitigation. At least one build is generally created during an iteration. The RUP SE process permits more than one iteration to be performed during a system phase. Figure 8 shows two iterations in the Elaboration and Transition phases, and three iterations in the Construction phase. The RUP SE does not include a seperate system engineering discipline. System engineers participate in one or more disciplines, such as business modeling, requirements, etc. As shown in Figure 8 each of the disciplines identified in the RUP SE process are emphasized more in some system phases and less in others.
A system encapsulates resources required to deliver services. RUP SE processes are transformations of models. In the core RUP SE process, systems are decomposed into other systems, and this decomposition process is recurvsive. The root system is at the highest decomposition level, and there is only one root system. Operations analysis, the core RUP SE process and an extension of use case analysis, consists of a recursive pattern:
- Decompose the system to create a context for system elements
- Treat the system operations as use case scenarios for the system elements
- Describe the scenarios in which the system elements, regarded as black boxes, interact to realize the system operations.
- Derive the operations of the system elements from the scenarios.
As illustrated by Figure 9, operations analysis results in the identification of decomposition levels, system elements at each decomposition level, and the operations of the system element. In applying this pattern recursively, a system element at one level is treated as itself a system at the next lower decomposition level. System elements are grouped together into viewpoints.
Defining the system context is a black-box process in which one identifies actors. As part of this black-box thinking, the system developer specifies use cases, sequence diagrams, and the system context diagram. Understanding the collaboration of system elements and how their elements interact to realize system elements is a white box process in which element context diagrams and lower-level use cases, for example, are specified.
1.2.2.5 Eclipse Modeling Projects
Eclipse is an open source Integrated Development Environment (IDE). In its default configuration, Eclipse supports the development of Java programs. The functionality of Eclipse can be extended through plug-ins. In other words, Eclipse provides a run-time kernel and a capability to integrate additional components implemented as plug-ins. Plug-ins support programming in many languages; configuration management functions such as bug tracking; enterprise applications targeted for middleware such as JBoss; documentation, including UML diagrams; and many more capabilities. Since Elipse provides a Rich Client Platform (RCP), applications can be developed as Eclipse plug-ins. The Eclipse Foundation, a not-for-profit corporation, sustains a community developing and maintaining Eclipse and related products and services. Many prominent software industry vendors, such as Borland, CA, International Business Machines (IBM) Corporation, Oracle, and SAG AG, are strategic members of the Eclipse Foundation and help set priorities for Eclipse projects.
Many might think of Eclipse as consisting of the subprojects under the Eclipse project, one of four top-level Eclipse projects (Figure 10). The Eclipse Modeling Project (EMF) "is the focal point for the evolution and promotion of model-based development technologies at Eclipse" [Steinberg, 2009]. [Steinberg, 2009] and [Moore, 2004] also emphasize the Graphical Editing Framework project, which supports the development of graphical editors for application models. Table 7 gives a more complete list of modeling technology being developed for Eclipse, while Table 8 lists subprojects of EMF. MDT subprojects are listed in Section 1.2.2.1.
Table 7: Eclipse Modeling Projects
| Project |
Acronym |
Description |
| Eclipse Modeling Framework |
EMF |
A modeling framework and code generation facility for building tools and other applications based on a structured data model. Provides tools and runtime support to produce Java classes from a XMI model specification, along with a basic editor and adaptor classes for viewing and command-based editing of the model. |
| Eclipse Modeling Framework Technologies |
EMFT |
Incubates new technologies extending or complementing EMF. |
| Graphical Editing Framework |
GEF |
Allows developers to quickly create a rich graphical editor for an existing application model. |
| Model Development Tools |
MDT |
Provides an implementation of industry-standard metamodels and tools for developing models based on those metamodels. |
| Model to Text |
M2T |
Focuses on the generation of textual artifacts from models. |
Table 8: Subprojects of the Eclipse Modeling Framework
|
| Subproject |
Short Name |
Description |
| Connected Data Objects |
CDO |
A technology for distributed shared EMF models and a fast server-based Object/Relational mapping solution. |
| EMF (Core) |
EMF |
A modeling framework and code generation facility for building tools and other applications based on a structured data model. |
| Net4j |
Net4j |
An extensible client-server system based on the Eclipse Runtime and the Spring Framework |
| Model Query |
Query |
Facilitates the process of search and retrieval of model elements in a flexible, contolled, and structured manner. |
| Service Data Objects |
SDO |
A framework that simplifies and unifies data application development in a Service Oriented Architecture (SOA). |
| Teneo |
Teneo |
A database persistency solution for EMF using Hibernate or Java Persistent Objects/Java Data Objects (JPOX/JDO) 2.0. |
| Model Transaction |
Transaction |
Provides a model management layer on top of EMF for managing EMF resources. |
| Validation Framework |
Validation |
Provides (1) API for defining constraints for any EMF meta-model, (2) Extensibility API supporting meta-models requiring custom strategies for model traversal, (3) Constraint parsing for specific languages, (4) API support defining "client context" that describe objects needing to be validated and binding them to constraints that need to be enforced on those objects, and (5) support for listening in validation events. |
The EMF project developers intend EMF to be a modeling approach that is easy to adopt and that does not require a complete change in development methodology. As such, EMF makes some compromises with a full MDSE approach. EMF models describe the class modeling aspects of UML, but not non-class modeling aspects of UML diagrams. EMF models are more closely related to generated code (implementations) than the models at the highest level of abstraction created under MDA and some other MDSE approaches. [Steinberg, 2009]
EMF is developed to take advantage of other standards, frameworks, and tools. Experience with the EMF project, especially the EMF metamodel Ecore, influenced the development of the latest OMG standardization of MOF. Models in EMF can be created from annotated Java, class models in Rational Rose, or an XML schema. Model importers are used to create models from these technologies. Other projects, such as the Eclipse UML2 project, have developed other model importers. New model importers can be created by extending org.eclipse.emf.importer.modelImporterDescription. XMI is the default serialization format for instances of EMF models. EMF includes XML Schema Definition (XSD) capabilities, an implementation of Service Data Objects (SDOs), and an API for handling components of an XML Schema and the underlying Document Object Model (DOM).
EMF provides powerful code and object generation capabilities consistent with Java programming style and conventions. An EMF model specified with Ecore can be used to generate:
- Java interfaces and classes for modeled objects
- An outline of an adaptor factory class (called an "observer" in other programming frameworks) for creating adaptors for modeled objects. Adaptors are described in the Adptor design pattern and allow changes to modeled objects to be dynamically tracked.
- A switch class for dispatching callbacks to modeled objects based on the type of the objects. (A switch class includes a method with a switch statement in which the case clauses test for the object type to return from the method.)
- Files to implement a model as an Eclipse plug-in, that is, manifest and property files.
Adaptor and switch classes provide a capability for modeled objects to implement a style of Java programming in which listeners are notified of changes to an object. (java.awt.event.MouseListener, which is used to implement interfaces that respond to mouse clicks and movements, is a simple example of a listener in Java.) Java generated with EMF can be modified by the programmer, and regeneration of code will not overwrite the modifications if the @generated tag is properly used. EMF modeling provides a capability for object persistence. Implementations of EMF models can be dynamically generated, and dynamically created model objects can be invoked even though no corresponding Java classes have been generated. The EMF runtime framework extends Eclipse to provide finer-grained and better support for integrating data among applications built on the Eclipse platform.
1.3 Characteristics Of Implementation
2.0 Relationships To Other Practices
3.0 Definitions
4.0 Sources (Origins of the Practice)
Appendix A. Formal Notation
The rigorous, model-based notation used in this practice is taken from formal methods [Vienneau, 1993] in software engineering. Software engineering artifacts are recorded in machine-readable languages, that is, in formally-defined languages. Thus, software tools are capable of processing these artifacts. This section provides tool users with an overview of how to formally define a language. The developers of MDSE tools used in this practice need a more detailed understanding of the mathematical theory of computability, automata, and formal languages than can be provided here. To some extent, this practice transitions formal methods to more widespread use.
A language has a syntax and a semantics. The syntax or grammar specifies what strings are in the language, while the semantics specifies the meaning of those strings. A string is a sequence of symbols. In a language capable of being represented pictorially, such as a specified UML diagram type, a string might be thought of as a two-dimensional array of symbols or by some other method , known as a serialization syntax, of rigorously expressing a two-dimensional layout as a one-dimensional sequence. The symbols of the language are chosen from an alphabet, where an alphabet is a finite list of symbols. Proponents of MDSE (e.g., [Kelly, 2008], pp. 68-70) distinguish between the abstract and concrete syntax of a DSML. The abstract syntax specifies how language elements relate to one another, while the concrete syntax specifies, for example, the particular textual or graphical shape of language elements and their relationships. In other words, how symbols in the alphabet are represented can vary without changing the abstract syntax. OMG uses a metamodel to define UML's abstract syntax. The concrete syntax does not need to be captured in data shared among MDSE tools.
A language's grammar can be specified by automata that decide if strings are in the grammar or by a generative grammar. More complex types of languages require more computationally powerful automata, as shown in the Chomsky hierarchy. Derivation rules, as written in Backus Naur Form (BNF), provide one way of specifying a context-free generative grammar. As an example, consider the derivation rule shown in Figure 12 for a proposition in propositional logic. The left-hand side of a derivation rule in a context-free grammar consists of a non-terminal symbol. A non-terminal symbol does not appear in any strings in the language. Rather, it is expanded by one of the alternatives shown on the right-hand side of a derivation rule. Assuming an appropriate derivation rule for identifiers, the string ( ( p and q ) or ( not p) ) is a formula in propositional logic formed by recursively applying the derivation rule for a proposition. Notice that the derivation rule ensures that parentheses match in all well-formed formulae in the language. This derivation rule is consistent with no order of precedence being specified for the logical operators.
A model defines the semantics of a language. In logic, a model is roughly a nonempty set, where designated elements of the set correspond to constant symbols in the language. Operations on elements in the set correspond to operations expressed in sentences in the language. Relations among elements in the set correspond to relations expressed in sentences in the language. By determining which predicates over elements, operations, and relations are true in the model, one also establishes which sentences are true in the language under the interpretation provided by the model. Sentences relating elements in the set to expressions in the language for which the semantics is defined are not themselves in that language, but in a metalanguage. This conception of semantics dates to Alfred Tarski's work in the 1930s.
Geometry provides a canonical example of a model in this sense. Nineteenth century mathematicians, in trying to make sense of non-Euclidean geometry, separated the interpretations of the terms in geometric proofs from their formal manipulations. As David Hilbert put it, "One must be able to say at all times - instead of points, straight lines, and planes - tables, chairs, and beer mugs." Non-Euclidean geometries are formed by assuming the negation of the parallel postulate, an axiom in Euclidean geometry. One formulation of the parallel postulate states that for any point off of a given line, exactly one line can be drawn through the point parallel to the given line. In elliptic geometry, one assumes no parallel lines can be drawn. A model of elliptic geometry can be constructed in Euclidean geometry by considering a sphere in an Euclidean space. Interpret a line in elliptic geometry as a great circle on the sphere and a point in elliptic geometry as a pair of points directly opposite one another on the sphere. "The angles of a triangle add up to more than 180 degrees" is a true sentence in the language with the semantics given by this model. This model establishes that if Euclidean geometry is logically consistent, elliptic geometry is also consistent. Since the other axioms of Euclidean geometry are assumed to hold in elliptic geometry, the parallel posulate is independent of the other postulates of Euclidean geometry and cannot be derived from them. This is a typical structure of a relative consistency proof. For example, Kurt Gödel's proof of the consistency of the axiom of choice and of the continuum hypothesis with the Zermelo-Fraenkel axiomization of set theory has a similar, albeit more abstract, model-theoretic structure.
 |
| Figure 13: A Triangle in a Spherical Model of Elliptic Geometry (Downloaded from Wikipedia on 19 March 2009) |
The concept of rigorous, model-based notation in MDSE is firmly rooted in mathematics, although models can be used used for other purposes in MDSE. They are used mainly to automatically transform higher-level models of an application domain to lower levels and ultimately to applications written in designated programming languages for specific target platforms. Researchers in formal languages have developed a number of techniques to specify their semantics. [Greenfield, 2004] emphasizes two techniques for use in MDSE. A translational sematics relates the meanings of the sentences in one language to the meanings of sentences in another language, called the target language, for which the semantics are already defined. A trace-based semantics relates sentences in the language to the run-time behavior or executions of software systems.
Appendix B. Recommending Sources
Appendix C. Case Studies
Web Sites |
DSM Forum Domain Specific Modeling (DSM) raises the level of abstraction beyond programming by specifying the solution directly using domain concepts. Industrial experiences of DSM consistently show it to be 5-10 times faster than current practices, including current UML-based implementations of MDA. The DSM Forum exists to spread the knowledge and know-how of Domain-Specific Modeling. It is an independent body made up of the leading DSM tool and solution providers, along with expert DSM users.
http://www.dsmforum.org/ |
SEI MDA Page The Integration of Software-Intensive Systems (ISIS) initiative at the Software Engineering Institute (SEI) has assembled a "Guide ot Interoperability". The linked page provides and overview of Model Driven Architecture (MDA) as a technology for interoperability.
http://www.sei.cmu.edu/isis/guide/technologies/mda.htm |
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. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, along with a set of adapter classes that enable viewing and command-based editing of the model, and a basic editor. 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). XSD provides a model and API for manipulating the components of an XML Schema, with access to the underlying Document Object Model (DOM) representation of the schema document.
http://www.eclipse.org/modeling/emf/ |
The Model Driven Software Network A social networking site for practitioners, researchers, and others interested in Model Driven Software Development. The Model Driven Software Network is a spin-off from the Code Generation Conference and Code Generation Network.
http://www.modeldrivensoftware.net/ |
MDA Success Stories at OMG A catalog, maintained by the Object Management Group (OMG), of success stories with Model Driven Architecture.
http://www.omg.org/mda/products_success.htm |
Eclipse Model Development Tools (MDT) Project The Model Development Tools (MDT) project focuses on big "M" modeling within the Modeling project. Its purpose is twofold: (1) To provide an implementation of industry standard metamodels. (2) To provide exemplary tools for developing models based on those metamodels.
http://www.eclipse.org/modeling/mdt/?project=uml2 |
ModelDriven.org ModelDriven.org is a community of government, commercial and university members who use, develop and integrate open source and commercial capabilities to enable agile business solutions based on model driven methods and technologies. ModelDriven.org is standards based, leveraging Model Driven Architecture as defined by the OMG and the Semantic Web as defined by W3C. ModelDriven.org serves the open source (and "open model") community by being an active contributor to open source and sponsoring open source projects that help build the Model Driven vision. ModelDriven.org provides commercial vendors with an outlet for their products and services that support open source and a venue for funded open source projects that are strategically important for both the provider and user communities.
http://www.modeldriven.org/web/guest/home |
Model Driven Solutions A division of Data Access Technologies, Inc., and a provider of professional services and products leveraging Services Oriented Architecture, Model Driven Architecture, and the Semantic Web techniques and standards. They assist major organizations in achieving effectiveness and agility in a changing and collaborative world.
http://modeldriven.com/ |
itemis AG One of Germany's leading companies in the field of model-driven software development (MDSD) and a strategic member of the Eclipse project. Though MDSD was initially primarily used in the development of enterprise applications, itemis has been applying this approach to the development of embedded systems used in airplanes, motor vehicles and production equipment for many years. Tools (editors, generators and validators) are needed to support model-driven development processes. itemis develops such tools under an Open Source license and provides them under the umbella of the Eclipse project.
http://www.itemis.com/ |
SysML.org The SysML.org web provides information and specifications related to the Systems Modeling Language (SysML) open source specification project, founded by the SysML Partners in 2003. SysML is a general-purpose modeling language for systems engineering applications that is defined as a dialect (Profile) of UML 2. It supports the specification, analysis, design, verification and validation of a broad range of systems and systems-of-systems. These systems may include hardware, software, information, processes, personnel, and facilities. The SysML Partners submitted the SysML 1.0a open source specification to the Object Management Group (OMG) in November 2005. OMG SysML is derived from open source SysML and is trademarked and maintained by the OMG.
http://www.sysml.org/ |
Business Rules Group The Business Rules Group, formerly a project within GUIDE International, is a non-commercial peer group of IT professionals. The group charter is to formulate statements and supporting standards about the nature and structure of business rules, the relationship of business rules with the way an enterprise is organized, and the relationship of business rules with systems' architectures. Membership consists of practitioners in the field of systems and business analysis methodology. Practitioners in the group work in both the public and the private sectors.
http://www.businessrulesgroup.org/home-brg.shtml |
Experts |
|
Name
|
Description
|
|
Juha-Pekka Tolvanen
|
Juha-Pekka Tolvanen, the CEO of MetaCase and an adjunct professor at the Universituy of Jyvaskyla, maintains this blog. His 1998 this treats modeling. Since then, he has written many papers, participated in professional organizations promoting Model Driven Software Engineering, and co-written a book on Domain-Specific Modeling.
http://www.metacase.com/blogs/jpt/blogView
|
|
James L. Hammond
|
James L. Hammond is sales and marketing director of MetaCase. The link is to his blog.
http://www.james-hammond.com/blogs/swmumbles/
|
|
Ed Merks
|
The blog of a co-leader of the top-level Eclipse Modeling Project and the leader of the Eclipse Modeling Framework subproject. Dr. Merks has a Ph.D. in Computing Science from Simon Fraser University and is a co-author of the book "EMF: Eclipse Modeling Framework."
http://ed-merks.blogspot.com/
|
|
Bran Selic
|
A leader in OMG activities defining UML standards. Dr. Selic's interests include modeling languages, model-driven development, real-time embedded systems, fault tolerant system design, and distributed systems.
http://www.scs.carleton.ca/people/people.php?Name=Bran%20V.+Selic
|
|
Jack Greenfield, Keith Short, Steve Cook, and Stuart Kent
|
A site by the authors of an authoritative book on software factories.
http://www.softwarefactories.com/
|
|
Eike Stepper
|
An independent consultant around the topics of modeling and the Open Services Gateway initiative (OSGi). Project lead and active committer of the following Eclipse projects: Connected Data Objects (CDO) model repository and Net4j Signalling Platform.
http://thegordian.blogspot.com/
|
|
Software Tools |
|
Tool Name
|
Description and URL
|
|
Altova's UModel
|
Visually design application models in UML and generate Java, C#, or Visual Basic .NET code and project documentation. Or, reverse engineer existing programs into UML 2 diagrams, then fine tune your designs and complete the round trip by regenerating code.
http://www.altova.com/products/umodel/uml_tool.html
|
|
Ameos UML Technology
|
Available as Open Source, combines UML 2.0 Profile support, MDA based Model Transformation and the usage of color in a unique fashion. This ensures a higher level of abstraction in the models and target-independent modeling. Can be used to describe business processes, to design architectures for SW systems and to model dynamic aspects in State Machines with hard timing constraints. The Model management of the UML is an integrated part of Ameos and allows distributed working, private workspaces and the configuration of new versions.
http://www.aonix.com/ameos.html
|
|
AndroMDA
|
AndroMDA (pronounced "Andromeda") is an open source, extensible generator framework that adheres to the Model Driven Architecture (MDA) paradigm. Models from UML tools will be transformed into deployable components for popular platform (e.g., J2EE, Spring, .NET). AndroMDA comes with a host of ready-made cartridges that target development toolkits such as Axis, jBPM, Struts, JSF, Spring and Hibernate. AndroMDA also contains a toolkit for building your own cartridges or customizing existing ones - the meta cartridge. Using it, you can build a custom code generator using your favorite UML tool.
http://www.andromda.org/
|
|
ArcStyler
|
ArcStyler from Interactive Objects offers you the ability to create a dynamic link between business and technology. Application logic is captured in models which serve as the basis for automatic transformation to various technologies. This approach, which is fully compliant with the Model Driven Architecture concepts of the Object Management Group, enables companies to achieve significant productivity gains, greater flexibility to react to business change and reduced maintenance cost.
http://www.arcstyler.com/
|
|
Artisan Software Tools
|
Artisan Studio is an integrated development tool suite providing systems and software modeling and component based development. Applies to complex mission-critical systems and software engineering. Supports OMG SysML, OMG UML, and the DoD Architectural Framework.
http://www.artisansoftwaretools.com/
|
|
Borland Together
|
Visual Modeling for Software Architecture Design. Borland Together 2008 technologies enable you to analyze, design and implement flexible and maintainable software architectures that can be easily modified as requirements change. A common visual understanding of important decisions also keeps business and system analysts, architects, data modelers and developers in sync—whether they’re changing business processes, creating new applications or extracting design information from existing systems. And Together’s integration with leading Requirements Definition and Management solutions allows direct access, reuse and traceability to and from requirements, ensuring that software delivery teams meet customer expectations.
http://www.borland.com/us/products/together/index.html
|
|
CA Gen
|
A model-driven environment that will enable your organization to speed delivery and maintenance of high-performance, scalable business applications. Use CA Gen to build your new enterprise-scale applications, or modernize your existing legacy applications. CA Gen uses agile development methods to design and implement reusable software components, web enable applications, modernize legacy applications and integrate systems. Quickly deploy to new platforms and architectures, such as J2EE, .Net and SOA, without rewriting your code.
http://www.ca.com/us/products/product.aspx?id=256
|
|
CA Plex
|
Develop applications in a Windows environment and then compile and test them in the target environment which might be Windows/.NET, Java/J2EE or the IBM System i. CA Plex supports the development of many different types of applications including client/server, web-based, service-oriented, character-based, batch and wireless device-based, all from a single set of skills and development techniques.
http://www.ca.com/us/products/product.aspx?id=258
|
|
Generic Modeling Environment (GME)
|
A configurable toolkit for creating domain-specific modeling and program synthesis environments. GME is being developed at the Institute for Software Integrated Systems, a research organization at Vanderbilt University.
http://www.isis.vanderbilt.edu/Projects/gme/
|
|
IDS Scheer
|
IDS Scheer is the market leader in Business Process Management (BPM) software, solutions and services for corporations and public organizations worldwide.
http://www.ids-scheer.com/en/Homepage/3670.html
|
|
MDA Vendors at OMG
|
Directory of vendors for Model Driven Architecture (MDA) maintained by the Object Management Group (OMG)
http://mda-directory.omg.org/
|
|
MetaEdit+
|
Enables companies to improve development productivity and quality by generating full code directly from models. First you design the modeling language with MetaEdit+ Workbench and then other developers model with the language in MetaEdit+ Modeler.
http://www.metacase.com/products.html
|
|
openArchitectureWare
|
A modular MDA/MDD generator framework implemented in Java(TM). It supports parsing of arbitrary models, and a language family to check and transform models as well as generate code based on them. Supporting editors are based on the Eclipse platform. OAW has strong support for Eclipse Modelling Framework (EMF) based models but can work with other models, too (e.g. UML2, XML or simple JavaBeans) At the core there is a workflow engine allowing the definition of generator/transformation workflows. A number of prebuilt workflow components can be used for reading and instantiating models, checking them for constraint violations, transforming them into other models and then finally, for generating code.
http://www.openarchitectureware.org/
|
|
Oslo
|
Oslo is the code name for Micorsoft's next generation application development platform. The goal of Oslo is to provide a 10 times productivity gain across the application lifecycle. Oslo leverages domain-specific models, languages and tools to achieve this goal.
http://msdn.microsoft.com/en-us/oslo/default.aspx
|
|
Power Designer
|
PowerDesigner, the industry's number one data modeling tool, enables enterprises to more easily visualize, analyze and manipulate metadata for effective enterprise information architecture. PowerDesigner for Enterprise Architecture also provides a model-driven approach for aligning business and IT, which facilitates the implementation of effective information and enterprise architectures. It brings powerful analysis, design and metadata management techniques to the enterprise. PowerDesigner combines several standard modeling techniques (UML, Business Process Modeling and market-leading Data Modeling) together with leading development platforms, such as .NET, WorkSpace, PowerBuilder, Java and Eclipse, to bring business analysis and formal database design solutions to the enterprise. And it works with more than 60 relational database management systems.
http://www.sybase.com/products/modelingdevelopment/powerdesigner
|
|
Rational Software Architect for WebSphere Software
|
An integrated platform for innovation and collaboration. Tools that facilitate communication and collaboration and help you innovate and accelerate delivery of your software development projects.
http://www-01.ibm.com/software/awdtools/swarchitect/websphere/
|
|
Rational Software Modeler
|
IBM Rational Software Modeler V7.5 is a robust collaborative platform for visual modeling and design.
http://www-01.ibm.com/software/awdtools/modeler/swmodeler/index.html
|
|
SmartEMF
|
SmartEMF is an extension of the Eclipse Modeling Framework (EMF) with an inference engine to facilitate reasoning about models. This University of Copenhagen project has a special emphasis on the problem of guiding development with multiple EMF-based Domain-Specific Nodeling Languages (multiple DSMLs). An alpha version of SmartEMF is available for download.
http://www.itu.dk/~hessellund/smartemf/
|
|
smartGENERATOR
|
From BITPlan, processes MDA-conforming models independent of your platform. Provides the suitable generation-program for your UML-based software-plans (independent of your platform). Your UML-tool is connected through XMI.
http://www.bitplan.com/com/bitplan/web/index.php?topic=products/smartgenerator
|
|
Telelogic Tau
|
Telelogic Tau provides standards-based, model-driven development of complex systems and software for information systems and enterprise IT applications, including SOA. Telelogic products are now part of the IBM Rational line.
http://www-01.ibm.com/software/awdtools/tau/
|
|
Teleogic Rhapsody
|
UML/SysML-based model-driven development for real-time or embedded systems. Telelogic Rhapsody improves productivity and quality, increases communication through graphic modeling, and provides validation through simulation and automated testing. Telelogic products are now part of the IBM Rational line.
http://www-01.ibm.com/software/awdtools/rhapsody/
|
|
Training Resources |
|
Offeror
|
Course Description and URL
|
|
Microsoft DSL Tools Lab
|
Lab enabling the beginners to learn how to use the DSL tools in one day. The objective of this Lab is to create a specialized language by using the Domain-Specific Language (DSL) Tools, and to customize it by using code that is based on the Visual Studio SDK. The DSL Tools are especially beneficial when you want to create a vertical language that is suitable for your business, and from the models that the language manipulates, generate the code for your business Framework. Nevertheless, because it is difficult to ensure that everyone who takes this training knows the professional tasks that are addressed by the targeted business Framework, we will settle for a horizontal (that is, technical) DSL that lets us learn how to use different aspects of DSL Tools.
http://code.msdn.microsoft.com/DSLToolsLab
|
|
ACM/IEEE 11th International Conference on Model Driven Engineering Languages and Systems
|
http://www.irit.fr/models/
|
|
Code Generation 2009
|
http://www.codegeneration.net/cg2009/
|
|
European Conference on Object-Oriented Programming
|
http://www.ecoop.org/
|
|
International School on MDD for Distributed Realtime Embedded Systems
|
A first goal of this summer school is to provide participants with the information needed to understand and apply MDE approaches to the development of embedded systems. For that purpose, experts from a variety of industries have gathered to give talks that provide insights into the application of MDE to embedded systems. The second goal of the school is to provide researchers and industrial participants an opportunity to discuss their evolving ideas and gather feedback from the summer school members (lecturers and students). Finally, the school will be an occasion to present on-going works and have a demonstration of a number of MDE tools.
http://www.mdd4dres.info/
|
|
Bibliography
| [Ambler, 2003] |
Ambler, S., "Agile Model Driven Development is Good Enough",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 71-73
|
| [Anonymous, 1996] |
Anonymous, ., Information Technology - Syntactic Metalanguage - Extended BNF,
(1996)
|
| [Anonymous, 2008] |
Anonymous, ., OMG Systems Modeling Language (OMG SysML),
(2008)
|
| [Anonymous, 2006] |
Anonymous, ., Meta Object Facility (MOF) Core Specification,
(2006)
|
| [Anonymous, 2003] |
Anonymous, ., UML 2.0 Infrastructure Specification,
(2003)
|
| [Atkinson, 2003] |
Atkinson, C., and T. Kuhne, "Model-Driven Development: A Metamodeling Foundation",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 36-41
|
| [Balasubramanian, 2006] |
Balasubramanian, K., A. Gokhale, G. Karsai, J. Sztipanovits, and S. Neema, "Developing Applications Using Model-Driven Design Environments",
IEEE Computer
V. 39 N. 2
(February 2006):
pp. 33-40
|
| [Balmelli, 2006] |
Balmelli, L., D. Brown, M. Cantor, and M. Mott, "Model-Driven Systems Development",
IBM Systems Journal
V. 45 N. 3
(December 2005):
p569-585
|
| [Bell, 1996] |
Bell, J., N. Foundation, J. Hook, R. Kieburtz, A. Kotov, J. Lewis, L. Mckinney, D. Oliva, T. Sheard, I. Smith, and L. Walton, "A SOFTWARE ENGINEERING EXPERIMENT IN SOFTWARE COMPONENT GENERATION",
Proceedings of the 18th International Conference on Software Engineering (ICSE-18 '96)
(March 1996):
|
| [Bock, 2003] |
Bock, C., "UML without Pictures",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 33-35
|
| [Booch, 2004] |
Booch, G., A. Brown, S. Iyengar, J. Rumbaugh, and B. Selic, "An MDA Manifesto",
MDA Journal
V. 0 N. 0
(May 2004):
p1
|
| [Childs, 2006] |
Childs, A., J. Greenwald, G. Jung, M. Hoosier, and J. Hatcliff, "CALM and Cadena: Metamodeling for Component-Based Product-Line Development",
Computer
V. 39 N. 2
(February 2006):
pp. 42-50
|
| [Denno, 2003] |
Denno, P., M. Potts-steves, D. Libes, and E. Barkmeyer, "Model-Driven Integration Using Existing Models",
IEEE Software
V. 20 N. 5
(August 2003):
pp. 59-63
|
| [France, 2006] |
France, R., S. Ghosh, and T. Dinh-trong, "Model-Driven Development Using UML 2.0: Promises and Pitfalls",
Computer
V. 39 N. 2
(February 2006):
pp. 59-66
|
| [France, 2003] |
France, R., S. Ghosh, E. Song, and D. Kim, "A Metamodeling Approach to Pattern-Based Model Refactoring",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 52-58
|
| [Gray, 2006] |
Gray, J., Y. Lin, and J. Zhang, "Automating Change Evolution in Model-Driven Engineering",
Computer
V. 39 N. 2
(February 2006):
pp. 51-58
|
| [Greenfield, 1996] |
Greenfield, J., and K. Short, "CELLULAR: PERSONAL USE OF CELLULAR EQUIPMENT WILL DRIVE CONTINUED STRONG GROWTH IN THE U.S. TO 2002. (INDUSTRY TREND OR EVENT)",
EDGE, on & about AT&T
V. 11 N. 412
(June 1996):
p25
|
| [Greenfield, 2004] |
Greenfield, J., and K. Short, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools,
Wiley Publishing Inc.
(2004)
|
| [Gries, 1981] |
Gries, D., THE SCIENCE OF PROGRAMMING,
Springer-Verlag Inc.
(1981)
|
| [Hendrick, 2008] |
Hendrick, S., and K. Hendrick, "Worldwide Model-Driven Development Software 2008-2012 Forecast and 2007 Vendor Shares",
(December 2007):
p1
|
| [Hofer, 2007] |
Hofer, A., and W. Tichy, "Status of Empirical Research in Software Engineering",
Empirical Software Engineering: An International Journal
V. 0 N. 0
(December 2006):
p. 10-19
|
| [Kelly, 2008] |
Kelly, S., and J. Tolvanen, Domain-Specific Modeling: Enabling Full Code Generation,
A Wiley - Interscience Publication
(2008)
|
| [Kruchten, 2004] |
Kruchten, P., An Ontology of Architectural Design Decisions in Software-Intensive Systems,
(2004)
|
| [Kulkarni, 2003] |
Kulkarni, V., and S. Reddy, "Separation of Concerns in Model-Driven Development",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 64-69
|
| [Lewis, 2005] |
Lewis, G., and L. Wrage, Model Problems in Technologies for Interoperability: Model-Driven Architecture,
(2005)
|
| [Mattsson, 2009] |
Mattsson, A., B. Lundell, B. Lings, and B. Fitzgerald, "Linking Model-Driven Development and Software Architecture: A Case Study",
IEEE Transactions on Software Engineering
V. 35 N. 1
(January 2009):
pp. 83-93
|
| [Mellor, 2003] |
Mellor, S., A. Clark, and T. Futagami, "Model-Driven Development",
IEEE Software
V. 20 N. 5
(September 2003):
p14-18
|
| [Miller, 2003] |
Miller, J., and J. Mukerji, MDA Guide Version 1.0.1,
(2003)
|
| [Moore, 2004] |
Moore, B., D. Dean, A. Gerber, G. Wagenknecht, and P. Vanderheyden, Eclipse Development Using the Graphical Editing Framework and the Eclipse Modeling Framework,
(2004)
|
| [Nolan, 2008] |
Nolan, B., B. Brown, L. Balmelli, T. Bohn, and U. Wahli, Model Driven Systems Development With Rational Products,
(2008)
|
| [Royce, 1998] |
Royce, W., Software Project Management: A Unified Framework,
(1998)
|
| [Schmidt, 2006] |
Schmidt, D., "Model-Driven Engineering",
IEEE COMPUTER
V. 39 N. 2
(February 2006):
25-31
|
| [Seidewitz, 2003] |
Seidewitz, E., "What Models Mean",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 26-32
|
| [Selic, 2003] |
Selic, B., "The Pragmatics of Model-Driven Development",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 19-25
|
| [Sendall, 2004] |
Sendall, S., and W. Kozaczynski, "Model Transformation: The Heart and Soul of Model-Driven Software Development",
IEEE Software
V. 20 N. 5
(September 2004):
pp. 42-45
|
| [Stahl, 2006] |
Stahl, T., and M. Volter, Model-Driven Software Development,
John Wiley & Sons Ltd
(2006)
|
| [Steinberg, 2009] |
Steinberg, D., F. Budinsky, M. Paternostro, and E. Merks, EMF: Eclipse Modeling Framework,
Addison Wesley
(2009)
|
| [Turner, 2002] |
Turner, R., "Implementation of Best Practices in US Department of Defense Software-Intensive Systems Acquisitions",
George Washington University
(January 2002):
p1
|
| [Uhl, 2003] |
Uhl, A., "Model Driven Architecture is Ready for Prime Time",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 70, 72
|
| [Vienneau, 1993] |
Vienneau, R., A Review of Formal Methods,
(1993)
|
| [Weis, 2003] |
Weis, T., A. Ulbrich, and K. Geihs, "Model Metamorphosis",
IEEE Software
V. 20 N. 5
(September 2003):
pp. 46-51
|
|