Skip to main content

Detecting Design Pattern Using Subgraph Discovery

  • Conference paper
Intelligent Information and Database Systems (ACIIDS 2010)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 5990))

Included in the following conference series:

Abstract

Design patterns have been widely adopted by software industry to reuse the best practices and improve the quality of software systems. In order to enable software engineers to understand and re-engineer the software program, quite a few approaches have been developed to identify design patterns from source code. However, the existing approaches generally identify patterns sequentially. As a result, the computation time of these approaches is linearly dependent on the number of design patterns to be detected. In this paper, a new approach based on subgraph discovery is proposed to recoginze a set of design patterns at a time. The computational time of the novel algorithm is sublinearly dependent on the number of patterns. A state space graph is introduced to avoid the search space explosion and reduce the opportunity to detect subgraph isomorphism. We run detailed experiments on three open source systems to evaluate our approach. The results of our experiments confirm on the efficiency and effectiveness of the proposed approach.

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 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Pfleeger, S.L.: Software Engineering: Theory and Practice, 2nd edn. Prentice Hall, Englewood Cliffs (2001)

    Google Scholar 

  2. Gamma, E., Helm, R., Johnson, R., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  3. Vokáč, M.: An Efficient Tool for Recovering Design Patterns from C++ Code. Journal of Object Technology 5(1), 139–157 (2006)

    Google Scholar 

  4. Krämer, C., Prechelt, L.: Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software. In: Proceedings of the Third Working Conference on Reverse Engineering, Monterey, CA, pp. 208–215 (1996)

    Google Scholar 

  5. Ballis, D., Baruzzo, A., Comini, M.: A Rule-based Method to Match Software Patterns against UML Models. Electronic Notes in Theoretical Computer Science 219, 51–66 (2008)

    Article  Google Scholar 

  6. Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., et al.: Design Pattern Detection using Similarity Scoring. IEEE Transactions on Software Engineering 32(11), 896–909 (2006)

    Article  Google Scholar 

  7. Dong, J., Sun, Y., Zhao, Y.: Design Pattern Detection by Template Matching. In: Proceedings of the 2008 ACM Symposium on Applied Computing, Fortaleza, Brazil, pp. 765–769 (2008)

    Google Scholar 

  8. Cook, D.J., Holder, L.B.: Graph-based Data Mining. IEEE Intelligent Systems and Their Applications 15(2), 32–41 (2000)

    Article  Google Scholar 

  9. Cook, D.J., Holder, L.B.: Mining Graph Data. John Wiley & Sons, Chichester (2007)

    MATH  Google Scholar 

  10. Ullmann, J.R.: An Algorithm for Subgraph Isomorphism. Journal of the ACM 23(1), 31–42 (1976)

    Article  MathSciNet  Google Scholar 

  11. Cordella, L.P., Foggia, P., Sansone, C., et al.: A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs. IEEE Transactions on Pattern Analysis and Machine Intelligence 26(10), 1367–1372 (2004)

    Article  Google Scholar 

  12. Mckay, B.D.: Practical Graph Isomorphism. Congressus Numerantium 30, 45–87 (1981)

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Qiu, M., Jiang, Q., Gao, A., Chen, E., Qiu, D., Chai, S. (2010). Detecting Design Pattern Using Subgraph Discovery. In: Nguyen, N.T., Le, M.T., Świątek, J. (eds) Intelligent Information and Database Systems. ACIIDS 2010. Lecture Notes in Computer Science(), vol 5990. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12145-6_36

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-12145-6_36

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-12144-9

  • Online ISBN: 978-3-642-12145-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics