A Process Algebraic Approach to Software Architecture Design - Aldini, Alessandro; Bernardo, Marco; Corradini, Flavio (Springer London : Imprint: Springer, 2010)
Concurrency theory, software architecture, system modeling and verification, and dependability and performance evaluation may seem unrelated disciplines, but in reality they are deeply intertwined and should be part of an integrated view in order to successfully manage the increasing complexity of software systems today. This book introduces a process algebraic approach to software architecture design. Process algebra, originally conceived for reasoning about the semantics of concurrent programs, provides a foundational basis for the modeling and verification of functional and nonfunctional aspects of communicating concurrent systems. This can be exploited at the software architecture level of design to improve the formality of design documents and make possible the analysis of system properties at the early design stages. The first part of the book offers an overview of the concepts and results of process algebra theory providing background material on the syntax and semantics for process calculi as well as on the bisimulation, testing, and trace approaches to the definition of behavioral equivalences for nondeterministic, deterministically timed, and stochastically timed processes. Part two gives guidelines for a principled transformation of process algebra into an architectural description language, before demonstrating how to use process algebraic techniques to address the detection of architecture-level mismatches, performance-driven selection among alternative designs, and the achievement of a tradeoff between dependability features and performance indices. Graduate students and software professionals, will find A Process Algebraic Approach to Software Architecture Design a useful addition to their bookshelf.