Skip to main content
Log in

VPML: an approach to detect design patterns of MOF-based modeling languages

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

A design pattern is a recurring and well-understood design fragment. In a model-driven engineering methodology, detecting occurrences of design patterns supports the activities of model comprehension and maintenance. With the recent explosion of domain-specific modeling languages, each with its own syntax and semantics, there has been a corresponding explosion in approaches to detecting design patterns that are so much tailored to those many languages that they are difficult to reuse. This makes developing generic analysis tools extremely hard. Such a generic tool is however desirable to reduce the learning curve for pattern designers as they specify patterns for different languages used to model different aspects of a system. In this paper, we propose a unified approach to detecting design patterns of MOF-based modeling languages. MOF is increasingly used to define modeling languages, including UML and BPMN. In our approach, a pattern is modeled with a Visual Pattern Modeling Language and mapped to a corresponding QVT-Relations transformation. Such a transformation runs over an input model where pattern occurrences are to be detected and reports those occurrences in a result model. The approach is prototyped on Eclipse and validated in two large case studies that involve detecting design patterns—specifically a subset of GoF patterns in a UML model and a subset of Control Flow patterns in a BPMN model. Results show that the approach is adequate for modeling complex design patterns for MOF-based modeling languages and detecting their occurrences with high accuracy and performance.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28
Fig. 29
Fig. 30
Fig. 31
Fig. 32

Similar content being viewed by others

References

  1. Model-driven engineering. http://en.wikipedia.org/wiki/Model-driven_engineering

  2. Booch, G.: Handbook of Software Architecture. http://www.handbookofsoftwarearchitecture.com

  3. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA (1995)

  4. Unified Modeling Language (UML), Superstructure v2.4. http://www.omg.org/spec/UML/2.4/Superstructure/PDF

  5. Russell, N., Hofstede, A., Aalst, W., Mulyar, N.: Workflow control-flow patterns: a revised view. BPM Center Report BPM-06-22, BPMcenter.org (2006)

  6. Business Process Model and Notation (BPMN) v2.0. http://www.omg.org/spec/BPMN/2.0/PDF

  7. Kerievsky, J.: Refactoring to Patterns. Addison-Wesley, Reading, MA (2004)

  8. Ambler, S.: Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process. Wiley, New York, NY (2002)

  9. Chikofsky, E., Cross, J.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990)

    Article  Google Scholar 

  10. Elaasar, M., Briand, L., Labiche, Y.: Domain-specific model verification with QVT. In: ECMFA’11. LNCS, vol. 6698, pp. 282–298 (2011)

  11. Meta Object Facility (MOF) Core v2.0. http://www.omg.org/spec/MOF/2.0/

  12. Object Constraint Language (OCL) v2.2. http://www.omg.org/spec/OCL/2.2/

  13. Query/View/Transformation (QVT) v1.1. http://www.omg.org/spec/QVT/1.1/

  14. ATL Transformation Language. http://www.eclipse.org/atl/

  15. Steinberg, D., Budinsky, F., Paternostro M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edition. Addison-wesley, Boston, MA (2009)

  16. Graphical Modeling Framework (GMF). http://www.eclipse.org/gmf/

  17. Medini QVT. http://projects.ikv.de/qvt

  18. Fulop, L., Ferenc R., Gyimothy, T.: Towards a benchmark for evaluating design pattern miner tools. In: Proceedings of CSMR, pp. 143–152 (2008)

  19. Dong, J., Zhao, Y., Peng, T.: Architecture and design pattern discovery techniques—a review. In: Software Engineering Research and Practice, pp. 621–627 (2007)

  20. Birkner, M.: Objected-oriented design pattern detection using static and dynamic analysis in Java Software. Master Thesis, University of Applied Sciences Bonn-Rhein-Sieg, Germany (2007)

  21. Huang, H., Zhang, S., Cao, J., Duan, Y.: A practical pattern recovery approach based on both structural and behavioral analysis. J. Syst. Softw. 75(1–2), 69–87 (2005)

    Article  Google Scholar 

  22. Mikkonen, T.: Formalizing design patterns. In: Proceedings of International Conference on Software Engineering, pp. 115–124 (1998)

  23. Taibi, T., Check, D., Ngo, L.: Formal specification of design patterns—a balanced approach. J. Object Technol. 2(4), 127–140 (2003)

    Article  Google Scholar 

  24. Eden, A., Hirshfeld, Y., Lundqvist, K.: LePUS—Symbolic logic modeling of object oriented architectures: a case study. University of Karlskrona. In: Proceedings of Second Nordic Workshop on Software Architecture (1999)

  25. Beyer, D., Noack, A., Lewerentz, C.: Efficient relational calculation for software analysis. IEEE Trans. Softw. Eng. 31(2), 137–149 (2005)

    Article  Google Scholar 

  26. Dijkmana, R., Dumasb, M., Ouyangc, C.: Semantics and analysis of business process models in BPMN. Inf. Softw. Technol. 50(12), 1281–1294 (2008)

    Article  Google Scholar 

  27. Seemann, J., Gudenberg, J.: Pattern-based design recovery of Java software. In: Proceedings of the 6th International Symposium on Foundations of Software Engineering, pp. 10–16 (1998)

  28. Eppstein, D.: Subgraph isomorphism in planar graphs and related problems. In: Proceedings of 6th Annual Symposium on Discrete Algorithms, pp. 632–640 (1995)

  29. Pettersson, N., Lowe, W.: Efficient and accurate software pattern detection. In: Proceedings of 13th Asia Pacific, Software Engineering Conference, pp. 317–326 (2006)

  30. Rudolf, M.: Utilizing constraint satisfaction techniques for efficient graph pattern matching. In: Proceedings of 6th International Workshop on Theory and Application of Graph Transformations. LNCS, vol. 1764, pp. 238–251, London (1998)

  31. Dong, J., Lad, D., Zhao, Y.: DP-Miner: design pattern discovery using matrix. In: Proceedings of 14th IEEE International Conference on Engineering of Computer-Based Systems, pp. 371–380 (2007)

  32. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32(11), 896–909 (2006)

    Article  Google Scholar 

  33. Gueheneuc, Y., Sahraoui, H., Zaidi, F.: Fingerprinting design patterns. In: Proceedings of the 11th Working Conference on Reverse Engineering, pp. 172–181 (2004)

  34. Le Guennec, A., Sunye, G., Jezequel, J.: Precise modeling of design patterns. In: Proceedings of UML 2000. LNCS, vol. 1939, pp. 482–496 (2000)

  35. Mak, J., Choy, C., Lun, D.: Precise modeling of design patterns in UML. In: Proceedings of International Conference of Software Engineering, pp. 252–261 (2004)

  36. Milicev, D.: Model-Driven Development with Executable UML. Wiley, New York, NY (2009)

  37. Elaasar, M., Briand, L., Labiche, Y.: A metamodeling approach to pattern specification. Model driven engineering languages and systems. LNCS, vol. 4199, pp. 484–498 (2006)

  38. Kim, D.-K., Shen, W.: Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies. Softw. Qual. J. 16(3), 329–359 (2008)

    Article  Google Scholar 

  39. Maplesden, D., Hosking, J., Grundy, J.: Design pattern modeling and instantiation using DPML. In: Proceedings of TOOLS Pacific, pp. 3–11 (2002)

  40. Gueheneuc, Y.-G., Antoniol, G.: DeMIMA: a multilayered approach for design pattern identification. IEEE Trans. Softw. Eng. 34(5), 667–684 (2008)

    Article  Google Scholar 

  41. Bayley, I., Zhu, H.: Formal specification of the variants and behavioral features of design patterns. J. Syst. Softw. 83(2), 209–221 (2010)

    Article  Google Scholar 

  42. Milicev, D.: Automatic model transformations using extended UML object diagrams in modeling environments. IEEE Trans. Softw. Eng. 28(4), 413–431 (2002)

    Article  Google Scholar 

  43. Varro, G., Friedl, K., Varro, D.: Adaptive graph pattern matching for model transformations using model-sensitive search plans. In: Proceedings of GraMot 2005, vol. 152, pp. 191–205 (2005)

  44. Fujaba Tool Suite RE. http://www2.cs.uni-paderborn.de/cs/ag-schaefer/Lehre/PG/FUJABA/projects/reengineering/index.html

  45. Wikipedia: Adder. http://en.wikipedia.org/wiki/Adder_(electronics)

  46. Pettersson, N., Lowe, W., Nive, J.: Evaluation of accuracy in design pattern occurrence detection. IEEE Trans. Softw. Eng. 36(4), 575–590 (2009)

    Article  Google Scholar 

  47. Model to Text (M2T). http://www.eclipse.org/m2t/

  48. Acceleo: transforming models into code. http://www.eclipse.org/acceleo/

  49. GMF Design Model. https://sites.google.com/site/designpatterndetection/gmf-design-model

  50. Smith, J.: SPQR: formal foundations and practical support for the automated detection of design patterns from source code. PhD Dissertation, Computer Science Dept., University of North Carolina at Chapel Hill (2005)

  51. GoF Specifications in VPML. https://sites.google.com/site/designpatterndetection/gof-specifications

  52. Atwood, D.: BPM process patterns: repeatable design for BPM process models. BPTrends. http://www.bptrends.com/publicationfiles/05-06-WP-BPMProcessPatterns-Atwood1.pdf (2006)

  53. Gschwind, T., Koehler, J., Wong, J.: Applying patterns during business process modeling. In: Proceedings of the 6th International Conference on Business Process Management. LNCS, vol. 5240, pp. 4–19 (2008)

  54. CF Specifications in VPML. https://sites.google.com/site/designpatterndetection/cf-specifications

  55. Elaasar, M., Briand, L., Labiche, Y.: An approach to the specification and detection of MOF-based modeling languages. Ph.D. Thesis, School of Systems and Computer Engineering, Carleton University (2012)

  56. Systems Modeling Language (SysML), v1.2. http://www.omg.org/spec/SysML/1.2/

  57. MARTE: modeling and analysis of real-time embedded systems v1.0. http://www.omg.org/spec/MARTE/1.0/

Download references

Acknowledgments

Maged Elaasar was supported by IBM Canada Ltd. Lionel Briand was partly supported by a PEARL grant from the National Research Fund, Luxembourg (FNR/P10/03-Validation and Verification Laboratory). Yvan Labiche was partly supported by a NSERC Discovery grant.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Maged Elaasar.

Additional information

Communicated by Dr. Ana Moreira.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Elaasar, M., Briand, L.C. & Labiche, Y. VPML: an approach to detect design patterns of MOF-based modeling languages. Softw Syst Model 14, 735–764 (2015). https://doi.org/10.1007/s10270-013-0325-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-013-0325-9

Keywords

Navigation