Liu, Cong, van Dongen, Boudewijn, Assy, Nour & van der Aalst, Wil M.P. (2018). A framework to support behavioral design pattern detection from software execution data. ENASE 2018 – Proceedings of the 13th International Conference on Evaluation of Novel Approaches to Software Engineering (pp. 65-76). SCITEPRESS-Science and Technology Publications, Lda..
The detection of design patterns provides useful insights to help understanding not only the code but also the design and architecture of the underlying software system. Most existing design pattern detection approaches and tools rely on source code as input. However, if the source code is not available (e.g., in case of legacy software systems) these approaches are not applicable anymore. During the execution of software, tremendous amounts of data can be recorded. This provides rich information on the runtime behavior analysis of software. This paper presents a general framework to detect behavioral design patterns by analyzing sequences of the method calls and interactions of the objects that are collected in software execution data. To demonstrate the applicability, the framework is instantiated for three well-known behavioral design patterns, i.e., observer, state and strategy patterns. Using the open-source process mining toolkit ProM, we have developed a tool that supports the whole detection process. We applied and validated the framework using software execution data containing around 1000.000 method calls generated from both synthetic and open-source software systems.