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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
References
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)
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
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)
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)
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)
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)
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)
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)
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
Fontana, F.A., Zanoni, M.: A tool for design pattern detection and software architecture reconstruction. Inf. Sci. 181(7), 1306–1324 (2011)
Gamma, E.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education, India (1995)
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)
Leemans, M., Liu, C.: Xes software event extension. XES Working Group, pp. 1–11 (2017)
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)
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)
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)
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)
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)
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)
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)
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)
Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32(11), 896–909 (2006)
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)
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)
Acknowledgements
This work is supported by the NIRICT 3TU.BSR (Big Software on the Run) research projectFootnote 7
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)