Skip to main content

Integrating Model Driven and Model Checking to Mine Design Patterns

  • Conference paper
  • First Online:
Software Technologies (ICSOFT 2015)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 586))

Included in the following conference series:

Abstract

The use of Design Patterns has constantly grown in the development of Object Oriented systems, due to the well-known advantage they offer to improve the quality of software design. However, lack of documentation about which Design Patterns are actually adopted and implemented in the code and about the code components involved in the implementation of each Design Pattern instance can make harder any operation of maintenance, reuse, or evolution impacting those components. Thus, several Design Pattern Mining approaches and tools have been proposed to identify the instances of Design Pattern implemented in an Object oriented system. Nevertheless, the results produced by these approaches can be not fully complete and precise because of the presence of false positive/negative. In this paper we propose to integrate a Model Driven based Design Pattern mining approach with a Formal Method technique to automatically refine and improve the precision of results of traditional mining tool. In particular Model checking is used to refine the results of the Design Pattern Finder (DPF) tool implementing a Model Driven based approach to detect Design Pattern instances Object Oriented systems. To verify and validate the feasibility and effectiveness of the proposed approach we carried out a case study regarding four open source OO systems. The results from the case study showed that actually the technique allowed to raise significantly the precision of the instances that the DPF tool was able to identify.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Of course, the different formats of the benchmarks were translated into a unique common format to store the considered GS.

References

  1. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)

    Google Scholar 

  2. Ampatzoglou, A., Frantzeskou, G., Stamelos, I.: A methodology to assess the impact of design patterns on software quality. Inf. Softw. Technol. 54, 331–346 (2012)

    Article  Google Scholar 

  3. Bergenti, F., Poggi, A.: Improving uml designs using automatic design pattern detection. In: Proceedings of the 12th International Conference on Software Engineering and Knowledge Engineering (SEKE 2000), pp. 336–343 (2000)

    Google Scholar 

  4. Peng, T., Dong, J., Zhao, Y.: Verifying behavioral correctness of design pattern implementation. In: Proceedings of the Twentieth International Conference on Software Engineering & Knowledge Engineering (SEKE 2008), pp. 454–459 (2008)

    Google Scholar 

  5. Dong, J., Zhao, Y., Peng, T.: Architecture and design pattern discovery techniques - a review. In: Arabnia, H.R., Reza, H. (eds.) Software Engineering Research and Practice, pp. 621–627. CSREA Press, Las Vegas (2007)

    Google Scholar 

  6. Rasool, G., Streitfdert, D.: A survey on design pattern recovery techniques. IJCSI Int. J. Comput. Sci. Issues 8, 251–260 (2011)

    Google Scholar 

  7. Beyer, D.: Relational programming with crocopat. In: Proceedings of the 28th International Conference on Software Engineering, ICSE 2006, pp. 807–810. ACM, New York (2006)

    Google Scholar 

  8. Prechelt, L., Unger-Lamprecht, B., Philippsen, M., Tichy, W.: Two controlled experiments assessing the usefulness of design pattern documentation in program maintenance. IEEE Trans. Softw. Eng. 28, 595–606 (2002)

    Article  Google Scholar 

  9. Ceccarelli, M., Cerulo, L., De Ruvo, G., Nardone, V., Santone, A.: Infer gene regulatory networks from time series data with probabilistic model checking. In: FormaliSE 2015 (2015)

    Google Scholar 

  10. De Ruvo, G., Santone, A.: Analysing wiki quality using probabilistic model checking. In: 2015 IEEE 24th International WETICE Conference, WETICE 2015, Larnaca, Cyprus, 15–17 June 2015

    Google Scholar 

  11. Bernardi, M.L., Cimitile, M., De Ruvo, G., Di Lucca, G.A., Santone, A.: Model checking to improve precision of design pattern instances identification in OO systems. In: ICSOFT-PT 2015 - Proceedings of the 10th International Conference on Software Paradigm Trends, Colmar, Alsace, France, 20–22 July 2015, pp. 53–63 (2015)

    Google Scholar 

  12. Bernardi, M., Cimitile, M., Di Lucca, G.: A model-driven graph-matching approach for design pattern detection. In: 20th Working Conference on Reverse Engineering (WCRE), pp. 172–181 (2013)

    Google Scholar 

  13. Bernardi, M., Cimitile, M., Di Lucca, G.: Design patterns detection using a dsl-driven graph matching approach. J. Softw. Evol. Process. Published online in Wiley Online Library (wileyonlinelibrary.com). doi:10.1002/smr.1674 (2014)

  14. Guéhéneuc, Y.G.: P-mart: pattern-like micro architecture repository. In: Michael, W., Birukou, A., Giorgini, P. (eds.) Proceedings of the 1st EuroPLoP Focus Group on Pattern Repositories (2007). http://www.ptidej.net/tool/designpatterns/

  15. Rasool, G., Philippow, I., Mäder, P.: Design pattern recovery based on annotations. Adv. Eng. Softw. 41, 519–526 (2010)

    Article  MATH  Google Scholar 

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

    Article  Google Scholar 

  17. Dong, J., Zhao, Y., Sun, Y.: A matrix-based approach to recovering design patterns. Trans. Sys. Man Cyber. Part A 39, 1271–1282 (2009)

    Article  Google Scholar 

  18. Paakki, J., Karhinen, A., Gustafsson, J., Nenonen, L., Verkamo, A.I.: Software metrics by architectural pattern mining. In: Proceedings of the International Conference on Software: Theory and Practice (16th IFIP World Computer Congress), pp. 325–332 (2000)

    Google Scholar 

  19. von Detten, M., Becker, S.: Combining clustering and pattern detection for the reengineering of component-based software systems. In: Proceedings of the Joint ACM SIGSOFT Conference QoSA-ISARCS, QoSA-ISARCS 2011, pp. 23–32. ACM, New York (2011)

    Google Scholar 

  20. Antoniol, G., Fiutem, R., Cristoforetti, L.: Design pattern recovery in object-oriented software. In: Proceedings of the 6th International Workshop on Program Comprehension, IWPC 1998, p. 153. IEEE Computer Society, Washington, DC (1998)

    Google Scholar 

  21. Guéhéneuc, Y.G., Guyomarc’H, J.Y., Sahraoui, H.: Improving design-pattern identification: a new approach and an exploratory study. Softw. Qual. Control 18, 145–174 (2010)

    Article  Google Scholar 

  22. De Lucia, A., Deufemia, V., Gravino, C., Risi, M.: Design pattern recovery through visual language parsing and source code analysis. J. Syst. Softw. 82, 1177–1193 (2009)

    Article  Google Scholar 

  23. Arcelli, F., Zanoni, M.: A tool for design pattern detection and software architecture reconstruction. Inf. Sci. 181, 1306–1324 (2011)

    Article  Google Scholar 

  24. Tonella, P., Torchiano, M., Du Bois, B., Systä, T.: Empirical studies in reverse engineering: state of the art and future trends. Empirical Softw. Engg. 12, 551–571 (2007)

    Article  Google Scholar 

  25. Taibi, T., Herranz-Nieva, Á., Moreno-Navarro, J.J.: Stepwise refinement validation of design patterns formalized in TLA+ using the TLC model checker. J. Object Technol. 8, 137–161 (2009)

    Article  Google Scholar 

  26. Aranda, G., Moore, R.: A formal model for verifying compound design patterns. In: Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering, SEKE 2002, pp. 213–214. ACM, New York (2002)

    Google Scholar 

  27. Flores, A., Moore, R., Reynoso, L.: A formal model of object-oriented design and gof design patterns. In: Oliveira, J.N., Zave, P. (eds.) FME 2001. LNCS, vol. 2021, pp. 223–241. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  28. De Lucia, A., Deufemia, V., Gravino, C., Risi, M.: Improving behavioral design pattern detection through model checking. In: 2010 14th European Conference on Software Maintenance and Reengineering (CSMR), pp. 176–185 (2010)

    Google Scholar 

  29. Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)

    MATH  Google Scholar 

  30. Bolognesi, T., Brinksma, E.: Introduction to the iso specification language lotos. Comput. Netw. 14, 25–59 (1987)

    Google Scholar 

  31. Barbuti, R., De Francesco, N., Santone, A., Vaglini, G.: Selective mu-calculus and formula-based equivalence of transition systems. J. Comput. Syst. Sci. 59, 537–556 (1999)

    Article  MATH  Google Scholar 

  32. Stirling, C.: An introduction to modal and temporal logics for CCS. In: Yonezawa, A., Ito, T. (eds.) Concurrency: Theory, Language, and Architecture. LNCS, pp. 1–20. Springer, Heidelberg (1989)

    Google Scholar 

  33. Barbuti, R., De Francesco, N., Santone, A., Vaglini, G.: Reduced models for efficient CCS verification. Formal Methods Syst. Des. 26, 319–350 (2005)

    Article  MATH  Google Scholar 

  34. Garavel, H., Lang, F., Mateescu, R., Serwe, W.: CADP: a toolbox for the construction and analysis of distributed processes. STTT 15(2013), 89–107 (2011)

    Google Scholar 

  35. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2001)

    Book  Google Scholar 

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

    Article  Google Scholar 

  37. SICStus Prolog User’s Manual. Swedish Institute of Computer Science. Release 3.7.1, October 1998. Swedish Institute of Computer Science. http://www.sics.se/isl/sicstus.html

  38. De Ruvo, G., Santone, A.: An eclipse-based editor to support lotos newcomers. In: 2014 IEEE 23rd International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE) (2014)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Giuseppe A. Di Lucca .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Bernardi, M.L., Cimitile, M., De Ruvo, G., Di Lucca, G.A., Santone, A. (2016). Integrating Model Driven and Model Checking to Mine Design Patterns. In: Lorenz, P., Cardoso, J., Maciaszek, L., van Sinderen, M. (eds) Software Technologies. ICSOFT 2015. Communications in Computer and Information Science, vol 586. Springer, Cham. https://doi.org/10.1007/978-3-319-30142-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-30142-6_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-30141-9

  • Online ISBN: 978-3-319-30142-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics