Using graph rewriting to specify software architectural transformations

H. Fahmy, R.C. Holt
2000 Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering  
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
more » ... 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 the following: Graph rewriting offers a high-level, visual notation that can be used to neatly specify graph modifications as well as support prototype implementation. It also provides a convenient and intuitive framework for exploring various architectural transformations.
doi:10.1109/ase.2000.873663 dblp:conf/kbse/FahmyH00 fatcat:x6alqo4tfvfgxcn4afiuzvitny