Abstract
A critical challenge faced by the developer of a software system is to understand whether the system's components correctly integrate. While type theory has provided substantial help in detecting and preventing errors in mismatched static properties, much work remains in the area of dynamics. In particular, components make assumptions about their behavioral interaction with other components, but currently we have only limited ways in which to state those assumptions and to analyze those assumptions for correctness. We have begun to formulate a method that addresses this problem. The method operates at the architectural level so that behavioral integration errors, such as deadlock, can be revealed early in development. For each component, a specification is given both of its own interaction behavior and of the assumptions that it makes about the interaction behavior of the external context in which it expects to operate. We have defined an algorithm that, given such specifications for a set of components, performs “adequacy” checks between the component context assumptions and the component interaction behaviors. A configuration of a system is possible if and only if a successful way of “matching” actual behaviors with assumptions can be found. In effect, we are extending the usual notion of type checking to include the checking of behavioral compatibility.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
R. Allen and D. Garlan. Formalizing Architectural Connection. In Proceedings of the 16th International Conference on Software Engineering, pages 71–80. IEEE Computer Society, May 1994.
R. Allen and D. Garlan. A Case Study in Architectural Modeling: The AEGIS System. In Proceedings of the 8th International Workshop on Software Specification and Design, pages 6–15. IEEE Computer Society, March 1996.
J.-P. Banitre and D. Le Métayer. The Gamma Model and its Discipline of Programming. Science of Computer Programming, 15:55–77, 1990.
J.-P. Banâtre and D. Le Métayer. Programming by Multiset Transformation. Communications of the ACM, 36(1):98–111, January 1993.
G. Berry and G. Boudol. The Chemical Abstract Machine. Theoretical Computer Science, 96:217–248, 1992.
G. Boudol. Some Chemical Abstract Machines. In A Decade of Concurrency, number 803 in Lecture Notes in Computer Science, pages 92–123. Springer-Verlag, May 1994.
R.H. Campbell and A.N. Habermann. The Specification of Process Synchronization by Path Expressions. In Proceedings of an International Symposium on Operating Systems, number 16 in Lecture Notes in Computer Science, pages 89–102. Springer-Verlag, April 1974.
D. Compare and P. Inverardi. Modelling Interoperability by CHAM: A Case Study. In Proceedings of the First International Conference on Coordination Models and Languages, number 1061 in Lecture Notes in Computer Science, pages 428–431. Springer-Verlag, April 1996.
D. Compare, P. Inverardi, and A.L. Wolf. Uncovering Architectural Mismatch in Dynamic Behavior. Technical Report CU-CS-828-97, Department of Computer Science, University of Colorado, Boulder, Colorado, February 1997.
D. Garlan, D. Kindred, and J.M. Wing. Interoperability: Sample Problems and Solutions. Technical report, Carnegie Mellon University, Pittsburgh, Pennsylvania, In preparation.
C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, New Jersey, 1985.
P. Inverardi and A.L. Wolf. Formal Specification and Analysis of Software Architectures using the Chemical Abstract Machine Model. IEEE Transactions on Software Engineering, 21(4):373–386, April 1995.
P. Inverardi and D. Yankelevich. Relating CHAM Descriptions of Software Architectures. In Proceedings of the 8th International Workshop on Software Specification and Design, pages 66–74. IEEE Computer Society, March 1996.
D.C. Luckham, J.J. Kenney, L.M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and Analysis of System Architecture Using Rapide. IEEE Transac tions on Software Engineering, 21(4):336–355, April 1995.
R. Milner. Communication and Concurrency. Prentice-Hall, Englewood Cliffs, New Jersey, 1989.
D.E. Perry. The Inscape Environment. In Proceedings of the 11th International Conference on Software Engineering, pages 2–11. IEEE Computer Society, May 1989.
D.E. Perry and A.L. Wolf. Foundations for the Study of Software Architecture. SIGSOFT Software Engineering Notes, 17(4):40–52, October 1992.
M. Radestock and S. Eisenbach. What Do You Get From a Pi-calculus Semantics? In Proceedings of PARLE'94 Parallel Architectures and Languages Europe, number 817 in Lecture Notes in Computer Science, pages 635–647. Springer-Verlag, 1994.
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs, New Jersey, 1996.
A.L. Wolf, L.A. Clarke, and J.C. Wileden. The AdaPIC Tool Set: Supporting Interface Control and Analysis Throughout the Software Development Process. IEEE Transactions on Software Engineering, 15(3):250–263, March 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Inverardi, P., Wolf, A.L., Yankelevich, D. (1997). Checking assumptions in component dynamics at the architectural level. In: Garlan, D., Le Métayer, D. (eds) Coordination Languages and Models. COORDINATION 1997. Lecture Notes in Computer Science, vol 1282. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63383-9_72
Download citation
DOI: https://doi.org/10.1007/3-540-63383-9_72
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63383-9
Online ISBN: 978-3-540-69527-1
eBook Packages: Springer Book Archive