Software architecture addresses the high level specification,
design and analysis of software systems. Formal models can provide es-
sential underpinning for architectural description languages (ADLs), and
formal techniques can play an important role in analysis.
While formal models and formal analysis may always enhance conventional notations and methods, they are of greatest benefit when they employ tractable models and efficient, mechanisable techniques. The novelty
in our work has been in the effort to find and mechanise a general semantic framework for software architectures that can provide tractable
models and support architectural formal analysis.
The resultant semantic framework is a layered one: the core is a sim-
ple model of the elements and topology, which provides the basis for
general architectural theorems and proof techniques; the structural core
is augmented by semantic layers representing the semantics of relevant
properties of the design.
The model has been implemented in the higher-order logic proof tool
PVS, and has been used in correctness proofs during a case study of a
distributed transaction protocol.