Graph algorithms and NP-completeness
Graph algorithms and NP-completeness
A memory-based approach to recognizing programming plans
Communications of the ACM
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
Java Swing
Pattern-based reverse-engineering of design components
Proceedings of the 21st international conference on Software engineering
Integrating UML diagrams for production control systems
Proceedings of the 22nd international conference on Software engineering
Knowledge-Based Program Analysis
IEEE Software
A Framework for Source Code Search Using Program Patterns
IEEE Transactions on Software Engineering
Graph Grammar Engineering with PROGRES
Proceedings of the 5th European Software Engineering Conference
Reuse Reengineering and Validation via Concept Assignment
ICSM '93 Proceedings of the Conference on Software Maintenance
Using Attributed Flow Graph Parsing to Recognize Clichés in Programs
Selected papers from the 5th International Workshop on Graph Gramars and Their Application to Computer Science
Graph Pattern Matching in PROGRES
Selected papers from the 5th International Workshop on Graph Gramars and Their Application to Computer Science
Story Diagrams: A New Graph Rewrite Language Based on the Unified Modeling Language and Java
TAGT'98 Selected papers from the 6th International Workshop on Theory and Application of Graph Transformations
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)
Object Oriented Design Pattern Inference
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Fuzzy logic based interactive recovery of software design
Proceedings of the 24th International Conference on Software Engineering
Visualizing model mappings in UML
Proceedings of the 2003 ACM symposium on Software visualization
Efficient Relational Calculation for Software Analysis
IEEE Transactions on Software Engineering
A practical pattern recovery approach based on both structural and behavioral analysis
Journal of Systems and Software - Special issue: Software engineering education and training
Measuring precision for static and dynamic design pattern recognition as a function of coverage
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Relational programming with CrocoPat
Proceedings of the 28th international conference on Software engineering
Recognizing behavioral patterns atruntime using finite automata
Proceedings of the 2006 international workshop on Dynamic systems analysis
Automatic detection of incomplete instances of structural patterns in UML class diagrams
Nordic Journal of Computing
Reverse-engineering 1-n associations from Java bytecode using alias analysis
Information and Software Technology
Experiments on Design Pattern Discovery
PROMISE '07 Proceedings of the Third International Workshop on Predictor Models in Software Engineering
Identifying Data Transfer Objects in EJB Applications
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Visualizing Design Patterns in Their Applications and Compositions
IEEE Transactions on Software Engineering
Integrated Computer-Aided Engineering
Towards Roundtrip Engineering - A Template-Based Reverse Engineering Approach
ECMDA-FA '08 Proceedings of the 4th European conference on Model Driven Architecture: Foundations and Applications
Software Engineering
Formal Foundation for Pattern-Based Modelling
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Design pattern recovery through visual language parsing and source code analysis
Journal of Systems and Software
Supporting Program Comprehension for Refactoring Operations with Annotations
Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06
A Specification Language for Static Analysis of Student Exercises
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Formal specification of the variants and behavioural features of design patterns
Journal of Systems and Software
Design pattern recovery based on annotations
Advances in Engineering Software
A matrix-based approach to recovering design patterns
IEEE Transactions on Systems, Man, and Cybernetics, Part A: Systems and Humans
Design pattern evolutions in QVT
Software Quality Control
Graph-based verification of static program constraints
Proceedings of the 2010 ACM Symposium on Applied Computing
Information and Software Technology
Reverse engineering with the reclipse tool suite
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Generating a catalog of unanticipated schemas in class hierarchies using Formal Concept Analysis
Information and Software Technology
A tool for design pattern detection and software architecture reconstruction
Information Sciences: an International Journal
An architecture-centric approach to detecting security patterns in software
ESSoS'11 Proceedings of the Third international conference on Engineering secure software and systems
Combining clustering and pattern detection for the reengineering of component-based software systems
Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools
Understanding the relevance of micro-structures for design patterns detection
Journal of Systems and Software
Controlling software architecture erosion: A survey
Journal of Systems and Software
The SOUL tool suite for querying programs in symbiosis with Eclipse
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
E-CARES project: reengineering of telecommunication systems
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Using ontology reasoning for reverse engineering design patterns
MODELS'09 Proceedings of the 2009 international conference on Models in Software Engineering
Language-independent detection of object-oriented design patterns
Computer Languages, Systems and Structures
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
Hi-index | 0.01 |
A method and a corresponding tool is described which assist design recovery and program understanding by recognising instances of design patterns semi-automatically. The approach taken is specifically designed to overcome the existing scalability problems caused by many design and implementation variants of design pattern instances. Our approach is based on a new recognition algorithm which works incrementally rather than trying to analyse a possibly large software system in one pass without any human intervention. The new algorithm exploits domain and context knowledge given by a reverse engineer and by a special underlying data structure, namely a special form of an annotated abstract syntax graph. A comparative and quantitative evaluation of applying the approach to the Java AWT and JGL libraries is also given.