The Computer Journal
Rigi-A system for programming-in-the-large
ICSE '88 Proceedings of the 10th international conference on Software engineering
LaSSIE—a knowledge-based software information system
ICSE '90 Proceedings of the 12th international conference on Software engineering
Program understanding and the concept assignment problem
Communications of the ACM
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Monitoring compliance of a software system with its high-level design models
Proceedings of the 18th international conference on Software engineering
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Applying hypertext structures to software documentation
Information Processing and Management: an International Journal - Special issue: methods and tools for the automatic construction of hypertext
ICSE '94 Proceedings of the 16th international conference on Software engineering
Shimba—an environment for reverse engineering Java software systems
Software—Practice & Experience
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Coping with Crosscutting Software Changes Using Information Transparency
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Chava: Reverse Engineering and Tracking of Java Applets
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Theme: An Approach for Aspect-Oriented Analysis and Design
Proceedings of the 26th International Conference on Software Engineering
Towards supporting on-demand virtual remodularization using program graphs
Proceedings of the 5th international conference on Aspect-oriented software development
Replaying development history to assess the effectiveness of change propagation tools
Empirical Software Engineering
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Identifying Data Transfer Objects in EJB Applications
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Documenting after the fact: Recovering architectural design decisions
Journal of Systems and Software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design rationale: Researching under uncertainty
Artificial Intelligence for Engineering Design, Analysis and Manufacturing
Incremental Latent Semantic Indexing for Automatic Traceability Link Evolution Management
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Human and program factors affecting the maintenance of programs with deployed design patterns
Information and Software Technology
A methodology to assess the impact of design patterns on software quality
Information and Software Technology
Assessing the value of architectural information extracted from patterns for architecting
EASE'06 Proceedings of the 10th international conference on Evaluation and Assessment in Software Engineering
Hi-index | 0.00 |
A developer attempting to evolve a system in which design patterns have been applied can benefit from knowing which code implements which design pattern. For instance, the developer may be able to understand the purpose, or to assess the flexibility of the code, more quickly. The degree to which the developer benefits depends upon their understanding of the pattern. Achieving an in-depth understanding of even a simple pattern can be difficult as pattern descriptions span several pages of text, and discuss interrelated design concepts and choices. To enable a developer to effectively trace the design goals associated with a pattern to and from source, we have developed the Design Pattern Rationale Graph (DPRG) approach and associated tool. A DPRG makes explicit the relationships between design concepts in a design pattern, provides a graphical representation of the design pattern text, and supports the linking of those concepts to implementing code. In this paper, we introduce the DPRG approach and tool, and present case studies to show that a DPRG can, at low-cost, help a developer identify design goals in a pattern, and can improve a developer's confidence about how those goals are realized in a code base.