Abstract
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.
- AAG95 G. Abowd, R. Allen, and D. Garlan. Formalizing style to understand descriptions of software architecture. ACM Transactions on Software Engineering and Methodology, October 1995. Google ScholarDigital Library
- BCTW96 D.J. Barrett, L.A. Clarke, P.L. Tar-r, and A.E. Wise. A framework for event-based software integration. ACM Transactions on Software Engineering and hfethodology, 5(4):37S-421, October 1996. Google ScholarDigital Library
- BG99 A. Berry and D. Garlan. Making architectural analysis reasonable. In Proceedings of First Ii'o&ing IFIP Conference on Software Architeture (WICSAl), February 1999. To appear.Google Scholar
- BJ89 K. Birman and Th. Joseph. Exploiting replication in distributed systems. In Mullender and Sape, editors, Distributed Systems, pages 319 - 365. Addison Wesley, 19S9. Google ScholarDigital Library
- BN84 A. Birrel and B. Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):356-372, February 1954. Google ScholarDigital Library
- CM88 KM. Chandy and J. Misra. Parallel program design: a foundation. Addison Wesley, 1988. Google ScholarDigital Library
- Cor91 The Common Object Request Broker: Architecture and specification. OMG Document Number 91.12.1, December 1991. Revision 1.1 (Draft 10).Google Scholar
- DGJN98 J. Dingel, D. Garlan, S. Jha, and D. Notkin. Towards a formal treatment of implicit invocation using rely/guarantee reasoning. Formal Aspects of Computing, 199s. To appear.Google Scholar
- Dij76 E.W. Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ, 1976. Google ScholarDigital Library
- Din97 J. Dingel. Approximating UNITY. In Second International Conference on Coordination Models and Languages, LNCS 1252, pages 320-337. Springer Verlag, September 1997. Google ScholarDigital Library
- dR85 W.P. de Roever. The quest for compositionality - a survey of assertion-based proof systems for concurrent programs. Part I: Concurrency based on shared variables. In E. J. Neuhold and G. C&oust, editors, Formal Methods in Programming. IFIP, Elsevier Science Publishers, 1955.Google Scholar
- Ger89 C. Gerety. HP Softbench: A new generation of software development tools. Technical Report SESD-89-25, Hewlett-Packard Software Engineering Systems Division, Fort Collins, Colorado, November 1989.Google Scholar
- GHJV95 E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Design. Addison-Wesley, 1995. Google ScholarDigital Library
- GKN92 D. Garlan, G.E. Kaiser, and D. Notkin. Using tool abstraction to compose systems. IEEE Computer, 25(6), June 1992. Google ScholarDigital Library
- GN91 D. Garlan and D. Notkin. Formalizing design spaces: Implicit invocation mechanisms. In VDM'91: Formal Software Development Methods, pages 31-44, Noordwijkerhout, The Netherlands, October 1991. Springer-Verlag, LNCS 551. Google ScholarDigital Library
- Gol84 A. Goldberg. Smalltalk- - The Interactive Programming Enwironment. Addison-Wesley, Reading, MA, 1984. Google ScholarDigital Library
- GZ97 D. Gelernter and L. Zuck. On what Iinda is: Formal description of Linda as a reactive system. In Second International Conference on Coordination Models and Languages, LNCS 1282, pages 187-204. Springer Verlag, September 1997. Google ScholarDigital Library
- Hoa69 C.A.R. Hoare. An axiomatic basis for computer programming. Communications of the ACM, 12(10), October 1969. Google ScholarDigital Library
- Hoa85 C.A.R. Hoare. Communicating Sequential Processes. Prentice Ha& 1985. Google ScholarDigital Library
- ISO87 ISO. Information processing systems - open systems interconnection - LOTOS - a formal description technique based on the temporal ordering of observational behaviour. Technical Report ISO/TC 97/SC 21, International Standards Organization, 1987.Google Scholar
- Jon83 C.B. Jones. Tentative steps toward a development method for interfering programs. Transactions on Programming Languages and Systems, 5(4):569+X9, October 1983. Google ScholarDigital Library
- Jub98 H. J&m. Javabeans by example. Upper Saddle River: Prentice Ha& 1998. Google ScholarDigital Library
- KP88 G.E. Kramer and S.T. Pope. A cookbook for using the model-view-controller user interface paradigm in SmaIItaIk-80. Journal of Object Oriented Programming, 1(3):26-49, August/September 1988. Google ScholarDigital Library
- Mil80 R. Mimer. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer Verlag, 1980.Google Scholar
- OG76 S. Owicki and D. Gries. Verifying properties of parahel programs: an axiomatic approach. Communications of the ACM, 19(5):279-284, May 1976. Google ScholarDigital Library
- Rei90 S.P. Reiss. Connecting tools using message passing in the FIELD program development environment. IEEE Software, July 1990. Google ScholarDigital Library
- San90 B.A. Sanders. Stepwise refinement of mixed specifications of concurrent programs. In M. Broy and C.B. Jones, editors, Proceedings of IFIP Working Conference on Programming and Methods, pages l-25. EIsevier Science Publishers (North Holland), May 1990.Google Scholar
- SN92 K. Sullivan and D. Notkin. Reconciling environment integration and component independence. ACM Transactions on Software Engineering and Methodology, l(3), July 1992. Google ScholarDigital Library
- Sun93 SunSoft. Tooltalk 1.1.1 Users's Guide, November 1993.Google Scholar
Index Terms
- Reasoning about implicit invocation
Recommendations
Types and modularity for implicit invocation with implicit announcement
Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when—under implicit invocation with ...
Evaluating and improving the automatic analysis of implicit invocation systems
Model checking and other finite-state analysis techniques have been very successful when used with hardware systems and less successful with software systems. It is especially difficult to analyze software systems developed with the implicit invocation ...
Reasoning about implicit invocation
SIGSOFT '98/FSE-6: Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineeringImplicit 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 ...
Comments