Static Verification of Indirect Data Sharing in Loosely-coupled Component Systems

To maintain loose coupling and facilitate dynamic composition, components in a pipe-and-filter architecture have a very limited syntactic interface and often communicate indirectly by means of a shared data repository. This severely limits the possibilities for compile time compatibility checking. Even static type checking is made largely irrelevant due to the very general types given in the interfaces. The combination of pipe-and-filter and a shared data repository is widely used, and in this paper we study this problem in the context of the Struts framework. We propose simple, but formally specified, behavioural contracts for components in such frameworks and show that automated formal verification of certain semantical compatibility properties is feasible. In particular, our verification guarantees that indirect data sharing through the shared data repository is performed consistently.

[1]  Frank Piessens,et al.  Safe concurrency for aggregate objects with invariants , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[2]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

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

[4]  Mehmet Aksit,et al.  Software Architectures and Component Technology , 2001 .

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

[6]  Frank Piessens,et al.  Static Verification of Code Access Security Policy Compliance of .NET Applications , 2006, J. Object Technol..

[7]  Jean-Louis Lanet,et al.  Enforcing High-Level Security Properties for Applets , 2004, CARDIS.

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

[9]  James Ivers,et al.  A Basis for Composition Language CL , 2002 .

[10]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, International Journal on Software Tools for Technology Transfer.

[11]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

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

[13]  Wouter Joosen,et al.  Dependency analysis of the GatorMail webmail application , 2005 .

[14]  Paola Inverardi,et al.  Automatic synthesis of deadlock free connectors for COM/DCOM applications , 2001, ESEC/FSE-9.

[15]  Oscar Nierstrasz,et al.  APPLICATIONS = COMPONENTS + SCRIPTS A tour of Piccola , 2001 .

[16]  Stephen Gilmore,et al.  Mobile Resource Guarantees for Smart Devices , 2004, CASSIS.