UML Action Language
System models
In previous Model Driven Development practice, developers wrote action code by using a notation that was specific to a target language. In addition, developers were required to be aware of the transformation to use and were limited to a specific modeling tool.
Object Management Group (OMG) has standardized the action semantics and created a Foundational Subset for UML for Executable Models (fUML). UAL can define a complete system to a higher level of abstraction, which allows for model simulation, debugging, and code generation. With UAL standardization, developers are not required to learn a new language for each tool, and are not limited to a transformation or tool.
By using UAL, system developers can create platform-independent models (PIMs) to specify model behavior. UAL can also be used to debug, simulate, and run the models to correct any errors. UAL can be simulated by using the Model Execution perspective.
Because system developers are domain experts and can be highly knowledgeable in UML and UAL, highly trained and senior developers are not required to work on system models. The system models are independent of tools or transformations.
Marking models
Marking models are UML models that specify additional properties for model elements in a system model. Marking models can provide additional properties that help transform UML into a target language.
Marking models create platform-specific models (PSMs). When a target language is selected, advanced developers create a marking model, which helps define the behavior of the system model in terms of the specific target language. Advanced developers can also test the model by using simulation and debugging tools. The number of specialized developers required to create the marking model is reduced because the model domain is already been created in the system model.
UAL Transformation
After the platform-specific models are created, the model can be transformed into code by using the transformation for the target language. Those who create tools, can independently start creating UML transformation extensions if domain-specific customizations of UML transformation or UAL translation are required.
Summary
- Makes system models assets that are reusable.
- Reduces the need for all developers to work on the system model.
- Reduces the need for highly skilled developers to create the initial model.
- Reduces the need for system developers to know intricacies of the target language.
- Enables system developers to remain domain experts that focus on the model and not the model transformation.