Software architecture abstraction and aggregation as algebraic manipulations

  • Authors:
  • Richard C. Holt

  • Affiliations:
  • Dept. of Computer Science, University of Waterloo, Waterloo ON N2L 3G1 Canada

  • Venue:
  • CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

The structure of a large system can be made comprehensible if it can be viewed as a modest number of interacting entities. For example, the 800,000 line Linux kernel can be reasonably viewed as its five top-level interconnected subsystems. Each abstracted entity (subsystem) may have aggregated attributes, e.g., the total count of the number of lines of code in it, or the set of programmers who have worked on it. Given that the software architecture of the system is represented as a typed graph, both abstraction (ignoring details inside subsystems) and aggregation (collecting selected internal information) can be specified as algebraic manipulations. Our approach, based on Tarski relational algebra, allows direct execution of these abstraction and aggregation specifications by means of a relational calculator.