Skip to main content
Log in

Using metric-based filtering to improve design pattern detection approaches

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

Design patterns represent high-level recurring abstractions that reflect the know-how of experts. Their detection is a key task in the context of software engineering; it is very useful in program comprehension, design recovery and also for re-documenting object-oriented systems. Despite their usefulness, current design pattern detection approaches have a high time complexity that hinders their application. This complexity is further aggravated with the absence of guiding principles in determining which pattern to look for first among the various patterns. To overcome this practical limit, we propose to optimize any pattern detection approach by foregoing it by a filtering phase that detects possible existence of patterns and that orders the candidate patterns in terms of their degree of resemblance to the analyzed design fragments. The herein proposed filtering approach exploits semantic and structural design metrics to look for the semantic and structural symptoms of design pattern instances. Its performance is experimentally demonstrated through our design pattern detection method MAPeD (Multi-phase Approach for Pattern Discovery) applied on the open source system JUnit.

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

Similar content being viewed by others

References

  1. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object oriented software. Addisson-Wesley, Reading

  2. Tsantalis N, Chatzigeorgiou A, Stephanides G, Halkidis ST (2006) Design pattern detection using similarity scoring. IEEE Transactions on Software Engineering, vol 32, p 11

  3. Gueheneuc Y, Antoniol G (2008) DeMIMA: a multilayered approach for design pattern identification. IEEE Transactions on Software Engineering

  4. Belderrar A, Kpodjedo S, Guéhéneuc Y, Antoniol G, Galinier P (2011) Sub-graph mining: identifying micro-architectures in evolving object-oriented software. 15th European Conference on Software Maintenance and Reengineering (CSMR’11), pp 171–180

  5. De Lucia A, Deufemia V, Gravino C, Risi M (2010) Improving behavioral design pattern detection through model checking. 14th European conference on software maintenance and reengineering (CSMR’10), pp 176–185

  6. Bouassida N, Ben-Abdallah H (2009) Structural and behavioral detection of design patterns. (ASEA). International conference on advanced software engineering and its applications, CCIS proceedings. Springer, Berlin

  7. Masuda G, Sakamoto N, K Ushijima (1999) Evaluation and analysis of applying design patterns. In: Proceedings of the international workshop on principles of software evolution

  8. Huston B (2001) The effects of design pattern application on metric scores, pp 261–269

  9. Chidamber S, Kemerer C (1994) A metrics suite for object oriented design. IEEE Transactions on Software Engineering, pp 476–493

  10. Gamma E, Eggenschwiler T (2007) http://www.jhotdraw.org

  11. JRefactory (2007) http://jrefactory.sourceforge.net/

  12. Bouassida N, Ben-Abdallah H, Issaoui I (2013) Evaluation of an automated multi-phase approach for patterns discovery. Int J Softw Eng Knowl Eng

  13. Arcelli F, Maggioni S (2009) Metrics-based detection of micro patterns to improve the assessment of software quality. 1st Symposium on emerging trends in software metrics

  14. Lee H, Youn H, Lee E (2008) A design pattern detection technique that aids reverse engineering. Int J Secur Appl 2(1)

  15. Blondel VD, Gajardo A, Heymans M, Senellart P, Van Dooren P (2004) A measure of similarity between graph vertices. SIAM, Applications to synonym extraction and web searching

  16. Arcelli F, Perin F, Raibulet C, Ravani S (2009) JADEPT: dynamic analysis for behavioral design pattern detection. 4th International conference on evaluation of novel approaches to software engineering (ENASE’09), Milan, pp 95–106

  17. Aydinoz B (2006) The effect of design patterns on object oriented metrics and software error-proneness. MS Thesis, The Graduate School of Natural and Applied Sciences of Middle East Technical University

  18. Hernandez J, Kubo A, Washizaki H (2011) Selection of metrics for predicting the appropriate application of design patterns. AsianPLoP 2011: 2nd Asian conference on pattern languages of programs, Tokyo

  19. Abul Khaer M, Hashem M, Raihan Masud M (2008) On use of design patterns in empirical assessment of software design quality. In: Proceedings of the international conference on computer and communication engineering

  20. Hsueh N, Chu P, Chu W (2008) A quantitative approach for evaluating the quality of design patterns, pp 1430–1439

  21. Maggioni S, Arcelli F (2009) Metrics-based detection of micro patterns. Emerging Trends in Software Metrics

  22. Reißing R (2001) The impact of pattern use on design quality. OOPSLA 2001 workshop “Beyond Design: Patterns (mis)used”

  23. Ampatzoglou A, Charalampidou S, Stamelos I (2013) Research state of the art on GoF design patterns: a mapping study. J Syst Softw, pp 1945–1964

  24. Antoniol G, Fiutem R, Cristoforetti L (1998) Using metrics to identify design patterns in object-oriented software. In: IEEE proceedings of the 5th international symposium on software metrics (METRICS 1998). IEEE Computer Society, Maryland, pp 23–34

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

  26. Larman C (2004) Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development, 3rd edn. Addison Wesley

  27. Ayata M (2010) Effect of some software design patterns on real time software performance. A Master’s Thesis, the Graduate School of Imfomatics of Middle East Technical University

  28. Vernazza T, Granatella G, Succi G, Benedicenti L, Mintchev M (2000) Defining metrics for software components. In: Proceedings of the world multiconference on systemics, cybernetics and informatics

  29. Guéhéneuc Y-G, Sahraoui H, Zaidi F (2004) Fingerprinting design patterns. In: Proceedings of the 11th working conference on reverse engineering. IEEE Computer Society Press, pp 172–181

  30. Bieman J, Straw G, Wang H, Munger PW, Alexander RT (2003) Design patterns and change proneness: an examination of five evolving systems. In: Berry M, Harrison W (eds) Proceedings of the 9th international software metrics symposium. IEEE Computer Society Press, pp 40–49

  31. Issaoui I, Bouassida N, Ben-Abdallah H (2012) A design pattern detection approach based on semantics. In: Proceedings of the the 10th international conference on software engineering research, management and applications (SERA2012) selected papers to appear in Studies in Computational Intelligence. Springer, Berlin

  32. Fellbaum C http://wordnet.princeton.edu/ [En ligne]

  33. ArgoUML (2000) http://argouml.tigris.org/ [En ligne]

  34. JUnit (2007) http://www.junit.org

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Imène Issaoui.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Issaoui, I., Bouassida, N. & Ben-Abdallah, H. Using metric-based filtering to improve design pattern detection approaches. Innovations Syst Softw Eng 11, 39–53 (2015). https://doi.org/10.1007/s11334-014-0241-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-014-0241-3

Keywords

Navigation