Compatibility and inheritance in software architectures

The application of formal methods to the development of software depends on the availability of adequate models and formalisms for each of the stages of the development process. In this work, we focus on the level of design called Software Architecture. At this level, the system is described as a collection of interrelated components, and it is here where the properties derived from the system’s structure can be naturally analyzed. Our approach uses process algebras as a formal basis for the description and analysis of software architectures. Process algebras are widely accepted for the speci8cation of software systems. In particular, � -calculus addresses the description of systems with a dynamic or evolving topology, and permits their analysis for bisimilarity and other interesting properties. Though bisimilarity determines the equivalence of behavior, more :exible relations are needed in the context of Software Engineering, in order to support formally the notions of conformance and re8nement of behavior. In this paper we present a relation of compatibility in the context of � -calculus which formalizes the notion of conformance of behavior between software components. Our approach is enhanced with the de8nition of a relation of inheritance among processes. This relation preserves compatibility and indicates whether a process can be considered as a specialization or extension of another one. The suitability of our approach is shown by its application to the 8eld of Software Architecture. c 2001 Elsevier Science B.V. All rights reserved.

[1]  Jan A. Bergstra,et al.  The Discrete Time TOOLBUS - A Software Coordination Architecture , 1998, Science of Computer Programming.

[2]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[3]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[4]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[5]  Faron Moller,et al.  The Mobility Workbench - A Tool for the pi-Calculus , 1994, CAV.

[6]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[7]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[8]  Paola Inverardi,et al.  Uncovering Architectural Mismatch in Component Behavior , 1999, Sci. Comput. Program..

[9]  Dimitra Giannakopoulou,et al.  Behaviour Analysis of Software Architectures , 1999, WICSA.

[10]  Luca Aceto,et al.  Termination, Deadlock and Divergence , 1989, Mathematical Foundations of Programming Semantics.

[11]  G. Boudol,et al.  Notes on Algebraic Calculi of Processes , 1989, Logics and Models of Concurrent Systems.

[12]  Luca Aceto,et al.  Adding Action Refinement to a Finite Process Algebra , 1994, Inf. Comput..

[13]  Daniel M. Yellin,et al.  Protocol specifications and component adaptors , 1997, TOPL.

[14]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[15]  Marco Pistore,et al.  A partition refinement algorithm for the π-calculus , 1996, CAV 1996.

[16]  José M. Troya,et al.  Specification and Refinement of Dynamic Software Architectures , 1999, WICSA.

[17]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[18]  Arend Rensink,et al.  Action Refinement as an Implementation Relations , 1997, TAPSOFT.

[19]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[20]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[21]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[22]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[23]  Marco Pistore,et al.  A Partition Refinement Algorithm for the -Calculus , 2001, Inf. Comput..

[24]  Lidia Fuentes,et al.  Extending CORBA interfaces with /spl pi/-calculus for protocol compatibility , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[25]  Paolo Ciancarini,et al.  A Logic for a Coordination Model with Multiple Spaces , 1998, Sci. Comput. Program..

[26]  Daniel Le Métayer Describing Software Architecture Styles Using Graph Grammars , 1998, IEEE Trans. Software Eng..

[27]  Jeff Magee,et al.  Modelling Darwin in the Pi-Caculus , 1994, Dagstuhl Seminar on Distributed Systems.

[28]  Oscar Nierstrasz,et al.  Research directions in software composition , 1995, CSUR.

[29]  Nenad Medvidovic,et al.  Domains of Concern in Software Architectures and Architecture Description Languages , 1997, DSL.

[30]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[31]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[32]  Carlos Canal,et al.  Specification of Interacting Software Components : a Case Study , 1999 .

[33]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[34]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[35]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.