Checking assumptions in component dynamics at the architectural level

  • Paola Inverardi
  • Alexander L. Wolf
  • Daniel Yankelevich
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1282)


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.


Actual Behavior Transformation Rule Interaction Behavior Architectural Level Type Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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.Google Scholar
  2. 2.
    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.Google Scholar
  3. 3.
    J.-P. Banitre and D. Le Métayer. The Gamma Model and its Discipline of Programming. Science of Computer Programming, 15:55–77, 1990.CrossRefGoogle Scholar
  4. 4.
    J.-P. Banâtre and D. Le Métayer. Programming by Multiset Transformation. Communications of the ACM, 36(1):98–111, January 1993.CrossRefGoogle Scholar
  5. 5.
    G. Berry and G. Boudol. The Chemical Abstract Machine. Theoretical Computer Science, 96:217–248, 1992.CrossRefGoogle Scholar
  6. 6.
    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.Google Scholar
  7. 7.
    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.Google Scholar
  8. 8.
    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.Google Scholar
  9. 9.
    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.Google Scholar
  10. 10.
    D. Garlan, D. Kindred, and J.M. Wing. Interoperability: Sample Problems and Solutions. Technical report, Carnegie Mellon University, Pittsburgh, Pennsylvania, In preparation.Google Scholar
  11. 11.
    C.A.R. Hoare. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, New Jersey, 1985.Google Scholar
  12. 12.
    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.CrossRefGoogle Scholar
  13. 13.
    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.Google Scholar
  14. 14.
    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.CrossRefGoogle Scholar
  15. 15.
    R. Milner. Communication and Concurrency. Prentice-Hall, Englewood Cliffs, New Jersey, 1989.Google Scholar
  16. 16.
    D.E. Perry. The Inscape Environment. In Proceedings of the 11th International Conference on Software Engineering, pages 2–11. IEEE Computer Society, May 1989.Google Scholar
  17. 17.
    D.E. Perry and A.L. Wolf. Foundations for the Study of Software Architecture. SIGSOFT Software Engineering Notes, 17(4):40–52, October 1992.CrossRefGoogle Scholar
  18. 18.
    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.Google Scholar
  19. 19.
    M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs, New Jersey, 1996.Google Scholar
  20. 20.
    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.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Paola Inverardi
    • 1
  • Alexander L. Wolf
    • 2
  • Daniel Yankelevich
    • 3
  1. 1.Dipartimento di MatematicaUniversitá di L'AquilaL'AquilaItaly
  2. 2.Department of Computer ScienceUniversity of ColoradoBoulderUSA
  3. 3.Departmento de ComputaciónUniversidad de Buenos AiresBuenos AiresArgentina

Personalised recommendations