Advanced

Tool support for design patterns using specification with reference attributed grammars

Cornils, Aino and Hedin, Görel LU (2000) In Third Workshop on Attribute Grammars and their Applications WAGA'00
Abstract
Design patterns are abstract descriptions of solutions to often recurring problems. They are a means to communicate experience in design. Over the past years, along with the increase in popularity of object-oriented design patterns, some problems with the use of them have been identified. One of these lies in documenting software systems using design patterns. Experience has shown that both in the initial design, and especially in later code revisions, it is all too easy for code and documentation to diverge, rendering the documentation misleading and the code inconsistent. In this paper we present a flexible and extensible tool which enables designers to use design patterns in a safe and easy way and which semi-automatically documents and... (More)
Design patterns are abstract descriptions of solutions to often recurring problems. They are a means to communicate experience in design. Over the past years, along with the increase in popularity of object-oriented design patterns, some problems with the use of them have been identified. One of these lies in documenting software systems using design patterns. Experience has shown that both in the initial design, and especially in later code revisions, it is all too easy for code and documentation to diverge, rendering the documentation misleading and the code inconsistent. In this paper we present a flexible and extensible tool which enables designers to use design patterns in a safe and easy way and which semi-automatically documents and maintains the documentation of a software system. The system is implemented using reference attributed grammars (RAGs) which are capable of describing non-local dependencies. Both the programming language and the design patterns are specified using RAGs, and reference attributes are used for connecting design pattern instances to the corresponding elements in the program code. (Less)
Please use this url to cite or link to this publication:
author
organization
publishing date
type
Chapter in Book/Report/Conference proceeding
publication status
published
subject
in
Third Workshop on Attribute Grammars and their Applications WAGA'00
publisher
INRIA Rocquencourt France
language
English
LU publication?
yes
id
f5f80925-06ef-43c3-93b8-06f5f3158e2f (old id 526451)
date added to LUP
2007-09-13 14:09:32
date last changed
2016-04-16 08:57:40
@inproceedings{f5f80925-06ef-43c3-93b8-06f5f3158e2f,
  abstract     = {Design patterns are abstract descriptions of solutions to often recurring problems. They are a means to communicate experience in design. Over the past years, along with the increase in popularity of object-oriented design patterns, some problems with the use of them have been identified. One of these lies in documenting software systems using design patterns. Experience has shown that both in the initial design, and especially in later code revisions, it is all too easy for code and documentation to diverge, rendering the documentation misleading and the code inconsistent. In this paper we present a flexible and extensible tool which enables designers to use design patterns in a safe and easy way and which semi-automatically documents and maintains the documentation of a software system. The system is implemented using reference attributed grammars (RAGs) which are capable of describing non-local dependencies. Both the programming language and the design patterns are specified using RAGs, and reference attributes are used for connecting design pattern instances to the corresponding elements in the program code.},
  author       = {Cornils, Aino and Hedin, Görel},
  booktitle    = {Third Workshop on Attribute Grammars and their Applications WAGA'00},
  language     = {eng},
  publisher    = {INRIA Rocquencourt France},
  title        = {Tool support for design patterns using specification with reference attributed grammars},
  year         = {2000},
}