Modelling Parametric Contracts and the State Space of Composite Components by Graph Grammars

  • Ralf H. Reussner
  • Jens Happe
  • Annegret Habel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3442)


Modeling the dependencies between provided and required services within a software component is necessary for several reasons, such as automated component adaptation and architectural dependency analysis. Parametric contracts for software components specify such dependencies and were successfully used for automated protocol adaptation and quality of service prediction. In this paper, a novel model for parametric contracts based on graph grammars is presented and a first definition of the compositionality of parametric contracts is given. Compared to the previously used finite state machine based formalism, the graph grammar formalism allows a more elegant formulation of parametric contract applications and considerably simpler implementations.


  1. 1.
    Aho, A.V., Ullman, J.D.: The Theory of Parsing, Translation, and Compiling. In: Parsing, vol. I. Prentice-Hall, Englewood Cliffs (1972)Google Scholar
  2. 2.
    de Alfaro, L., Henzinger, T.A.: Interface automata. In: Gruhn, V. (ed.) Proceedings of the Joint 8th European Software Engeneering Conference and 9th ACM SIGSOFT Symposium on the Foundation of Software Engeneering (ESEC/FSE 2001), September 10–14. Software Engineering Notes, vol. 26(5), pp. 109–120. ACM Press, New York (2001)Google Scholar
  3. 3.
    Drewes, F., Hoffmann, B., Plump, D.: Hierarchical graph transformation. Journal of Computer and System Sciences 64, 249–283 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.): Handbook of Graph Grammars and Computing by Graph Transformation: Applications, Languages and Tools, vol. 2. World Scientific, Singapore (1999)zbMATHGoogle Scholar
  5. 5.
    Ehrig, H., Kreowski, H.-J., Montanari, U., Rozenberg, G. (eds.): Handbook of Graph Grammars and Computing by Graph Transformation: Concurrency, Parallelism, and Distribution, vol. 3. World Scientific, Singapore (1999)zbMATHGoogle Scholar
  6. 6.
    Habel, A. (ed.): Hyperedge Replacement: Grammars and Languages. LNCS, vol. 643. Springer, Heidelberg (1992)zbMATHGoogle Scholar
  7. 7.
    Habel, A.: Hypergraph grammars: Transformational and algorithmic aspects. Journal of Information Processing and Cybernetics EIK 28, 241–277 (1992)zbMATHGoogle Scholar
  8. 8.
    Habel, A., Müller, J., Plump, D.: Double-pushout graph transformation revisited. Mathematical Structures in Computer Science 11(5), 637–688 (2001)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice Hall, Englewood Cliffs (1991)Google Scholar
  10. 10.
    Hunzelmann, G.: Generierung von Protokollinformation für Softwarekomponentenschnittstellen aus annotiertem Java-Code. Diplomarbeit, Fakultät für Informatik, Universität Karlsruhe (TH), Germany (April 2001)Google Scholar
  11. 11.
    Meyer, B.: Applying Design by Contract. IEEE Computer 25(10), 40–51 (1992)Google Scholar
  12. 12.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)zbMATHGoogle Scholar
  13. 13.
    Nierstrasz, O.: Regular types for active objects. In: Proceedings of the 8th ACM onference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1993), October. ACM SIGPLAN Notices, vol. 28(10), pp. 1–15 (1993)Google Scholar
  14. 14.
    Reussner, R.H.: Parametrisierte Verträge zur Protokolladaption bei Software- Komponenten. Logos Verlag, Berlin (2001)Google Scholar
  15. 15.
    Reussner, R.H.: Automatic Component Protocol Adaptation with the CoCoNut Tool Suite. Future Generation Computer Systems 19, 627–639 (2003)CrossRefGoogle Scholar
  16. 16.
    Reussner, R.H., Poernomo, I.H., Schmidt, H.W.: Reasoning on software architectures with contractually specified components. In: Cechich, A., Piattini, M., Vallecillo, A. (eds.) Component-Based Software Quality. LNCS, vol. 2693, pp. 287–325. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    Rozenberg, G. (ed.): Handbook of Graph Grammars and Computing by Graph Transformation: Foundations, vol. 1. World Scientific, Singapore (1997)zbMATHGoogle Scholar
  18. 18.
    Stafford, J.A., Wolf, A.L., Caporuscio, M.: The application of dependence analysis to software architecture descriptions. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 52–62. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  19. 19.
    Vallecillo, A., Hernández, J., Troya, J.M.: Object interoperability. In: Moreira, A.M.D., Demeyer, S. (eds.) ECOOP 1999 Workshops. LNCS, vol. 1743, pp. 1–21. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  20. 20.
    Yellin, D., Strom, R.: Protocol Specifications and Component Adaptors. ACM Transactions on Programming Languages and Systems 19(2), 292–333 (1997)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Ralf H. Reussner
    • 1
  • Jens Happe
    • 1
  • Annegret Habel
    • 2
  1. 1.Software Engineering Group 
  2. 2.Formal Languages GroupUniversity of OldenburgGermany

Personalised recommendations