Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Towards pattern-based design recovery
Proceedings of the 24th International Conference on Software Engineering
Monitoring deployed software using software tomography
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
NetSTAT: A Network-Based Intrusion Detection Approach
ACSAC '98 Proceedings of the 14th Annual Computer Security Applications Conference
Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Automatic Design Pattern Detection
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Design Pattern Recovery in Object-Oriented Software
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Design reverse-engineering and automated design-pattern detection in Smalltalk
Design reverse-engineering and automated design-pattern detection in Smalltalk
Contributing to Eclipse: Principles, Patterns, and Plugins
Contributing to Eclipse: Principles, Patterns, and Plugins
InsECTJ: a generic instrumentation framework for collecting dynamic information within Eclipse
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Identifying Data Transfer Objects in EJB Applications
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Component airbag: a novel approach to develop dependable component-based applications
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Component airbag: a novel approach to develop dependable component-based applications
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
Design Pattern Detection by Using Meta Patterns
IEICE - Transactions on Information and Systems
Reverse engineering with the reclipse tool suite
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Identification of behavioural and creational design motifs through dynamic analysis
Journal of Software Maintenance and Evolution: Research and Practice
Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools
Precise specification of design pattern structure and behaviour
ECMFA'10 Proceedings of the 6th European conference on Modelling Foundations and Applications
Fuzzy service matching in on-the-fly computing
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
During reverse engineering, developers often need to understand the undocumented design of a software. In particular, recognizing design patterns in the software can provide reverse engineers with considerable insight on the software structure and its internal characteristics. Researchers have therefore proposed techniques based on static analysis to automatically recover design patterns in a program. Unfortunately, most design patterns comprise not only structural, but also significant behavioral aspects. Although static analysis is well suited for the recognition of structural aspects, it is typically limited and imprecise in analyzing behavior. To address this limitation, we present a new technique that complements our existing static analysis with a dynamic analysis, so as to perform a more accurate design-pattern recognition. The dynamic analysis is based on (1) transforming behavioral aspects of design patterns into finite automata, (2) identifying and instrumenting relevant method calls, and (3) monitoring relevant calls at runtime and matching them against the automata. The results of the dynamic analysis are then used to compute the likelihood of a pattern to be in the code. This paper describes our technique and presents a preliminary empirical study performed to assess the technique.