Reasoning about implicit invocation

Implicit invocation [SN92, GN91] has become an important architectural style for large-scale system design and evolution. This paper addresses the lack of specification and verification formalisms for such systems. Based on standard notions from process algebra and trace semantics, we define a formal computational model for implicit invocation. A verification methodology is presented that supports linear time temporal logic and compositional reasoning. First, the entire system is partioned into groups of components (methods) that behave independently. Then, local properties are proved for each of the groups. A precise description of the cause and the effect of an event supports this step. Using local correctness, independence of groups, and properties of the delivery of events, we infer the desired property of the overall system. Two detailed examples illustrate the use of our framework.

[1]  David Gelernter,et al.  On What Linda Is: Formal Description of Linda as a Reactive System , 1997, International Conference on Coordination Models and Languages.

[2]  Lori A. Clarke,et al.  A framework for event-based software integration , 1996, TSEM.

[3]  David Notkin,et al.  Reconciling environment integration and software evolution , 1992, TSEM.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

[6]  Kenneth P. Birman,et al.  Exploiting replication in distributed systems , 1990 .

[7]  David Notkin,et al.  Reconciling environment integration and component independence , 1990, SDE 4.

[8]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[9]  W-P de Roever,et al.  The quest for compositionality - a survey of assertion - based proof systems for concurrent programs. Part 1 ; concurrency based on shared variables , 1985 .

[10]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[11]  David Garlan,et al.  Using tool abstraction to compose systems , 1992, Computer.

[12]  Henri Jubin Javabeans by Example , 1998 .

[13]  Beverly A. Sanders Stepwise Refinement of Mixed Specifications of Concurrent Programs , 1990, Programming Concepts and Methods.

[14]  Adele Goldberg,et al.  Smalltalk-80 - the interactive programming environment , 1984 .

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

[16]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[17]  J Urgen Dingel Approximating Unity , 1997 .

[18]  Iso. Lotos,et al.  A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour , 1985 .

[19]  David Garlan,et al.  Formalizing Design Spaces: Implicit Invocation Mechanisms , 1991, VDM Europe.

[20]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[21]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[22]  E KrasnerGlenn,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[23]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[24]  David Garlan,et al.  Making Architectural Analysis Reasonable , 1998 .

[25]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.