2013 20th Working Conference on Reverse Engineering (WCRE) (1998)
Oct. 12, 1998 to Oct. 14, 1998
Richard C. Holt , University of Waterloo
Software architecture is typically drawn as a nested set of box and arrow diagrams. The boxes represent components of the software system and the edges represent interactions. These diagrams correspond to typed graphs, in which there are a number of “types” or “colors” of edges, and in which there is a distinguished “contain” relation that represents the system hierarchy (the nesting of boxes). During reverse engineering, one often transforms such diagrams in various ways to make them easier to understand. These transformations include edge aggregation, box abstraction (closing a box to hide its contents), and box separation (separating a box from its surrounding system). Such transformations are essential in helping make software architecture diagrams useful in practice.This paper shows how structural manipulations such as these can be specified and automatically carried out in a notation based on Tarski's relational algebra. The operators in this algebra include relational composition, union, subtraction, etc. These operators are supported in a language called Grok. Grok scripts have been used in manipulating the graphs for large-scale software systems, such as Linux, to help in program visualization and understanding.
Richard C. Holt, "Structural Manipulations of Software Architecture Using Tarski Relational Algebra", 2013 20th Working Conference on Reverse Engineering (WCRE), vol. 00, no. , pp. 210, 1998, doi:10.1109/WCRE.1998.723191