Abstract
For decades now, modular design methodologies have helped software engineers cope with the size and complexity of modern-day industrial applications. To be truly effective though, it is essential that module interfaces be rigorously specified. Design by Contract (DBC) is an increasingly popular method of interface specification for object-oriented systems. Many researchers are actively adding support for DBC to various languages such as Ada, Java and C#. Are these research efforts justified? Does having support for DBC mean that developers will make use of it? We present the results of an empirical study measuring the proportion of assertion statements used in Eiffel contracts. The study results indicate that programmers using Eiffel (the only active language with built-in support for DBC) tend to write assertions in a proportion that is higher than for other languages.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Barnes, J.: High Integrity Software: The Spark Approach to Safety and Security. Addison-Wesley, Reading (2003)
Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# Programming System: An Overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)
Bartetzko, D., Fischer, C., Moller, M., Wehrheim, H.: Jass—Java with Assertions. Electronic Notes in Theoretical Computer Science 55(2), 103–117 (2001)
Burdy, L., Cheon, Y., Cok, D.R., Ernst, M.D., Kiniry, J.R., Leavens, G.T., Leino, K.R.M., Poll, E.: An Overview of JML Tools and Applications. International Journal on Software Tools for Technology Transfer (STTT) 7(3), 212–232 (2005)
Burdy, L., Requet, A., Lanet, J.-L.: Java Applet Correctness: A Developer-Oriented Approach. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, Springer, Heidelberg (2003)
Chalin, P.: Logical Foundations of Program Assertions: What do Practitioners Want? In: Proceedings of the Third International Conference on Software Engineering and Formal Methods (SEFM 2005), Koblenz, Germany, September 5-9, 2005. IEEE Computer Society Press, Los Alamitos (2005)
Chalin, P.: DbC and assertions in Eiffel: participants needed for quantitative research survey. EiffelWorld Electronic Newsletter 32(2) (2006)
Chalin, P., Rioux, F.: Non-null References by Default in the Java Modeling Language. In: Workshop on the Specification and Verification of Component-Based Systems (SAVCBS 2005), Lisbon, Portugal, September 2005. ACM Press, New York (2005)
Cok, D.R., Kiniry, J.R.: ESC/Java2: Uniting ESC/Java and JML. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 108–128. Springer, Heidelberg (2005)
Crocker, D.: Safe Object-Oriented Software: The Verified Design-By-Contract Paradigm. In: Practical Elements of Safety: Proceedings of the 12th Safety-Critical Systems Symposium, Birmingham, UK, February 2004. Springer, Heidelberg (2004)
Detlefs, D.L., Leino, K.R.M., Nelson, G., Saxe, J.B.: Extended Static Checking, Compaq Systems Research Center, Research Report 159 (December 1998)
ECMA International, Eiffel Analysis, Design and Programming Language, ECMA-367 (June 2005)
Evans, D.: Splint User Manual. Secure Programming Group, University of Virginia. (June 5, 2003)
Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J.B., Stata, R.: Extended static checking for Java. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2002), June 2002, vol. 37(5), pp. 234–245. ACM Press, New York (2002)
Hoare, C.A.R.: Assertions: Progress and Prospects (2001), http://research.microsoft.com/~thoare
Hoare, C.A.R.: Assertions: A Personal Perspective. IEEE Annals of the History of Computing 25(2), 14–25 (2003)
Hoare, C.A.R.: The Verifying Compiler: A Grand Challenge for Computing Research. JACM 50(1), 63–69 (2003)
Leavens, G.T., Leino, K.R.M., Poll, E., Ruby, C., Jacobs, B.: JML: Notations and Tools Supporting Detailed Design in Java. In: OOPSLA 2000 Companion, Minneapolis, Minnesota, pp. 105–106 (2000)
Meyer, B.: Applying Design by Contract. Computer 25(10), 40–51 (1992)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)
Mitchell, R., Jim, M.: Design by Contract, by Example. Addison-Wesley, Reading (2002)
Parasoft, Jcontract product page (2005), http://www.parasoft.com
Park, R.: Software Size Measurement: A Framework for Counting Source Statements, CMU, Software Engineering Institute, Pittsburgh CMU/SEI-92-TR-20 (1992)
Wheeler, D.A.: SLOCCount (2005), http://www.dwheeler.com/sloccount
Wilson, T., Maharaj, S.: Omnibus: A clean language for supporting DBC, ESC and VDBC. In: Proceedings of the Third International Conference on Software Engineering and Formal Methods (SEFM 2005), Koblenz, Germany, September 5-9, 2005. IEEE Computer Society Press, Los Alamitos (2005)
Wing, J.M.: Writing Larch Interface Language Specifications. ACM Trans. Program. Lang. Syst. 9(1), 1–24 (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Chalin, P. (2006). Are Practitioners Writing Contracts?. In: Butler, M., Jones, C.B., Romanovsky, A., Troubitsyna, E. (eds) Rigorous Development of Complex Fault-Tolerant Systems. Lecture Notes in Computer Science, vol 4157. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11916246_5
Download citation
DOI: https://doi.org/10.1007/11916246_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48265-9
Online ISBN: 978-3-540-48267-3
eBook Packages: Computer ScienceComputer Science (R0)