A Formalization of Software Architecture [chapter]

John Herbert, Bruno Dutertre, Robert Riemenschneider, Victoria Stavridou
1999 Lecture Notes in Computer Science  
Software architecture addresses the high level specification, design and analysis of software systems. Formal models can provide essential 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
more » ... 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 simple 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. Given a property measured by rationals and multiplicative, for example probability of dropping data, then the appropriate definition would be: PROB_LOSS(portA,portB,NR) :bool = PROP(LAMBDA (a,b:rat): a*b)(portA,portB,NR) By implementing the general pattern of inter-port measurement using PROP one can cover a number of properties.
doi:10.1007/3-540-48119-2_9 fatcat:3me2chi4sbhj5bmjlg4ppktmry