Towards Rule-Based Detection of Design Patterns in Model Transformations

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9959)


Model transformations are at the very heart of the Model-Driven Engineering paradigm. As modern programs, they are complex, difficult to write and test, and overall, difficult to understand, maintain, and reuse. In other paradigms, such as object-oriented programming, design patterns play an important role for understanding and reusing code. Many works have been proposed to detect complete design pattern instances for understanding and documentation purposes, but also partial design pattern instances for quality assessment and refactoring purposes. Recently, a catalog of design patterns has been proposed for model transformations. In this paper, we propose to detect these design patterns in declarative model transformation programs. Our approach first detects the rules that may play a role in a design pattern. Then, it ensures that the control flow over these rules corresponds to the scheduling scheme in the design pattern. Our preliminary evaluation shows that our detection mechanism is effective for both complete and partial instances of design patterns.


Design Pattern Detection Representative Part Henshin Specific Model Transformation Language Fact Templates 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Arendt, T., Biermann, E., Jurack, S., Krause, C., Taentzer, G.: Henshin: advanced concepts and tools for in-place emf model transformations. In: Model Driven Engineering Languages and Systems, pp. 121–135 (2010)Google Scholar
  2. 2.
    De Lucia, A., Deufemia, V., Gravino, C., Risi, M.: Improving behavioral design pattern detection through model checking. In: European Conference on Software Maintenance and Reengineering, pp. 176–185 (2010)Google Scholar
  3. 3.
    Dong, J., Zhao, Y., Peng, T.: A review of design pattern mining techniques. Int. J. Softw. Eng. Knowl. Eng. 19(06), 823–855 (2009)CrossRefGoogle Scholar
  4. 4.
    Guéhéneuc, Y.G., Guyomarc’h, J.Y., Sahraoui, H.: Improving design-pattern identification: a new approach and an exploratory study. Softw. Qual. J. 18(1), 145–174 (2010)CrossRefGoogle Scholar
  5. 5.
    Gueheneuc, Y.G., Sahraoui, H., Zaidi, F.: Fingerprinting design patterns. In: Working Conference on Reverse Engineering, pp. 172–181. IEEE (2004)Google Scholar
  6. 6.
    Hill, E.F.: Jess in Action: Java Rule-Based Systems. Manning Greenwich, Greenwich (2003)Google Scholar
  7. 7.
    Rasool, G., Mäder, P.: Flexible design pattern detection based on feature types. In: International Conference on Automated Software Engineering, pp. 243–252 (2011)Google Scholar
  8. 8.
    Agrawal, A.: Reusable idioms and patterns in graph transformation languages. In: International Workshop on Graph-Based Tools, ENTCS, vol. 127, pp. 181–192. Elsevier (2005)Google Scholar
  9. 9.
    Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. Spec. Issue Model-Driven Softw. Dev. 45(3), 621–645 (2006)Google Scholar
  10. 10.
    Ergin, H., Syriani, E., Gray, J.: Design pattern oriented development of model transformations. Comput. Lang. Syst. Struct. 46, 106–139 (2016). doi: 10.1016/ Google Scholar
  11. 11.
    Ergin, H., Syriani, E.: Identification and application of a model transformation design pattern. In: ACM Southeast Conference, ACMSE 2013. ACM (2013)Google Scholar
  12. 12.
    Ergin, H., Syriani, E.: Towards a Language for Graph-Based Model Transformation Design Patterns. In: Ruscio, D., Varró, D. (eds.) ICMT 2014. LNCS, vol. 8568, pp. 91–105. Springer, Heidelberg (2014). doi: 10.1007/978-3-319-08789-4_7 Google Scholar
  13. 13.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley Professional, Boston (1994)zbMATHGoogle Scholar
  14. 14.
    Hutchinson, J., Whittle, J., Rouncefield, M., Kristoffersen, S.: Empirical assessment of MDE in industry. In: International Conference on Software engineering, pp. 471–480. ACM (2011)Google Scholar
  15. 15.
    Iacob, M.E., Steen, M.W.A., Heerink, L.: Reusable model transformation patterns. In: Enterprise Distributed Object Computing Conference Workshops, pp. 1–10. IEEE Computer Society (2008)Google Scholar
  16. 16.
    Lúcio, L., Amrani, M., Dingel, J., Lambers, L., Salay, R., Selim, G.M., Syriani, E., Wimmer, M.: Model transformation intents and their properties. Softw. Syst. Model. 15(3), 647–684 (2014)CrossRefGoogle Scholar
  17. 17.
    Lano, K., Rahimi, S.K.: Model-transformation design patterns. IEEE Trans. Softw. Eng. 40(12), 1224–1259 (2014)CrossRefGoogle Scholar
  18. 18.
    Lano, K., Rahimi, S.K., Poernomo, I.: Comparative evaluation of model transformation specification approaches. Int. J. Softw. Inf. 6(2), 233–269 (2012)Google Scholar
  19. 19.
    Levendovszky, T., Lengyel, L., Mészáros, T.: Supporting domain-specific model patterns with metamodeling. Softw. Syst. Model. 8(4), 501–520 (2009)CrossRefGoogle Scholar
  20. 20.
    Prechelt, L., Krämer, C.: Functionality versus practicality: employing existing tools for recovering structural design patterns. J. Univ. Comput. Sci. 4(11), 866–882 (1998)Google Scholar
  21. 21.
    Syriani, E., Vangheluwe, H.: A modular timed graph transformation language for simulation-based design. Softw. Syst. Model. 12(2), 387–414 (2013)CrossRefGoogle Scholar
  22. 22.
    Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.: Design pattern detection using similarity scoring. Trans. Softw. Eng. 32(11), 896–909 (2006)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  1. 1.University of MontrealMontrealCanada

Personalised recommendations