Authors:
Cong Liu
1
;
Boudewijn van Dongen
1
;
Nour Assy
1
and
Wil M. P. van der Aalst
2
Affiliations:
1
Eindhoven University of Technology, Netherlands
;
2
RWTH Aachen University and Eindhoven University of Technology, Germany
Keyword(s):
Pattern Instance Detection, Behavioral Design Pattern, Software Execution Data, General Framework.
Related
Ontology
Subjects/Areas/Topics:
Formal Methods
;
Simulation and Modeling
;
Software Engineering
;
Software Engineering Methods and Techniques
Abstract:
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.
(More)