Synopses & Reviews
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.
Synopsis
The design and the verification of modern software applications requires the analysis of several different aspects, such as software correctness, quality of service, and security, and of the possible inter-relations among them. Process algebraic architectural languages and the related analysis techniques provide a formal paradigm that allows for the modeling and analysis of such systems and of the related properties during the early stages of the design process. The book presents such a paradigm in a novel way that privileges the discussion of its foundational characteristics and then introduces a number of guidelines, integrated with ad-hoc methodologies and exemplifying case studies, to support the practical benefits of using such a paradigm. The book can be of help for both researchers and graduate students who intend to approach the process algebraic formal paradigm and for the practitioners who intend to apply the related approach to software design and verification.
Synopsis
Inthe?eldofformalmethodsincomputerscience, concurrencytheoryisreceivinga constantlyincreasinginterest.Thisisespeciallytrueforprocessalgebra.Althoughit had been originally conceived as a means for reasoning about the semantics of c- current programs, process algebraic formalisms like CCS, CSP, ACP, ?-calculus, and their extensions (see, e.g., 154,119,112,22,155,181,30]) were soon used also for comprehendingfunctionaland nonfunctionalaspects of the behaviorof com- nicating concurrent systems. The scienti?c impact of process calculi and behavioral equivalences at the base of process algebra is witnessed not only by a very rich literature. It is in fact worth mentioningthe standardizationprocedurethat led to the developmentof the process algebraic language LOTOS 49], as well as the implementation of several modeling and analysis tools based on process algebra, like CWB 70] and CADP 93], some of which have been used in industrial case studies. Furthermore, process calculi and behavioral equivalencesare by now adopted in university-levelcourses to teach the foundations of concurrent programming as well as the model-driven design of concurrent, distributed, and mobile systems. Nevertheless, after 30 years since its introduction, process algebra is rarely adopted in the practice of software development. On the one hand, its technica- ties often obfuscate the way in which systems are modeled. As an example, if a process term comprises numerous occurrences of the parallel composition operator, it is hard to understand the communicationscheme among the varioussubterms. On the other hand, process algebra is perceived as being dif?cult to learn and use by practitioners, as it is not close enough to the way they think of software systems.
Synopsis
This book presents a new paradigm that allows modeling and analysis of software applications at an early stage of the design process. It covers foundational aspects before introducing guidelines and methodologies to exemplify case studies.
Table of Contents
Part I: Process Calculi and Behavioral Equivalences Process Algebra Deterministically Timed Process Algebra Stochastically Timed Process Algebra Part II: Process Algebra for Software Architecture Component-Oriented Modeling Component-Oriented Functional Verification Component-Oriented Performance Evaluation Trading Dependability and Performance References Index