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.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
Of course, the different formats of the benchmarks were translated into a unique common format to store the considered GS.
References
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)
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)
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)
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)
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)
Rasool, G., Streitfdert, D.: A survey on design pattern recovery techniques. IJCSI Int. J. Comput. Sci. Issues 8, 251–260 (2011)
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)
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)
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)
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
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)
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)
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)
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/
Rasool, G., Philippow, I., Mäder, P.: Design pattern recovery based on annotations. Adv. Eng. Softw. 41, 519–526 (2010)
Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32, 896–909 (2006)
Dong, J., Zhao, Y., Sun, Y.: A matrix-based approach to recovering design patterns. Trans. Sys. Man Cyber. Part A 39, 1271–1282 (2009)
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)
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)
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)
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)
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)
Arcelli, F., Zanoni, M.: A tool for design pattern detection and software architecture reconstruction. Inf. Sci. 181, 1306–1324 (2011)
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)
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)
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)
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)
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)
Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)
Bolognesi, T., Brinksma, E.: Introduction to the iso specification language lotos. Comput. Netw. 14, 25–59 (1987)
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)
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)
Barbuti, R., De Francesco, N., Santone, A., Vaglini, G.: Reduced models for efficient CCS verification. Formal Methods Syst. Des. 26, 319–350 (2005)
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)
Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (2001)
Pettersson, N., Lowe, W., Nivre, J.: Evaluation of accuracy in design pattern occurrence detection. IEEE Trans. Softw. Eng. 36, 575–590 (2010)
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
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)