Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
2-2020
Abstract
Design patterns (DPs) encapsulate valuable design knowledge of object-oriented systems. Detecting DP instances helps to reveal the underlying rationale, thus facilitates the maintenance of legacy code. Resulting from the internal similarity of DPs, implementation variants, and missing roles, approaches based on static analysis are unable to well identify structurally similar instances. Existing approaches further employ dynamic techniques to test the runtime behaviors of candidate instances. Automatically verifying the runtime behaviors of DP instances is a challenging task in multiple aspects. This paper presents an approach to improve the verification process of existing approaches. To exercise the runtime behaviors of DP instances in cases that test cases of legacy systems are often unavailable, we propose a markup language, TSML (Test Script Markup Language), to direct the generation of test cases by putting a DP instance into use. The execution of test cases is monitored based on a trace method that enables us to specify runtime events of interest using regular expressions. To characterize runtime behaviors, we introduce a modeling and specification method employing Allen's interval-based temporal relations, which supports variant behaviors in a flexible way without hard-coded algorithms. A prototype tool has been implemented and evaluated on six open source systems to verify 466 instances reported by five existing approaches with respect to five DPs. The results show that the dynamic analysis increases the F 1 -score by 53.6% in distinguishing similar DP instances.
Keywords
Design Pattern Detection, Temporal Analysis, Reverse Engineering, Software Comprehension, Knowledge Representation
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
2020 27th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER): February 18-21, Ontario, Canada: Proceedings
First Page
296
Last Page
307
ISBN
9781728151434
Identifier
10.1109/SANER48275.2020.9054804
Publisher
IEEE
City or Country
Piscataway, NJ
Citation
XIONG, Renhao; LO, David; and LI, Bixin.
Distinguishing similar design pattern instances through temporal behavior analysis. (2020). 2020 27th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER): February 18-21, Ontario, Canada: Proceedings. 296-307.
Available at: https://ink.library.smu.edu.sg/sis_research/5614
Copyright Owner and License
Publisher
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/SANER48275.2020.9054804