2000 · 40 citations · 12 references
ComputingComputer ScienceDesign AutomationFormal MethodsSystems ArchitectureSoftware ArchitectureSoftware DesignSoftware ModelingSoftware RefactoringArchitectural RefactoringGraph RewritingGraph TransformationVisual Notation
In order to understand, analyze and possibly modify software, we commonly examine and manipulate its architecture. For example, we may want to examine the architecture at different levels of abstraction or repair the architecture if it has deviated from our mental model of the software. We can view such manipulations as architectural transformations, and more specifically, as graph transformations. In this paper, we use graph rewriting to specify these transformations so that we can work towards automating them. Specifically, we use the PROGRES tool to formulate executable graph-rewriting specifications for various architectural transformations in order to demonstrate the strengths of using graph rewriting. We have applied our executable specifications to small graphs and our results confirm that graph rewriting offers a high-level visual notation that can be used to neatly specify graph modifications, as well as supporting prototype implementations. It also provides a convenient and intuitive framework for exploring various architectural transformations.
12
Gail C. Murphy, David Notkin, Kevin Sullivan · 1995 · 476 citations
Ivan T. Bowman, Richard C. Holt, Neil V. Brewster · 1999 · 201 citations
John L. Pfaltz, Azriel Rosenfeld · International Joint Conference on Artificial Intelligence · 1969 · 183 citations