Developing components in the presence of re-entrance

  • Leonid Mikhajlov
  • Linas Laibinis
  • Emil Sekerinski
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1709)


Independent development of components according to their specifications is complicated by the fact that a thread of control can exit and re-enter the same component. This kind of re-entrance may cause problems as the internal representation of a component can be observed in an inconsistent state. We argue that the ad-hoc reasoning used in establishing conformance of components to their specifications that intuitively appears to be correct does not account for the presence of re-entrance.Such reasoning leads to a conflict between assumptions that component developers make about the behavior of components in a system, resulting in the component re-entrance problem. We formulate the modular reasoning property that captures the process of independent component development and introduce two requirements that must be imposed to avoid the re-entrance problem. Then we define a customized theory of components, component systems, and component refinement which models the process of component development from specifications. Using this theory, we prove that the formulated requirements are sufficient to establish the modular reasoning property.


Component System Method Invocation Inconsistent State Integration Phase Assertion Statement 
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.


  1. [1]
    M. Abadi and L. Lamport. Composing speci cations.ACM Transactions on Programming Languages and Systems, 15(1):73–132, Jan. 1993.CrossRefGoogle Scholar
  2. [2]
    R. J. R. Back and J. von Wright. Refinement Calculus: A Systematic Introduction. Springer-Verlag, April 1998.Google Scholar
  3. [3.
    R. J. R. Back and J. von Wright.Encoding,decoding and data refinement. Technical Report TUCS-TR-236, Turku Centre for Computer Science, Finland, Mar. 1, 1999.Google Scholar
  4. [4]
    R. J. R. Back and J. von Wright. Products in the re nement calculus. Technical Report TUCS-TR-235, Turku Centre for Computer Science, Finland, Feb. 11,1999.Google Scholar
  5. [5]
    M. Büchi and E. Sekerinski. Formal methods for component software: The refinement calculus perspective. In W. Weck, J. Bosch, and C. Szyperski, editors, Proceedings of WCOP’97, volume 5 of TUCS General Publication, pages 23–32,June 1997.Google Scholar
  6. [6]
    M. Büchi and W. Weck. A plea for grey-box components. Technical Report TUCS-TR-122, Turku Centre for Computer Science, Finland, Sept. 5, 1997.Google Scholar
  7. [7.
    W.-P. de Roever, H. Langmaack, and A. Pnueli. Compositionality: The Significant Diffirence.Proceedings of COMPOS’97, volume 1536 of LNCS. Springer-Verlag, 1997.Google Scholar
  8. [8]
    J. Feiler and A. Meadow. Essential OpenDoc. Addison-Wesley, 1996.Google Scholar
  9. [9]
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of ReusableObject-Oriented Software. Addison-Wesley, 1995.Google Scholar
  10. [10]
    R. Helm, I. M. Holland, and D. Gangopadhyay. Contracts: Specifying behavioural compositions in object-oriented systems. In Proceedings OOPSLA/ECOOP’90,ACM SIGPLAN Notices, pages 169–180, Oct. 1990.Google Scholar
  11. [11]
    B. Meyer. Object-Oriented Software Construction. Prentice Hall, New York, N.Y., second edition, 1997.zbMATHGoogle Scholar
  12. [12]
    L. Mikhajlov, E. Sekerinski, and L. Laibinis. Developing components in the presence of re-entrance. Technical Report TUCS-TR-239, TUCS-Turku Centre for Computer Science, Feb. 9 1999.Tue, 9 Jan 1999 8:17:45 GMT.Google Scholar
  13. [13]
    C. C. Morgan. Programming from Specifications. Prentice Hall, 1990.Google Scholar
  14. [14]
    A. Olafsson and D. Bryan. On the need for “required interfaces” of components. In M. Muehlhaeuser, editor, Special Issues in Object Oriented Programming, pages 159–165. dpunkt Verlag Heidelberg, 1997. ISBN 3-920993-67-5.Google Scholar
  15. [15]
    D. Rogerson. Inside COM: Microsoft’s Component Object Model. Microsoft Press, 1997.Google Scholar
  16. [16]
    Sun Microsystems. Java Beans(TM), July 1997. Graham Hamilton (ed.). Version 1.0.1.Google Scholar
  17. [17]
    C. Szyperski. Component Software Beyond Object-Oriented Software. Addison-Wesley, 1997.Google Scholar
  18. [18]
    A. Tarski.A lattice theoretical fixed point theorem and its applications. Pacific J. Mathematics, 5:285–309, 1955.zbMATHMathSciNetGoogle Scholar
  19. [19]
    J. Wright. Program refinement by theorem prover. In 6th RefinementWorkshop, London,1994.SpringerVerlag.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Leonid Mikhajlov
    • 1
  • Linas Laibinis
    • 1
  • Emil Sekerinski
    • 2
  1. 1.Turku Centre Computer ScienceTurkuFinland
  2. 2.2 McMaster UniversityOntarioCanada

Personalised recommendations