Design pattern rationale graphs: linking design to source
- 1 January 2003
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
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.Keywords
This publication has 11 references indexed in Scilit:
- Chava: reverse engineering and tracking of Java appletsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Rigi: a system for programming-in-the-largePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Monitoring compliance of a software system with its high-level design modelsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Software agingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- LaSSIE: a knowledge-based software information systemPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Shimba—an environment for reverse engineering Java software systemsSoftware: Practice and Experience, 2001
- Applying hypertext structures to software documentationInformation Processing & Management, 1997
- Program understanding and the concept assignment problemCommunications of the ACM, 1994
- Group support for the recording and sharing of maintenance rationaleSoftware Engineering Journal, 1993
- Literate ProgrammingThe Computer Journal, 1984