Architecting Software Systems with Process Algebras

  • Authors:
  • M. Bernardo;P. Ciancarini;L. Donatiello

  • Affiliations:
  • -;-;-

  • Venue:
  • Architecting Software Systems with Process Algebras
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Correct software components can give rise to architectural mismatches when assembled together in order to form a complex software system. The causes of architectural mismatches leading to system blocks can be different: incompatibility between two components due to a single interaction, incompatibility between two components due to the combination of several interactions, or lack of interoperability among a set of components forming a cyclic topology. A formal description of the architecture of a complex software system helps to detect the presence of mismatches that can arise when assembling its software components together. In this paper we develop an architectural description language inspired by Wright that provides a uniform, process algebraic framework in which all the causes of architectural mismatch above can be dealt with by means of standard observational equivalences. We begin with the first two causes by introducing an architectural compatibility check based on observational equivalences, which ensures the absence of deadlock within a set of components interacting with a given component and guarantees the absence of deadlock for a whole architecture in case of acyclic topology. The adequacy of our architectural compatibility check is assessed on a compressing proxy system. We subsequently concentrate on the third cause by defining an architectural interoperability check based on observational equivalences, which guarantees the absence of deadlock within a set of interacting components forming a cyclic topology. The adequacy of our architectural interoperability check is assessed on a cruise control system. Our process algebra based architectural description language also addresses the problem of formalizing and analyzing architectural styles, as they convey codified principles and experience that help the construction of complex software systems with high levels of efficiency and confidence. As a step towards the formal representation of architectural styles while preserving the effectiveness of the architectural compatibility and interoperability checks in our framework, we introduce the intermediate abstraction of architectural type and we present an architectural conformity check based on observational equivalences, which efficiently verifies whether an architecture is an instance of an architectural type.