Despite advances in programming languages and runtime platforms, most software is developed at a low-level of abstraction relative to the concepts and concerns within the problem space of an application domain. Domain-Specific Modeling (DSM) is a design approach that uses a metamodel to define a modeling language capturing the essential characteristics of a problem space in a manner that is decoupled from the details of a specific solution space. However, the current DSM practice lacks fundamental concepts to support a broad range of tasks needed for model-driven evolution of software. The proposed research will extend the capabilities of DSM by investigating the synergy of model transformation and program transformation as methods to support the necessary evolution of software artifacts as reflected by changes in high-level models. Specific topics of investigation include model-driven program transformation, reverse engineering of legacy source code into domain-specific models, model difference algorithms that support a new class of version control tools focused on visual modeling concerns, and a technique to analyze a user's intention among edit changes within a modeling tool. The proposed research agenda is integrated with educational activities, including undergraduate mentoring and graduate education, with an emphasis on K-12 outreach activities.

Project Report

General Overview: Domain-specific modeling (DSM) provides a solution to demands for higher productivity by constricting the gap between the essence of a problem and the accidental complexities of its solution space. In the past, productivity gains have been sought from new programming languages. Domain-specific modeling languages provide a viable solution for continuing to raise the level of abstraction beyond coding. In DSM, the models are constructed using concepts that represent things in the application domain, not concepts of a given programming language. The modeling language follows the domain abstractions and semantics, allowing developers (potentially end-users with no programming experience) to perceive themselves as working directly with domain concepts. In a number of cases, the final products can be generated automatically from these high-level specifications with domain-specific code generators. This automation is possible because of domain-specificity: both the modeling language and code generators fit to the requirements of a narrowly defined domain. Like all software, models are also subject to evolve based on external requirements and the need for engineering changes. To express such changes, model transformation languages have been designed to specify and automate modifications across a model that would be too challenging to perform manually (e.g., due to the error prone and tedious nature of making a crosscutting change across a large model space). Much of the focus of this project, as described in the next section, concentrated on support that allows end-users to create their own modeling languages and to specify transformations on their models using a by-demonstration technique. Adopting a by-demonstration approach allows end-users to remain in their comfort level with abstractions they are familiar with, rather than the need to learn complex transformation languages and metamodel formalisms. Intellectual Merit: The core contributions of this CAREER project include the results of the following investigations: The early years of the project produced specific contributions in the areas of model comparison (i.e., automated analysis to compare the differences between two models, such as for supporting model version control), model inferencing (i.e., infer a metamodel for a modeling language from specific model instances), and an understanding of the manner in which model transformation can assist in the scalability of modeling artifacts. The core contributions of the project were focused on applying a by-demonstration technique (where a user demonstrates their desire using artifacts common to them, similar to by-example approaches, such as Query By Example in databases) to specify modeling languages and model transformations. The idea of Model Transformation by Demonstration (MTBD) allows the user to press a "record" button in a modeling tool, whereby they could demonstrate the operational changes to a model that were captured in a formal representation as a model transformation. The MTBD idea was applied to several contexts (e.g., aspect-oriented modeling, model refactoring, model scalability, and even model layout algorithms) with support for debugging at the end-user abstraction level. The final years of the project focused on allowing the user to define their own modeling language by demonstrating instances of the language (e.g., allowing the user to sketch out sample instances that were then used to infer the language rules). Software prototypes developed in support of the project include: a tool for model differencing and visualization, model inferencing software to build metamodels from instances, the MTBD engine and debugger (within the GEMS plugin for Eclipse), and a Visio plug-in that supports demonstration of models that are used to infer a new metamodel. Broader Impacts: The broader impacts of this project include deep collaboration with colleagues from throughout the US and Europe (Slovenia, France, and Spain) on the specific topic of model transformation. Student participation on the project included support for three PhD students (all of whom have graduated prior to the award expiration), three post-doctoral researchers, and two undergraduates. The participation of these individuals led to the core contributions described in the preceding paragraphs. Additionally, an industrial partnership was formed with Bulheller Consulting, a German automotive software company specializing in analysis and optimization of robotics software. The collaboration with Bulheller produced a prototype modeling tool that is being marketed to various automotive companies to support generation of robotics software from higher level visual models that can adapt quickly to engineering changes expressed in the models. There have been significant K-12 outreach activities associated with this work, including summer camps that have attracted students from 14 states and three countries. From the summer camps, the PI has mentored18 students on science fair projects that have won several dozen awards, including four students who advanced as finalists at the Intel ISEF international science fair.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
1052616
Program Officer
Sol Greenspan
Project Start
Project End
Budget Start
2010-07-01
Budget End
2013-03-31
Support Year
Fiscal Year
2010
Total Cost
$183,466
Indirect Cost
Name
University of Alabama Tuscaloosa
Department
Type
DUNS #
City
Tuscaloosa
State
AL
Country
United States
Zip Code
35487