«

»

Automating the Maintenance of Non-functional System Properties using Demonstration-based Model Transformation

by Yu Sun, Jeff Gray, Romain Delamare, Benoit Baudry, Jules White
Abstract:
Domain-Specific Modeling Languages (DSMLs) are playing an increasingly significant role in software development. By raising the level of abstraction using notations that are representative of a specific domain, DSMLs allow the core essence of a problem to be separated from irrelevant accidental complexities that are typically found at the implementation level in source code. In addition to modeling the functional aspects of a system, a number of non-functional properties (e.g., quality of service constraints, timing requirements) also need to be integrated into models in order to reach a complete specification of a system. This is particularly true for domains that have distributed real-time and embedded needs. Given a base model with functional components, maintaining the non-functional properties that crosscut the base model has become an essential modeling task when using DSMLs. The task of maintaining non-functional properties in DSMLs is traditionally supported by manual model editing or using model transformation languages. However, these approaches are challenging to use for those unfamiliar with the specific details of a modeling transformation language and the underlying metamodel of the domain, which presents a steep learning curve for many users. This paper presents a demonstration-based approach to automate the maintenance of non-functional properties in DSMLs. Instead of writing model transformation rules explicitly, users demonstrate how to apply the non-functional properties by directly editing the concrete model instances and simulating a single case of the maintenance process. By recording a user’s operations, an inference engine analyzes the user’s intention and generates generic model transformation patterns automatically, which can be refined by users and then reused to automate the same evolution and maintenance task in other models. Using this approach, users are able to automate the maintenance tasks without learning a complex model transformation language. In addition, because the demonstration is performed on model instances, users are isolated from the underlying abstract metamodel definitions. Our demonstration-based approach has been applied to several scenarios, such as auto-scaling and model layout. The specific contribution in this paper is the application of the demonstration-based approach to capture crosscutting concerns representative of aspects at the modeling level. Several examples are presented across multiple modeling languages to demonstrate the benefits of our approach.
Reference:
Automating the Maintenance of Non-functional System Properties using Demonstration-based Model Transformation (Yu Sun, Jeff Gray, Romain Delamare, Benoit Baudry, Jules White), In Journal of Software Maintenance and Evolution: Research and Practice, Wiley, 2013.
Bibtex Entry:
@article{sun13,
  keywords = {MDE},
      hal_id = {hal-00916287},
      url = {http://hal.inria.fr/hal-00916287},
      title = {{Automating the Maintenance of Non-functional System Properties using Demonstration-based Model Transformation}},
      author = {Sun, Yu and Gray, Jeff and Delamare, Romain and Baudry, Benoit and White, Jules},
      abstract = {{Domain-Specific Modeling Languages (DSMLs) are playing an increasingly significant role in software development. By raising the level of abstraction using notations that are representative of a specific domain, DSMLs allow the core essence of a problem to be separated from irrelevant accidental complexities that are typically found at the implementation level in source code. In addition to modeling the functional aspects of a system, a number of non-functional properties (e.g., quality of service constraints, timing requirements) also need to be integrated into models in order to reach a complete specification of a system. This is particularly true for domains that have distributed real-time and embedded needs. Given a base model with functional components, maintaining the non-functional properties that crosscut the base model has become an essential modeling task when using DSMLs. The task of maintaining non-functional properties in DSMLs is traditionally supported by manual model editing or using model transformation languages. However, these approaches are challenging to use for those unfamiliar with the specific details of a modeling transformation language and the underlying metamodel of the domain, which presents a steep learning curve for many users. This paper presents a demonstration-based approach to automate the maintenance of non-functional properties in DSMLs. Instead of writing model transformation rules explicitly, users demonstrate how to apply the non-functional properties by directly editing the concrete model instances and simulating a single case of the maintenance process. By recording a user's operations, an inference engine analyzes the user's intention and generates generic model transformation patterns automatically, which can be refined by users and then reused to automate the same evolution and maintenance task in other models. Using this approach, users are able to automate the maintenance tasks without learning a complex model transformation language. In addition, because the demonstration is performed on model instances, users are isolated from the underlying abstract metamodel definitions. Our demonstration-based approach has been applied to several scenarios, such as auto-scaling and model layout. The specific contribution in this paper is the application of the demonstration-based approach to capture crosscutting concerns representative of aspects at the modeling level. Several examples are presented across multiple modeling languages to demonstrate the benefits of our approach.}},
      language = {Anglais},
       publisher = {Wiley},
      journal = {Journal of Software Maintenance and Evolution: Research and Practice},
    	X-International-Audience = {yes},
    	X-Language = {EN},
    	x-abbrv = {JSME},
      year = {2013},
      month = Jul,
      pdf = {http://hal.inria.fr/hal-00916287/PDF/AOM-JSME.pdf},
  }