Currently there is a lot of interest in graph representations of software systems, as they provide a natural and flexible means to describe complex structures. The various visual sublanguages of the UML are perhaps the most obvious example of this. In 11 a graph representation of object-oriented programs was presented that enables one to describe refactoring operations (behaviour-preserving changes in the structure of a program) in a formal, concise way by graph rewriting productions. In general, however, a refactoring makes changes to a small part of a program, so the graph representation should only contain the information needed to carry out that refactoring. All other details are redundant and make the graph unnecessarily large for good visualization. A possible solution consists in using a hierarchical representation. Such a representation of object-oriented programs is presented in this paper. It is based on node-rewriting graph productions: each refinement step corresponds to a production. The construction is illustrated by applying it to a small Java simulation of a Local Area Network.
%0 Journal Article
%1 vaneetvelde_03_hierarchical
%A Eetvelde, Niels Van
%A Janssens, Dirk
%B UNIGRA'03, Uniform Approaches to Graphical Process Specification Techniques (Satellite Event for ETAPS 2003)
%D 2003
%J Electronic Notes in Theoretical Computer Science
%K refinement 2003 hierarchy refactoring
%N 7
%P 91--104
%R 10.1016/S1571-0661(04)80749-7
%T A Hierarchical Program Representation for Refactoring
%U http://dx.doi.org/10.1016/S1571-0661(04)80749-7
%V 82
%X Currently there is a lot of interest in graph representations of software systems, as they provide a natural and flexible means to describe complex structures. The various visual sublanguages of the UML are perhaps the most obvious example of this. In 11 a graph representation of object-oriented programs was presented that enables one to describe refactoring operations (behaviour-preserving changes in the structure of a program) in a formal, concise way by graph rewriting productions. In general, however, a refactoring makes changes to a small part of a program, so the graph representation should only contain the information needed to carry out that refactoring. All other details are redundant and make the graph unnecessarily large for good visualization. A possible solution consists in using a hierarchical representation. Such a representation of object-oriented programs is presented in this paper. It is based on node-rewriting graph productions: each refinement step corresponds to a production. The construction is illustrated by applying it to a small Java simulation of a Local Area Network.
@article{vaneetvelde_03_hierarchical,
abstract = {Currently there is a lot of interest in graph representations of software systems, as they provide a natural and flexible means to describe complex structures. The various visual sublanguages of the UML are perhaps the most obvious example of this. In [11] a graph representation of object-oriented programs was presented that enables one to describe refactoring operations (behaviour-preserving changes in the structure of a program) in a formal, concise way by graph rewriting productions. In general, however, a refactoring makes changes to a small part of a program, so the graph representation should only contain the information needed to carry out that refactoring. All other details are redundant and make the graph unnecessarily large for good visualization. A possible solution consists in using a hierarchical representation. Such a representation of object-oriented programs is presented in this paper. It is based on node-rewriting graph productions: each refinement step corresponds to a production. The construction is illustrated by applying it to a small Java simulation of a Local Area Network.},
added-at = {2009-02-11T22:20:57.000+0100},
author = {Eetvelde, Niels Van and Janssens, Dirk},
biburl = {https://www.bibsonomy.org/bibtex/2f3e943e56c0cc6b2d8c21755557549bf/leonardo},
booktitle = {UNIGRA'03, Uniform Approaches to Graphical Process Specification Techniques (Satellite Event for ETAPS 2003)},
citeulike-article-id = {2014112},
doi = {10.1016/S1571-0661(04)80749-7},
interhash = {4d543b00bc06f4406864243743b4176c},
intrahash = {f3e943e56c0cc6b2d8c21755557549bf},
journal = {Electronic Notes in Theoretical Computer Science},
keywords = {refinement 2003 hierarchy refactoring},
month = {June},
number = 7,
pages = {91--104},
posted-at = {2007-11-29 12:15:17},
priority = {4},
timestamp = {2009-02-11T22:20:57.000+0100},
title = {A Hierarchical Program Representation for Refactoring},
url = {http://dx.doi.org/10.1016/S1571-0661(04)80749-7},
volume = 82,
year = 2003
}