Abstract
Model transformation systems often contain transformation rules that are substantially similar to each other, causing maintenance issues and performance bottlenecks. To address these issues, we introduce variability-based model transformation. The key idea is to encode a set of similar rules into a compact representation, called variability-based rule. We provide an algorithm for applying such rules in an efficient manner. In addition, we introduce rule merging, a three-component mechanism for enabling the automatic creation of variability-based rules. Our rule application and merging mechanisms are supported by a novel formal framework, using category theory to provide precise definitions and to prove correctness. In two realistic application scenarios, the created variability-based rules enabled considerable speedups, while also allowing the overall specifications to become more compact.
Similar content being viewed by others
References
Arendt T, Biermann E, Jurack S, Krause C, Taentzer G (2010) Henshin: advanced concepts and tools for in-place EMF model transformation. In: Proceedings of the international conference on model-driven engineering languages and systems. Springer, pp 121–135
Arendt T, Habel A, Radke H, Taentzer G (2014) From core OCL invariants to nested graph constraints. In: Proceedings of the international conference on graph transformation, pp 97–112
Alkhazi B, Ruas T, Kessentini M, Wimmer M, Grosky WI (2016) Automated refactoring of ATL model transformations: a search-based approach. In: Proceedings of the international conference on model driven engineering languages and systems. ACM, pp 295–304
Acretoaie V, Störrle H (2015) Efficient model querying with VMQL. In: Proceedings of the workshop on combining modelling with search- and example-based approaches, pp 7–16. http://CEUR-WS.org
Anjorin A, Saller K, Lochau M, Schürr A (2014) Modularizing triple graph grammars using rule refinement. In: Proceedings of the international conference on fundamental approaches to software engineering, pp 340–355
Atallah MJ (2002) Algorithms and theory of computation handbook. CRC press, Cambridge
Enrico B, Claudia E, Gabriele T (2012) Formal foundation of consistent EMF model transformations by algebraic graph transformation. Softw Syst Modeling 11(2): 227–250
Bürdek J, Kehrer T, Lochau M, Reuling D, Kelter U, Schürr A (2015) Reasoning about product-line evolution using complex differences on feature models. J Autom Softw Eng 23(4): 1–47
Born K, Lambers L, Strüber D, Taentzer G (2017) Granularity of conflicts and dependencies in graph transformation systems. In: Proceedings of the international conference on graph transformation. Springer, pp 125–141
Blouin D, Plantec A, Dissaux P, Singhoff F, Diguet J-P (2014) Synchronization of models of rich languages with triple graph grammars: an experience report. In: Proceedings of the international conference on theory and practice of model transformations
Czarnecki K, Antkiewicz M (2005) Mapping features to models: a template approach based on superimposed variants. In: Proceedings of the international conference on generative programming and component engineering. ACM, pp 422–437
Chechik M, Famelis M, Salay R, Strüber D (2016) Perspectives of model transformation reuse. In: Proceedings of international conference on integrated formal methods. Springer, pp 28–44
Cuadrado JS, Guerra E, de Lara J(2014) Reverse engineering of model transformations for reusability. In: Proceedings of the international conference on theory and practice of model transformations. Springer, pp 186–201
Krzysztof C, Simon H (2006) Feature-based survey of model transformation approaches. IBM Syst J 45(3): 621–646
Sánchez CJ, Garcia MJ (2009) A model-based approach to families of embedded domain-specific languages. IEEE Trans Softw Eng 35(6): 825–840
Clements PC, Northrop L (2001) Software product lines: practices and patterns. Addison-Wesley, Boston
Cook SA (1971) The complexity of theorem-proving procedures. In: Proceedings of the third annual ACM symposium on theory of computing. ACM, pp 151–158
Deissenboeck F, Hummel B, Juergens E, Pfaehler M, Schaetz B (2010) Model clone detection in practice. In: Proceedings of the workshop on software clones. ACM, pp 57–64
Hartmut E, Karsten E, Ulrike P, Gabriele T (2006) Fundamental theory for typed attributed graphs and graph transformation based on Adhesive HLR categories. Fundam Inf 74(1): 31–61
Hartmut E, Karsten E, Ulrike P, Gabriele T (2006) Fundamentals of algebraic graph transformation. Monographs in theoretical computer science. An EATCS series. Springer
Ehrig H, Golas U, Habel A, Lambers L, Orejas F (2012) \({\mathcal{M}}\)-adhesive transformation systems with nested application conditions. part 2: Embedding, critical pairs and local confluence. Fundam Inf 118(1-2): 35–63
Ehrig H, Golas U, Habel A, Lambers L, Orejas F (2014) M-adhesive transformation systems with nested application conditions. Part 1: parallelism, concurrency and amalgamation. Math Struct Comput Sci 24(04):240406
Famelis M, Lucio L, Selim G, Salay R, Chechik M, Cordy JR, Dingel J, Vangheluwe H, Ramesh S (2015) Migrating automotive product lines: a case study. In: Proceedings of the international conference on theory and practice of model transformations. Springer
Ulrike G, Annegret H, Hartmut E (2014) Multi-amalgamation of rules with application conditions in m-adhesive categories. Math Struct Comput Sci 24(04): 240405
Ghamarian AH, Rensink A (2012) Generalised compositionality in graph transformation. In: Proceedings of the international conference on graph transformation. Springer, pp 234–248
Hermann F, Gottmann S, Nachtigall N, Braatz B, Morelli G, Pierre A, Engel T (2013) On an automated translation of satellite procedures using triple graph grammars. In: Proceedings of the international conference on theory and practice of model transformations. Springer, pp 50–51
Annegret H, Reiko H, Gabriele T (1996) Graph grammars with negative application conditions. Fundam Inf 26(3/4): 287–313
Heckel R, Küster JM, Taentzer G (2002) Confluence of typed attributed graph transformation systems. In: Proceedings of the international conference on graph transformation. Springer, pp 161–176
Horváth Á, Varró G, Varró D (2007) Generic search plans for matching advanced graph patterns. ECEASST 6. http://journal.ub.tu-berlin.de/index.php/eceasst/article/view/49
Holthusen S, Wille D, Legat C, Beddig S, Schaefer I, Vogel-Heuser B (2014) Family model mining for function block diagrams in automation software. In: Proceedings of the international software product line conference. ACM, pp 36–43
Izsó B, Szatmári Z, Bergmann Gábor, Horváth Á, R (2013) Towards precise metrics for predicting graph query performance. In: Proceedings of the international conference on automated software engineering. IEEE, pp 421–431
Jouault F, Allilaire F, Bézivin J, Kurtev I, Valduriez P (2006) ATL: A QVT-like transformation language. In: Proceedings on symposium on object-oriented programming systems, languages, and applications, companion. ACM, pp 719–720
Kästner C, Apel S (2008) Integrating compositional and annotative approaches for product line engineering. In: Proceedings of the workshop on modularization, composition and generative techniques for product line engineering, pp 35–40
Kavimandan A, Gokhale A, Karsai G, Gray J (2011) Managing the quality of software product line architectures through reusable model transformations. In: Proceedings of the QoSA/ISARCS. ACM, pp 13–22
Miryung K, Vibha S, David N, Gail M (2005) An empirical study of code clone genealogies. ACM SIGSOFT Softw Eng Notes 30(5): 187–196
Kusel A, Schönböck Johannes, Wimmer Manuel, Kappel Gerti, Retschitzegger Werner, Schwinger Wieland (2013) Reuse in model-to-model transformation languages: are we there yet? J Softw Syst Modeling 1–36
Krause C, Tichy M, Giese H (2014) Implementing graph transformations in the bulk synchronous parallel model. In: Proceedings of the international conference on fundamental approaches to software engineering. Springer, pp 325–339
Mann M, Ekker H, Flamm C (2013) The graph grammar library-a generic framework for chemical graph rewrite systems. In: Proceedings of the international conference on theory and practice of model transformations. Springer, pp 52–53
Tamás M, Gergely M, Tihamér L, Márk A (2010) Manual and Automated Performance Optimization of Model Transformation Systems. Int J Softw Tools Technol Transf 12(3–4): 231–243
Mihaly M, Marek Z (2001) Duality for simple \({\omega }\)-categories and disks. Theory Appl Categ 8(7): 114–243
Anh NH, Thanh NT, Pham NH, Jafar A-K, Nguyen TN (2012) Clone management for evolving software. IEEE Trans Softw Eng 38(5): 1008–1026
Shiva N, Mehrdad S, Marsha C, Steve E, Pamela Z (2012) Matching and merging of variant feature specifications. IEEE Trans Softw Eng 38(6): 1355–1375
OMG. http://www.omg.org/spec/UML/2.5/. Last Accessed Jan 2011
Pham NH, Nguyen HA, Nguyen TT, Al-Kofahi JM, Nguyen TN (2009) Complete and Accurate Clone Detection in Graph-Based Models. In: Proceedings of the international conference on software engineering. IEEE, pp 276–286
Richa, Borde E, Pautet L (2015) Translating ATL Model Transformations to Algebraic Graph Transformations. In: Proceeding of the international conference on theory and practice of model transformations. Springer, pp 183–198
Rubin J, Chechik M (2012) Combining related products into product lines. In: Proceedings of the international conference on fundamental approaches to software engineering. Springer, pp 285–300
Rubin J, Chechik M (2013) Quality of merge-refactorings for product lines. In: Proceedings of the international conference on fundamental approaches to software engineering. Springer, pp 83–98
Rensink A (2010) Compositionality in graph transformation. In: Proceedings of the international colloquium on automata, languages and programming. Springer, pp 309–320
Rentschler A (2015) Model transformation languages with modular information hiding. Ph.D. thesis, Karlsruher Institut für Technologie
Rensink A, Kuperus J-H (2009) Repotting the geraniums: on nested graph transformation rules. ECEASST 18. http://journal.ub.tu-berlin.de/index.php/eceasst/article/view/260
Ryssel U, Ploennigs J, Kabitzsch K (2010) Automatic variation-point identification in function-block-based models. In: Proceedings of the international conference on generative programming and component engineering. ACM, pp 23–32
Rensink A, Schmidt Á, Varró D (2004) Model checking graph transformations: A comparison of two approaches. In: Proc. of the International Conference on Graph Transformation, pages 226–241. Springer
Rudolf M (1998) Utilizing constraint satisfaction techniques for efficient graph pattern matching. In: Proceedings of the workshop on theory and application of graph transformations. Springer, p 238
Rentschler A, Werle D, Noorshams Q, Happe L, Reussner R (2014) Remodularizing legacy model transformations with automatic clustering techniques. In: Proceedings of the workshop on the analysis of model transformations, pp 4–13. http://CEUR-WS.org
Sellis TK (1988) Multiple-query optimization. ACM Trans Database Syst (TODS) 13(1): 23–52
Syriani E, Gray J (2012) Challenges for addressing quality factors in model transformation. In: Proceedings of the international conference on software testing, verification and validation. IEEE, pp 929–937
Segura S, Galindo JA, Benavides D, Parejo JA, Ruiz-Cortés A (2012) BeTTy: benchmarking and testing on the automated analysis of feature models. In: Proceedings of the workshop on variability modelling of software-intensive systems, pp 63–71
Sijtema M (2010) Introducing variability rules in ATL for managing variability in MDE-based product lines. In: Proceedings of the workshop on model transformation with ATL, pp 39–49
Shane S, Wojtek K (2003) Model transformation: the heart and soul of model-driven software development. IEEE Softw 20(5): 42–45
Strüber D, Kehrer T, Arendt T, Pietsch C, Reuling D (2016) Scalability of Model transformations: position paper and benchmark set. In: Workshop on scalable model driven engineering, pp 21–30
Strüber D, Plöger J, Acretoaie V (2016) Clone detection for graph-based model transformation languages. In: Proceedings of the international conference on the theory and practice of model transformations (ICMT). Springer, pp 191–206
Strüber D, Rubin J, Arendt T, Chechik M, Taentzer G, Plöger J (2016) RuleMerger: automatic construction of variability-based rules. In: Proceedings of the international conference on fundamental approaches to software engineering. Springer, pp 122–140
Strüber D, Rubin J, Chechik M, Taentzer G (2015) A variability-based approach to reusable and efficient model transformations. In: Proceedings of the international conference on fundamental approaches to software engineering. Springer, pp 283–298
Strüber D, Schulz S (2016) A tool environment for managing families of model transformation rules. In: Proceedings of the international conference on graph transformations (ICGT), in memory of Hartmut Ehrig. Springer, pp 89–101
Störrle H (2014) On the impact of layout quality to understanding UML diagrams: size matters. In: Proceedings of the international conference on model-driven engineering languages and systems. Springer,pp 518–534
Strüber D (2016) Model-driven engineering in the large: refactoring techniques for models and model transformation systems. Ph.D. thesis, Philipps-Universität Marburg
Taentzer G (1996) Parallel and distributed graph transformation: formal description and application to communication based systems. Ph.D. thesis, Technical University of Berlin
Taentzer G, Arendt T, Ermel C, Heckel R (2012) Towards Refactoring of Rule-Based, In-Place Model Transformation Systems. In: Proceedings of the workshop on the analysis of model transformations. ACM, pp 41–46
Thüm T, Apel S, Kästner C, Schaefer I, Saake G (2014) A classification and survey of analysis strategies for software product lines. ACM Comput Surv 47(1):6:1–6:45
Tichy M, Krause C, Liebel G (2013) Detecting performance bad smells for henshin model transformations. In: Proceedings of the workshop on the analysis of model transformations, pp 82–86. http://CEUR-WS.org
Trujillo S, Zubizarreta A, De Sosa J, Mendialdua X (2009) On the refinement of model-to-text transformations. In: Proceedings of the Jornadas de Ingenieria del Software y Bases de Datos, pp 123–133
Varró G, Deckwerth F (2013) A rete network construction algorithm for incremental pattern matching. In: Proceedings of the international conference on theory and practice of model transformations. Springer, pp 125–140
Gergely V, Katalin F, Dániel V (2006) Adaptive graph pattern matching for model transformations using model-sensitive search plans. Electron Notes Theor Comput Sci 152: 191–205
Varró G, Schürr A, Varró D (2005) Benchmarking for graph transformation. In: Proceedings of the international symposium on visual languages and human-centric computing. IEEE, pp 79–88
Wille D (2014) Managing lots of models: the famine approach. In: Proceedings of the international symposium on foundations of software engineering. ACM, pp 817–819
Rui X, Donald W et al (2005) Survey of clustering algorithms. IEEE Trans Neural Netw 16(3): 645–678
Yan X, Han J (2002) gspan: graph-based substructure pattern mining. In: Proceedings of the international conference on data mining. IEEE, pp 721–724
Peixiang Z, Jiawei H (2010) On graph query optimization in large networks. In: Proceedings of the VLDB endowment 3(1–2): 340–351
Ziadi T, Henard C, Papadakis M, Ziane M, Le TY (2014) Towards a language-independent approach for reverse-engineering of software product lines. In: Proceedings of the symposium on applied computing. ACM, pp 1064–1071
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Perdita Stevens, Andrzej Wasowski, and Ewen Denney
Rights and permissions
About this article
Cite this article
Strüber, D., Rubin, J., Arendt, T. et al. Variability-based model transformation: formal foundation and application. Form Asp Comp 30, 133–162 (2018). https://doi.org/10.1007/s00165-017-0441-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-017-0441-3