A scalable approach to the design of SW architectures with dynamically created/destroyed components
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Stochastic Process Algebra: From an Algebraic Formalism to an Architectural Description Language
Performance Evaluation of Complex Systems: Techniques and Tools, Performance 2002, Tutorial Lectures
ACM SIGSOFT Software Engineering Notes
Fluent temporal logic for discrete-time event-based models
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
ACM SIGSOFT Software Engineering Notes
π-Method: a model-driven formal method for architecture-centric software engineering
ACM SIGSOFT Software Engineering Notes
Deriving event-based transition systems from goal-oriented requirements models
Automated Software Engineering
Handling dynamic behaviour in software architectures
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
Hi-index | 0.00 |
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.