Behavior Protocols for Software Components

In this paper, we propose a means to enhance an architecture description language with a description of component behavior. A notation used for this purpose should be able to express the "interplay" on the component's interfaces and reflect step-by-step refinement of the component's specification during its design. In addition, the notation should be easy to comprehend and allow for formal reasoning about the correctness of the specification refinement and also about the correctness of an implementation in terms of whether it adheres to the specification. Targeting all these requirements together, the paper proposes employing behavior protocols which are based on a notation similar to regular expressions. As proof of the concept, the behavior protocols are used in the SOFA architecture description language at three levels: interface, frame, and architecture. Key achievements of this paper include the definitions of bounded component behavior and protocol conformance relation. Using these concepts, the designer can verify the adherence of a component's implementation to its specification at runtime, while the correctness of refining the specification can be verified at design time.

[1]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[2]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[3]  Robert J. Allen A formal approach to software architecture , 1997 .

[4]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[5]  Dimitra Giannakopoulou,et al.  Model checking for concurrent software architectures , 1999 .

[6]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[7]  Frantisek Plasil,et al.  Inheriting Synchronization Protocols via Sound Enrichment Rules , 1997, JMLC.

[8]  Antonio Vallecillo,et al.  New Issues in Object Interoperability , 2000, ECOOP Workshops.

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

[10]  Oscar Nierstrasz,et al.  Requirements for a Composition Language , 1994, ECOOP Workshop.

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

[12]  Ralf H. Reussner Enhanced component interfaces to support dynamic adaption and extension , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[13]  Rob J. van Glabbeek,et al.  The Linear Time-Branching Time Spectrum (Extended Abstract) , 1990, CONCUR.

[14]  Jan van Leeuwen,et al.  Formal models and semantics , 1990 .

[15]  Manfred Broy A Logical Basis for Modular Software and Systems Engineering , 1998, SOFSEM.

[16]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum I , 2001, Handbook of Process Algebra.

[17]  Frantisek Plasil,et al.  Bounding component behavior via protocols , 1999, Proceedings of Technology of Object-Oriented Languages and Systems - TOOLS 30 (Cat. No.PR00278).

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

[19]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[20]  Antonio Vallecillo,et al.  Object Interoperability , 1999, ECOOP Workshops.

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

[22]  Gert Florijn Object Protocols as Functional Parsers , 1995, ECOOP.

[23]  Hans-Erik Eriksson,et al.  UML toolkit , 1997 .

[24]  Ralf H. Reussner,et al.  Generating Adapters for Concurrent Component Protocol Synchronisation , 2002, FMOODS.

[25]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[26]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[27]  Bran Selic Protocols and ports: reusable inter-object behavior patterns , 1999, Proceedings 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99) (Cat. No.99-61702).

[28]  Jan van den Bos,et al.  A concurrent object-oriented language with protocols delegation and constraints , 2005 .

[29]  Frantisek Plasil,et al.  SOFA/DCUP: architecture for component trading and dynamic updating , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[30]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[31]  Shing-Chi Cheung,et al.  Behaviour Analysis of Distributed Systems Using the Tracta Approach , 2004, Automated Software Engineering.

[32]  Oscar Nierstrasz,et al.  Regular types for active objects , 1993, OOPSLA '93.

[33]  José M. Troya,et al.  Compatibility and inheritance in software architectures , 2001, Sci. Comput. Program..