Structural Manipulations of Software Architecture Using Tarski Relational Algebra

  • Authors:
  • Richard C. Holt

  • Affiliations:
  • -

  • Venue:
  • WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.