What is it about?

Model-based development relies on models in different phases for different purposes, with modelling patterns being used to document and gather knowledge about good practices in specific domains, to analyse the quality of existing designs, and to guide the construction and refactoring of models. Providing a formal basis for the use of patterns would also support their integration with existing approaches to model transformation. To this end, we turn to the commonly used, in this context, machinery of graph transformations and provide an algebraic-categorical formalization of modelling patterns, which can express variability and required/forbidden application contexts. This allows the definition of transformation rules having patterns in left and right-hand sides, which can be used to express refactorings towards patterns, change the use of one pattern by a different one, or switch between pattern variants. A key element in our proposal is the use of operations to abstract models into patterns, so that they can be manipulated by pattern rules, thus leading to a rewriting mechanism for classes of graphs described by patterns and not just individual graphs. The proposal is illustrated with examples in object-oriented software design patterns and enterprise architecture patterns, but can be applied to any other domain where patterns are used for modelling.

Featured Image

Perspectives

This paper capitalises on previous work to provide the first category-based and graph transformation -based formalisation of the notion of patterns, which is now ubiquitous in modeling and developing software.

Professor Paolo G. Bottoni
Sapienza University of Rome

Read the Original

This page is a summary of: Pattern-based Rewriting through Abstraction, Fundamenta Informaticae, March 2016, IOS Press,
DOI: 10.3233/fi-2016-1325.
You can read the full text:

Read

Contributors

The following have contributed to this page