Towards a general theory of action and time
Artificial Intelligence
A temporal extension of PROLOG
Journal of Logic Programming
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern-based design recovery of Java software
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Maintaining knowledge about temporal intervals
Communications of the ACM
Object-oriented design patterns recovery
Journal of Systems and Software
Towards pattern-based design recovery
Proceedings of the 24th International Conference on Software Engineering
Precise Visual Specification of Design Patterns
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
The UML as a Formal Modeling Notation
«UML» '98 Selected papers from the First International Workshop on The Unified Modeling Language «UML»'98: Beyond the Notation
Precise specification and automatic application of design patterns
ASE '97 Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)
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)
Refactoring to Patterns
The maintenance and evolution of resource-constrained embedded systems created using design patterns
Journal of Systems and Software
Design pattern detection by template matching
Proceedings of the 2008 ACM symposium on Applied computing
Formal specification of the variants and behavioural features of design patterns
Journal of Systems and Software
A fuzzy matching approach for design pattern mining
Journal of Intelligent & Fuzzy Systems: Applications in Engineering and Technology - Hybrid approaches for approximate reasoning
Hi-index | 0.00 |
While the merit of using design patterns is clear for forward engineering, we could also benefit from design pattern recovery in program understanding and reverse engineering. In this paper, we present a practical approach to enlarge the recoverable scope and improve precision ratio of pattern recovery. To specify both structural aspect and behavioral aspect of design patterns, we introduce traditional predicate logic combined with Allen's interval-based temporal logic as our theory foundation. The formal specifications could be conveniently converted into Prolog representations to support pattern recovery. To illustrate how to specify and recover design patterns in our approach, we take one example for each category of design patterns. Moreover, we give a taxonomy of design patterns based on the analysis in our approach to show its applicable scope. To validate our approach, we have developed a tool named PRAssistor and analyzed two well-known open source frameworks. The experiment results show that most of the patterns addressed in our taxonomy have been recovered. Besides larger recoverable scope, the recovery precision of our approach is much higher than others. Furthermore, we consider that our approach and tool could be promisingly extended to support "Debug at Design Level" and "Pattern-Driven Refactoring".