Skip to main content

Detecting Behavioral Design Patterns from Software Execution Data

  • Conference paper
  • First Online:
  • 458 Accesses

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

Abstract

Design pattern detection techniques provide useful insights to help understand the design and architecture of software systems. Existing design pattern detection techniques require as input the source code of software systems. Hence, these techniques may become not applicable in case the source code is not available anymore. Large volumes of data are recorded and stored during software execution, which is very useful for design pattern detection of software systems. This chapter introduces a general framework to support the detection of behavioral design patterns by taking as input the software execution data. To show the effectiveness, the proposed framework is instantiated for the observer, state and strategy patterns. The developed pattern detection techniques are implemented in the open-source process mining toolkit ProM. The applicability of the proposed framework is evaluated using software execution data containing around 1.000.000 method calls that are generated by running both synthetic and real-life software systems.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   64.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   84.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

Learn about institutional subscriptions

Notes

  1. 1.

    http://www.promtools.org/.

  2. 2.

    https://svn.win.tue.nl/repos/prom/Packages/SoftwareProcessMining/.

  3. 3.

    http://essere.disco.unimib.it/svn/DPB/Lexi%20v0.1.1%20alpha/.

  4. 4.

    http://www.inf.fu-berlin.de/lehre/WS99/java/swing/JHotDraw5.1/.

  5. 5.

    http://essere.disco.unimib.it/svn/DPB/JUnit%20v3.7/.

  6. 6.

    http://essere.disco.unimib.it/svn/DPB/MapperXML%20v1.9.7/.

  7. 7.

    http://www.3tu-bsr.nl/doku.php?id=start.

References

  1. Arcelli, F., Perin, F., Raibulet, C., Ravani, S.: Jadept: dynamic analysis for behavioral design pattern detection. In: 4th International Conference on Evaluation of Novel Approaches to Software Engineering, ENASE, pp. 95–106 (2009)

    Google Scholar 

  2. Arcelli, F., Perin, F., Raibulet, C., Ravani, S.: Design pattern detection in java systems: a dynamic analysis based approach. In: Maciaszek, L.A., González-Pérez, C., Jablonski, S. (eds.) ENASE 2008. CCIS, vol. 69, pp. 163–179. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14819-4_12

    Chapter  Google Scholar 

  3. 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: 10th International Joint Conference on Software Technologies (ICSOFT), vol. 2, pp. 1–11. IEEE (2015)

    Google Scholar 

  4. Bernardi, M.L., Cimitile, M., Di Lucca, G.: Design pattern detection using a DSL-driven graph matching approach. J. Softw. Evol. Process 26(12), 1233–1266 (2014)

    Article  Google Scholar 

  5. Dabain, H., Manzer, A., Tzerpos, V.: Design pattern detection using finder. In: Proceedings of the 30th Annual ACM Symposium on Applied Computing, pp. 1586–1593. ACM (2015)

    Google Scholar 

  6. De Lucia, A., Deufemia, V., Gravino, C., Risi, M.: Behavioral pattern identification through visual language parsing and code instrumentation. In: 13th European Conference on Software Maintenance and Reengineering, CSMR 2009, pp. 99–108. IEEE (2009)

    Google Scholar 

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

    Article  Google Scholar 

  8. Dong, J., Zhao, Y., Sun, Y.: A matrix-based approach to recovering design patterns. IEEE Trans. Syst. Man Cybernetics Part A: Syst. Humans 39(6), 1271–1282 (2009)

    Article  Google Scholar 

  9. van Dongen, B.F., de Medeiros, A.K.A., Verbeek, H.M.W., Weijters, A.J.M.M., van der Aalst, W.M.P.: The ProM framework: a new era in process mining tool support. In: Ciardo, G., Darondeau, P. (eds.) ICATPN 2005. LNCS, vol. 3536, pp. 444–454. Springer, Heidelberg (2005). https://doi.org/10.1007/11494744_25

    Chapter  Google Scholar 

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

    Article  Google Scholar 

  11. Gamma, E.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education, India (1995)

    Google Scholar 

  12. Heuzeroth, D., Holl, T., Hogstrom, G., Lowe, W.: Automatic design pattern detection. In: 11th IEEE International Workshop on Program Comprehension, pp. 94–103. IEEE (2003)

    Google Scholar 

  13. Leemans, M., Liu, C.: Xes software event extension. XES Working Group, pp. 1–11 (2017)

    Google Scholar 

  14. Liu, C., van Dongen, B., Assy, N., van der Aalst, W.: Software architectural model discovery from execution data. In: 13th International Conference on Evaluation of Novel Approaches to Software Engineering, pp. 3–10 (2018)

    Google Scholar 

  15. Liu, C., van Dongen, B., Assy, N., van der Aalst, W.: Component behavior discovery from software execution data. In: International Conference on Computational Intelligence and Data Mining, pp. 1–8. IEEE (2016)

    Google Scholar 

  16. Liu, C., van Dongen, B., Assy, N., van der Aalst, W.: Component interface identification and behavior discovery from software execution data. In: 26th International Conference on Program Comprehension (ICPC 2018), pp. 97–107. ACM (2018)

    Google Scholar 

  17. Liu, C., van Dongen, B., Assy, N., van der Aalst, W.: A framework to support behavioral design pattern detection from software execution data. In: 13th International Conference on Evaluation of Novel Approaches to Software Engineering, pp. 65–76 (2018)

    Google Scholar 

  18. Liu, C., van Dongen, B., Assy, N., van der Aalst, W.: A general framework to detect behavioral design patterns. In: International Conference on Software Engineering (ICSE2018), pp. 234–235. ACM (2018)

    Google Scholar 

  19. Ng, J.K.Y., Guéhéneuc, Y.G., Antoniol, G.: Identification of behavioural and creational design motifs through dynamic analysis. J. Softw. Maint. Evol. Res. Pract. 22(8), 597–627 (2010)

    Article  Google Scholar 

  20. Niere, J., Schäfer, W., Wadsack, J.P., Wendehals, L., Welsh, J.: Towards pattern-based design recovery. In: Proceedings of the 24th International Conference on Software Engineering, pp. 338–348. ACM (2002)

    Google Scholar 

  21. Shi, N., Olsson, R.A.: Reverse engineering of design patterns from java source code. In: 21st IEEE/ACM International Conference on Automated Software Engineering, pp. 123–134. IEEE (2006)

    Google Scholar 

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

    Article  Google Scholar 

  23. Von Detten, M., Meyer, M., Travkin, D.: Reverse engineering with the reclipse tool suite. In: 2010 ACM/IEEE 32nd International Conference on Software Engineering, vol. 2, pp. 299–300. IEEE (2010)

    Google Scholar 

  24. Wendehals, L., Orso, A.: Recognizing behavioral patterns atruntime using finite automata. In: Proceedings of the 2006 International Workshop on Dynamic Systems Analysis, pp. 33–40. ACM (2006)

    Google Scholar 

Download references

Acknowledgements

This work is supported by the NIRICT 3TU.BSR (Big Software on the Run) research projectFootnote 7

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Cong Liu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Liu, C., van Dongen, B.F., Assy, N., van der Aalst, W.M.P. (2019). Detecting Behavioral Design Patterns from Software Execution Data. In: Damiani, E., Spanoudakis, G., Maciaszek, L. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2018. Communications in Computer and Information Science, vol 1023. Springer, Cham. https://doi.org/10.1007/978-3-030-22559-9_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-22559-9_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-22558-2

  • Online ISBN: 978-3-030-22559-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics