Model Checking to Improve Precision of Design Pattern Instances Identification in OO Systems

Mario L. Bernardi, Marta Cimitile, Giuseppe De Ruvo, Giuseppe A. Di Lucca, Antonella Santone

2015

Abstract

In the last two decades some methods and tools have been proposed to identify the Design Pattern (DP) instances implemented in an existing Object Oriented (OO) software system. This allows to know which OO components are involved in each DP instance. Such a knowledge is useful to better understand the system thus reducing the effort to modify and evolve it. The results obtained by the existing methods and tools can suffer a lack of completeness or precision due to the presence of false positive/negative. Model Checking (MC) algorithms can be used to improve the precision of DP’s instances detected by a tool by automatically refining the results it produces. In this paper a MC based technique is defined and applied to the results of an existing DPs mining tool, called Design Pattern Finder (DPF), to improve the precision by verifying automatically the DPs instances it detects. To verify and assess the feasibility and the effectiveness of the proposed technique, we carried out a case study where it was applied on some open source OO systems. The results showed that the proposed technique allowed to improve the precision of the DPs instances detected by the DPF tool.

References

  1. Ampatzoglou, A., Frantzeskou, G., and Stamelos, I. (2012). A methodology to assess the impact of design patterns on software quality. Inf. Softw. Technol., 54(4):331- 346.
  2. Antoniol, G., Fiutem, R., and Cristoforetti, L. (1998). Design pattern recovery in object-oriented software. In Proceedings of the 6th International Workshop on Program Comprehension, IWPC 7898, pages 153-, Washington, DC, USA. IEEE Computer Society.
  3. Aranda, G. and Moore, R. (2002). A formal model for verifying compound design patterns. In Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering, SEKE 7802, pages 213-214, New York, NY, USA. ACM.
  4. Arcelli, F. and Zanoni, M. (2011). A tool for design pattern detection and software architecture reconstruction. Inf. Sci., 181(7):1306-1324.
  5. Barbuti, R., De Francesco, N., Santone, A., and Vaglini, G. (1999). Selective mu-calculus and formula-based equivalence of transition systems. J. Comput. Syst. Sci., 59(3):537-556.
  6. Barbuti, R., De Francesco, N., Santone, A., and Vaglini, G. (2005). Reduced models for efficient ccs verification. Formal Methods in System Design, 26(3):319-350.
  7. Bergenti, F. and Poggi, A. (2000). Improving uml designs using automatic design pattern detection. In Proc. 12th. International Conference on Software Engineering and Knowledge Engineering (SEKE 2000, pages 336-343.
  8. Bernardi, M., Cimitile, M., and Di Lucca, G. (2013). A model-driven graph-matching approach for design pattern detection. In 20th Working Conference on Reverse Engineering (WCRE), pages 172-181.
  9. Bernardi, M., Cimitile, M., and Di Lucca, G. (2014). Design patterns detection using a dsl-driven graph matching approach. Journal of Software: Evolution and Process, Published online in Wiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/smr.1674.
  10. Beyer, D. (2006). Relational programming with crocopat. In Proceedings of the 28th international conference on Software engineering, ICSE 7806, pages 807-810, New York, NY, USA. ACM.
  11. Bolognesi, T. and Brinksma, E. (1987). Introduction to the iso specification language lotos. Computer Networks, 14:25-59.
  12. Ceccarelli, M., Cerulo, L., De Ruvo, G., Nardone, V., and Santone, A. (2015). Infer gene regulatory networks from time series data with probabilistic model checking. FormaliSE 2015.
  13. Clarke, E. M., Grumberg, O., and Peled, D. (2001). Model checking. MIT Press.
  14. De Lucia, A., Deufemia, V., Gravino, C., and Risi, M. (2009). Design pattern recovery through visual language parsing and source code analysis. Journal of Systems and Software, 82(7):1177 - 1193.
  15. De Lucia, A., Deufemia, V., Gravino, C., and Risi, M. (2010). Improving behavioral design pattern detection through model checking. In Software Maintenance and Reengineering (CSMR), 2010 14th European Conference on, pages 176-185.
  16. De Ruvo, G. and Santone, A. (2014). An eclipse-based editor to support lotos newcomers. In Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), 2014 IEEE 23rd International Conference on.
  17. De Ruvo, G. and Santone, A. (2015). Analysing wiki quality using probabilistic model checking. In 2015 IEEE 24th International WETICE Conference, WETICE 2015, Larnaca, Cyprus, 15-17 June, 2015.
  18. Dong, J., Zhao, Y., and Peng, T. (2007). Architecture and design pattern discovery techniques - a review. In Arabnia, H. R. and Reza, H., editors, Software Engineering Research and Practice, pages 621-627. CSREA Press.
  19. Dong, J., Zhao, Y., and Sun, Y. (2009). A matrix-based approach to recovering design patterns. Trans. Sys. Man Cyber. Part A, 39(6):1271-1282.
  20. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
  21. Garavel, H., Lang, F., Mateescu, R., and Serwe, W. (2013). CADP 2011: a toolbox for the construction and analysis of distributed processes. STTT, 15(2):89-107.
  22. Guéhéneuc, Y. G. (http://www.ptidej.net/tool/design patterns/, 2007). P-mart: Pattern-like micro architecture repository,. In Proceedings of the 1st EuroPLoP Focus Group on Pattern Repositories. Michael , Aliaksandr Birukou, and Paolo Giorgini.
  23. Guéhéneuc, Y. G., Guyomarc'H, J. Y., and Sahraoui, H. (2010). Improving design-pattern identification: a new approach and an exploratory study. Software Quality Control, 18(1):145-174.
  24. L. Prechelt, B. Unger-Lamprecht, M. P. and Tichy, W. (2002). Two controlled experiments assessing the usefulness of design pattern documentation in program maintenance. IEEE Trans. Softw. Eng., 28(6):595- 606.
  25. Milner, R. (1989). Communication and concurrency. PHI Series in computer science. Prentice Hall.
  26. Paakki, J., Karhinen, A., Gustafsson, J., Nenonen, L., and Verkamo, A. I. (2000). Software metrics by architectural pattern mining. In Proceedings of the International Conference on Software: Theory and Practice (16th IFIP World Computer Congress, pages 325- 332.
  27. Peng, T., Dong, J., and Zhao, Y. (2008). Verifying behavioral correctness of design pattern implementation. In Proceedings of the Twentieth International Conference on Software Engineering & Knowledge Engineering (SEKE'2008), pages 454-459.
  28. Pettersson, N., Lowe, W., and Nivre, J. (2010). Evaluation of accuracy in design pattern occurrence detection. IEEE Trans. Softw. Eng., 36(4):575-590.
  29. Rasool, G., Philippow, I., and Mäder, P. (2010). Design pattern recovery based on annotations. Advances in Engineering Software, 41(4):519 - 526.
  30. Rasool, G. and Streitfdert, D. (2011). A survey on design pattern recovery techniques. IJCSI International Journal of Computer Science Issues, 8(2):251 - 260.
  31. Stirling, C. (1989). An introduction to modal and temporal logics for ccs. In Concurrency: Theory, Language, And Architecture, pages 2-20.
  32. Taibi, T., Herranz-Nieva, Í ., and Moreno-Navarro, J. J. (2009). Stepwise refinement validation of design patterns formalized in TLA+ using the TLC model checker. Journal of Object Technology, 8(2):137-161.
  33. Tonella, P., Torchiano, M., Du Bois, B., and Systä, T. (2007). Empirical studies in reverse engineering: state of the art and future trends. Empirical Softw. Engg., 12(5):551-571.
  34. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., and Halkidis, S. T. (2006). Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng., 32(11):896-909.
  35. von Detten, M. and Becker, S. (2011). 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 7811, pages 23-32, New York, NY, USA. ACM.
Download


Paper Citation


in Harvard Style

Bernardi M., Cimitile M., De Ruvo G., Di Lucca G. and Santone A. (2015). Model Checking to Improve Precision of Design Pattern Instances Identification in OO Systems . In Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015) ISBN 978-989-758-115-1, pages 53-63. DOI: 10.5220/0005520500530063


in Bibtex Style

@conference{icsoft-pt15,
author={Mario L. Bernardi and Marta Cimitile and Giuseppe De Ruvo and Giuseppe A. Di Lucca and Antonella Santone},
title={Model Checking to Improve Precision of Design Pattern Instances Identification in OO Systems},
booktitle={Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015)},
year={2015},
pages={53-63},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005520500530063},
isbn={978-989-758-115-1},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 10th International Conference on Software Paradigm Trends - Volume 1: ICSOFT-PT, (ICSOFT 2015)
TI - Model Checking to Improve Precision of Design Pattern Instances Identification in OO Systems
SN - 978-989-758-115-1
AU - Bernardi M.
AU - Cimitile M.
AU - De Ruvo G.
AU - Di Lucca G.
AU - Santone A.
PY - 2015
SP - 53
EP - 63
DO - 10.5220/0005520500530063