Bounding component behavior via protocols

We enhance the SOFA Component Description Language with a semantic description of a component's functionality. There are two key requirements this description aims to address: first, it should ensure correct composition of the nested architectural abstractions (for design purposes); second, it should be easy-to-read so that an average user can identify a component with the correct semantics for the purposes of component trading. The semantic description in SOFA expresses the behavior of the component in terms of behavior protocols using a notation similar to regular expressions which is easy to read and comprehend. The behavior protocols are used on three levels: interface, frame, and architecture. The key achievements of the paper include the definition of the protocol conformance relation. Using this relation, the designer can in most cases statically verify that the frame protocol adheres to the requirements of the interface protocols, and that the architecture protocol adheres to the requirements of the frame and interface protocols.

[1]  Oscar Nierstrasz,et al.  Towards a formal composition language , 1997 .

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

[3]  Michael Stal,et al.  An architectural view of distributed objects and components in CORBA, Java RMI and COM/DCOM , 1998, Softw. Concepts Tools.

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

[5]  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).

[6]  Franz Puntigam Types for Active Objects Based on Trace Semantics , 1997 .

[7]  Valérie Issarny,et al.  Characterizing coordination architectures according to their non-functional execution properties , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[8]  T. Richner Understanding Object-Oriented Programs with Declarative Event Analysis , 1998 .

[9]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[10]  Tamar Richner Describing Framework Architectures: more than Design Patterns , 1998 .

[11]  Jeannette M. Wing,et al.  Specification matching of software components , 1995, TSEM.

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

[13]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[14]  Petr Tuma,et al.  Lessons learned from implementing the CORBA persistent object service , 1996, OOPSLA '96.

[15]  Naranker Dulay,et al.  Regis: a constructive development environment for distributed programs , 1994, Distributed Syst. Eng..

[16]  Dieter Hogrefe,et al.  SDL : formal object-oriented language for communicating systems , 1997 .

[17]  Jan van den Bos,et al.  PROCOL - A Parallel Object Language with Protocols , 1989, OOPSLA.

[18]  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).

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

[20]  Akinori Yonezawa,et al.  Type-theoretic foundations for concurrent object-oriented programing , 1994, OOPSLA 1994.

[21]  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 .

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

[23]  Akinori Yonezawa,et al.  Type-Theoretic Foundations for Concurrent Object-Oriented Programming , 1994, OOPSLA.

[24]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[25]  Serge Demeyer,et al.  Class Composition for Specifying Framework Design , 1999, Theory Pract. Object Syst..

[26]  Daniel M. Yellin,et al.  Interfaces, protocols, and the semi-automatic construction of software adaptors , 1994, OOPSLA '94.

[27]  J. van den Bos,et al.  PROCOL - A Parallel Object Language with Protocols , 1989, OOPSLA.

[28]  Valérie Issarny,et al.  Achieving middleware customization in a configuration-based development environment: experience with the Aster prototype , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

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

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

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

[32]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[33]  Stéphane Ducasse,et al.  Understanding Object-Oriented Programs through Declaratice Event Analysis , 1998, ECOOP Workshops.

[34]  Chris Dollin,et al.  Object-oriented development: the fusion method , 1994 .

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

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

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

[38]  Mark Woodman,et al.  Introduction to VDM , 1993 .

[39]  Franz Puntigam,et al.  Coordination Requirements Expressed in Types for Active Objects , 1997, ECOOP.

[40]  Stéphane Ducasse,et al.  Executable connectors: towards reusable design elements , 1997, ESEC '97/FSE-5.

[41]  Manfred Broy,et al.  What characterizes a (software) component? , 1998, Softw. Concepts Tools.