"Functional Representation of Executable Software Architectures"

December 1, 1995

Software architectures specify how high-level system components interact and behave. Architecture evolution tasks require knowing an architecture's design intentions. Existing architecture description languages (ADL's), however, specify architectures without reference to intentions. We describe the use of Functional Representation to capture understanding of design intentions and their implementation in an architecture. This approach will reduce the cost of designing, evolving, and implementing architectures by improving human communication, and by providing more useful tools and environments. Applications include prototyping, dynamic documentation, design verification, simulation, execution analysis, and other architecture activities.

Chandrasekaran's Functional Representation is used to connect design intentions to an architecture's ADL specifications. The result is a rich, hierarchical explanatory structure which is useful for many purposes. Functional Representation is a theory and language for reasoning about functionality and causal processes in devices. It has been successfully applied to a large variety of tasks and devices, including software. Luckham's Rapide is an executable ADL based on a rule-event execution model. FR-Rapide applies Functional Representation to aid architecture prototyping with Rapide.

An example functional representation captures understanding of how part of the Two-Phase Commit protocol is implemented in a Rapide prototype. Its explanation incorporates understanding in domains such as transaction processing, the X/Open standard, concurrent computing, and distributed computing. The FR is a formal representation which helps humans understand and communicate about the architecture. It also allows understanding to be delivered and exploited by tools and environments.

The value of this approach is demonstrated with an explanation tool which supports Rapide prototyping and other architecture activities which can benefit from captured understanding. Applications and tools include browsing, documentation, debugging, simulation, design verification, and rationale capture.


Web Master
Original: 1-Dec-1994
Update: 2-Dec-1994