A key benefit of system and software modeling is the ability to explore various design alternatives to reach a fixedpoint representation of a concrete system design. Among a diverse set of configuration possibilities, a model engineer must be able to explo
Aspects and Transformations to
Support Evolution in Model-Driven Engineering
Jeff Gray, Yuehua Lin, Jing Zhang
University of Alabama at Birmingham
ABSTRACT
A key benefit of system and software modeling is the ability to explore various design alternatives to reach a fixed-point representation of a concrete system design. Among a diverse set of configuration possibilities, a model engineer must be able to explore the effects of a design decision (e.g., the effect of a specific communication protocol on systemic properties such as throughput) in a rapid manner and be able to revert back to a previous configuration. Each new design configuration can be simulated or analyzed to determine the effect on a set of observed properties. There are two key challenges in supporting evolution in model-driven engineering: 1) the emergence of crosscutting properties that are projected across a model hierarchy, and 2) scalability issues that concern the expansion of a base model. We have applied model transformation to provide an automated solution that addresses these two modeling challenges.
KEYWORDS/TAXONOMY
D.2.2 [Software Engineering]: Design Tools and Techniques – Object-oriented design methods.
D.2.5 [Software Engineering]: Programming Environments – graphical environments.
As the size of system models grow, the limits of model-driven engineering practice are being pressed to address increasingly complex management issues that pertain to change evolution within the model representation [1]. Consequently, modeling tools are being challenged to provide new capabilities to assist in model evolution. A general metric for determining the effectiveness of a modeling toolsuite comprises the degree of effort required to make a correct change to a set of models. A goal of model evolution is to improve productivity while reducing the potential for error that is typically associated with a manual process. To reduce the complexity of the modeling activity, an approach to model evolution should limit the amount of mouse clicking and typing required to realize a change.
There are two categories of change evolution that present specific problems for the modeling process. The first category pertains to concerns that crosscut the hierarchy of the model representation. Such changes require the model engineer to visit multiple locations in the model in order to address a specific concern. For example, the effect of fluctuating bandwidth on the quality of service in a video stream may crosscut multiple components that are defined in a model. The application of aspect-oriented techniques [2] at the modeling level can provide a solution to this type of evolution by modularizing the crosscutting property. A second category of change evolution concerns the issue of scalability, where a base model is replicated to expand the size of a model. For example, a core model may capture the essential connections and properties of a sensor network that can then be scaled to an arbitrary number of sensors. This type of change requires the creation of multiple modeling elements and the appropriate connections between them.
A manual approach to address these two categories of change is typically inadequate. As an alternative to manual model evolution, we have applied a model transformation approach to assist in the automation of evolving modeling concerns. In this article we motivate the need for change evolution among these two categories through specific examples from models in the mission-computing avionics domain. The practical benefits of applying aspects and transformations at the modeling level are emphasized by the significant reduction of manual effort.