Abstract | Software engineers informally use block diagrams with boxes and lines to express system architectures. Diagrammatic representations of this type are also found in many specification techniques. However, rarely are architectural documents containing such representations systematically maintained; as a system evolves, architectural documents become obsolete, and the design history of the system is ultimately lost. Additionally, box-and-line representations used in these documents do not possess a precise semantics invariant across the different techniques that rely on them. This paper addresses expression of system evolution at the architectural level based on a formal model of box-and-line diagrams. The formal model (a) provides semantic uniformity and precision; and (b) allows evolutionary steps to be represented as structural transformations. Interesting classes of such transformations are characterized in terms of the underlying operators. With these tools, the architectural evolution of a system is captured as a directed acyclic graph of baselines, where each baseline consists of a system of box-and-line diagrams, and is mapped to a successor baseline by a set of structural transformations. It is also shown how familiar design concepts - such as extension, abstraction, and structural refinement - can be formalized in simple terms within the framework developed. |
---|