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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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
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)
Blom, M.: Semantic Integrity in Programming Industry. Master’s Thesis, Computer Science, Karlstad University (1997)
Booch, G., Rumbaugh, J., and Jacobson, I.: The Unified Modeling Language User Guide. Addison Wesley (1999)
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
Cicalese, C. D. T., and Rotenstreich, S.: Behavioral Speci.cation of Distributed Software Component Interfaces. In: IEEE Computer, July (1999) 46–53
Clarke, E. M., and Wing, J. M.: Formal Methods: State of the Art and Future Directions. ACM Computing Surveys 28(4) (1996) 626–643
Cline, M. P., and Lea, D.: Using Annotated C++. In: C++ AtWork 1990, September (1990)
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)
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.
D’souza, D. F., and Wills, A. C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, USA (1999)
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
Finney, K.: Mathematical Notation in Formal Specification: Too Dificult for the Masses? In: IEEE Transactions on Software Engineering 22(2), February (1996) 158–159
Gamma, E., Helm, R., Johnson, R., and Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)
Hoare, C. A. R.: An Axiomatic Basis for Computer Programming. In: Communications of the ACM 12(10), October (1969)
Hölzl, M.: Design by Contract for Lisp. Available at: http://www.pst.informatik.unimuenchen.de/personen/hoelzl/tools/dbc/dbc-intro.html
Jones, C. B.: Systematic Software Development Using VDM. In: International Series in Computer Science. Prentice Hall, Englewood Cliffs, N.J. (1990)
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)
Kramer, R.: iContract-the Java Design by Contract Tool. In: Proceedings of TOOLS 98 (1998)
Leavens, G. T.: Larch FAQ. Available at: http://www.cs.iastate.edu/~leavens/larch-faq.html
Leavens, G. T.: The Java Modeling Language Home Page. Available at: http://www.cs.iastate.edu/~leavens/JML.html
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
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)
McIlroy, M. D.: Mass-Produced Software Components. In: Proceedings of the 1968 NATO Conference on Software Engineering, Garmisch, Germany (1969) 138–155
Meyer, B.: An Eiffel Tutorial. Available at: http://citeseer.nj.nec.com/meyer01ei.el.html
Meyer, B.: Object-Oriented Software Construction, 1st Edition, Prentice-Hall (1988)
Meyer, B.: Eiffel: the Language. Prentice-Hall (1992)
Plösch, R.: Design by Contract for Python. In: Proceedings of the Asia Pacific Software Engineering Conference (1997)
Schmidt, D., and Kuhns, F.: An Overview of the Real-time Corba Specification. IEEE Computer, June (2000)
Sivaprasad, G. S.: Larch/CORBA: Specifying the Behavior of CORBA-IDL Interfaces. TR #95-27a, Department of Computer Science, Iowa State University, November (1995)
Spivey, J. M.: The Z Notation: a Reference Manual. Prentice Hall International Series in Computer Science, 2nd Edition (1992)
Warmer, J., and Kleppe, A.: The Object Constraint Language. Addison-Wesley (1999)
Wing, J. M.: Writing Larch Interface Language Specifications. ACM Transactions on Programming Languages and Systems 9(1), January (1987) 1–24
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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