Skip to main content

Techniques for Embedding Executable Specifications in Software Component Interfaces

  • Conference paper
  • First Online:
COTS-Based Software Systems (ICCBSS 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2580))

Included in the following conference series:

Abstract

In this paper, we consider interface contracts as a possible mechanism for improving semantic integrity in component-based systems. A contract is essentially a formal speci.cation interleaved with code and allowing a component or object to unambiguously specify its behaviour. The existing techniques that we survey are predominantly designed for object-oriented systems; we therefore investigate the extent to which they can be scaled up to the level of components, and embedded in interface specifications rather than code. We conclude that interleaved specifications are viable and useful at the level of components, but that future work is required to develop languages that can express the constraints that are important at this level of granularity.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barnett, M., and Schulte, W.: Spying on Components: A Runtime Verification Technique. In: Workshop on Specification and Verification of Component-based Systems, OOPSLA 2001, Technical Report #01-09a, Iowa State, October (2001) 7–13

    Google Scholar 

  2. Bastide, R., Sy, O., Palanque, P., and Navarre, D.: Formal Speci.cation of CORBA Services: Experience and Lessons Learned. In: ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (2000)

    Google Scholar 

  3. Blom, M.: Semantic Integrity in Programming Industry. Master’s Thesis, Computer Science, Karlstad University (1997)

    Google Scholar 

  4. Booch, G., Rumbaugh, J., and Jacobson, I.: The Unified Modeling Language User Guide. Addison Wesley (1999)

    Google Scholar 

  5. Carillo-Castellon, M., Garcia-Molina, J., Pimentel, E., and Repiso, I.: Design by Contract in Smalltalk. In: Journal of Object Oriented Programming, November/ December (1996) 23–28

    Google Scholar 

  6. Cicalese, C. D. T., and Rotenstreich, S.: Behavioral Speci.cation of Distributed Software Component Interfaces. In: IEEE Computer, July (1999) 46–53

    Google Scholar 

  7. Clarke, E. M., and Wing, J. M.: Formal Methods: State of the Art and Future Directions. ACM Computing Surveys 28(4) (1996) 626–643

    Article  Google Scholar 

  8. Cline, M. P., and Lea, D.: Using Annotated C++. In: C++ AtWork 1990, September (1990)

    Google Scholar 

  9. Cline, M. P., and Lea, D.: The Behavior of C++ Classes. In: Proceedings of the Symposium on Object-Oriented Programming Emphasizing Practical Applications, September (1990)

    Google Scholar 

  10. D’souza, D. F., and Wills, A. C.: OOA/D and Corba/IDL: A Common Base. ICON Computing (1995) Available at: http://www.iconcomp.com.

  11. D’souza, D. F., and Wills, A. C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, USA (1999)

    Google Scholar 

  12. Guttag, J. V., Horning, J. J., and Wing, J. M.: The Larch Family of Specification Languages. In: IEEE Software 2(5), September (1985) 24–36

    Article  Google Scholar 

  13. Finney, K.: Mathematical Notation in Formal Specification: Too Dificult for the Masses? In: IEEE Transactions on Software Engineering 22(2), February (1996) 158–159

    Article  Google Scholar 

  14. Gamma, E., Helm, R., Johnson, R., and Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)

    Google Scholar 

  15. Hoare, C. A. R.: An Axiomatic Basis for Computer Programming. In: Communications of the ACM 12(10), October (1969)

    Google Scholar 

  16. Hölzl, M.: Design by Contract for Lisp. Available at: http://www.pst.informatik.unimuenchen.de/personen/hoelzl/tools/dbc/dbc-intro.html

  17. Jones, C. B.: Systematic Software Development Using VDM. In: International Series in Computer Science. Prentice Hall, Englewood Cliffs, N.J. (1990)

    Google Scholar 

  18. Karaorman, M., Hölzle, U., and Bruno, J.: jContractor: Refiective Java Library to Support Design-by-Contract. Technical Report TRCS98-31, University of California, Santa Barbara (1998)

    Google Scholar 

  19. Kramer, R.: iContract-the Java Design by Contract Tool. In: Proceedings of TOOLS 98 (1998)

    Google Scholar 

  20. Leavens, G. T.: Larch FAQ. Available at: http://www.cs.iastate.edu/~leavens/larch-faq.html

  21. Leavens, G. T.: The Java Modeling Language Home Page. Available at: http://www.cs.iastate.edu/~leavens/JML.html

  22. Leavens, G. T., Baker, A. L., and Ruby, C.: JML: A Notation for Detailed Design. In: Behavioral Specifications for Businesses and Systems, Kluwer (1999) 175–188

    Google Scholar 

  23. Luckham, D. C., von Henke, F. W., Krieg-Brueckner, B., and Owe, O.: Anna, a Language for Annotating Ada Programs: Preliminary Reference Manual. Technical Report CSL-TR-84-261, Stanford University, July (1984)

    Google Scholar 

  24. McIlroy, M. D.: Mass-Produced Software Components. In: Proceedings of the 1968 NATO Conference on Software Engineering, Garmisch, Germany (1969) 138–155

    Google Scholar 

  25. Meyer, B.: An Eiffel Tutorial. Available at: http://citeseer.nj.nec.com/meyer01ei.el.html

  26. Meyer, B.: Object-Oriented Software Construction, 1st Edition, Prentice-Hall (1988)

    Google Scholar 

  27. Meyer, B.: Eiffel: the Language. Prentice-Hall (1992)

    Google Scholar 

  28. Plösch, R.: Design by Contract for Python. In: Proceedings of the Asia Pacific Software Engineering Conference (1997)

    Google Scholar 

  29. Schmidt, D., and Kuhns, F.: An Overview of the Real-time Corba Specification. IEEE Computer, June (2000)

    Google Scholar 

  30. Sivaprasad, G. S.: Larch/CORBA: Specifying the Behavior of CORBA-IDL Interfaces. TR #95-27a, Department of Computer Science, Iowa State University, November (1995)

    Google Scholar 

  31. Spivey, J. M.: The Z Notation: a Reference Manual. Prentice Hall International Series in Computer Science, 2nd Edition (1992)

    Google Scholar 

  32. Warmer, J., and Kleppe, A.: The Object Constraint Language. Addison-Wesley (1999)

    Google Scholar 

  33. Wing, J. M.: Writing Larch Interface Language Specifications. ACM Transactions on Programming Languages and Systems 9(1), January (1987) 1–24

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

McKegney, R., Shepard, T. (2003). Techniques for Embedding Executable Specifications in Software Component Interfaces. In: Erdogmus, H., Weng, T. (eds) COTS-Based Software Systems. ICCBSS 2003. Lecture Notes in Computer Science, vol 2580. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36465-X_14

Download citation

  • DOI: https://doi.org/10.1007/3-540-36465-X_14

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00562-9

  • Online ISBN: 978-3-540-36465-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics