Abstract
Achieving software reliability takes many complementary tech-niques, directed at the process or at the products. This survey summarizes some of the most fruitful ideas.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Avizienis, A., Laprie, J.-C., Randell, B.: Fundamental Concepts of Dependability. In: Proceedings of Third Information Survivability Report, pp. 7–12 (October 2000), available among other places at: http://citeseer.ist.psu.edu/article/avizienis01fundamental.html
Back, R.: A Calculus of Refinements for Program Derivations. Acta Informatica 25, 593–624 (1988), available at www.crest.cs.abo.fi/publications/public/1988/ACalculusOfRefinementsForProgramDerivationsA.pdf
Ball, T., Rajamani, S.K.: Automatically Validating Temporal Safety Properties of Interfaces. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 103–122. Springer, Heidelberg (2001), available at: tinyurl.com/qrm9m
Barnett, M., DeLine, R., Fähndrich, M., Leino, K.R.M., Schulte, W.: Verification of object-oriented programs with invariants. Journal of Object Technology 3(6); Special issue: ECOOP 2003 workshop on Formal Techniques for Java-like Programs, June 2004, pp. 27–56 (2004), available at: www.jot.fm/issues/issue_2004_06/article2
Barnett, M., Rustan, K., Leino, 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)
Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley, Reading (2004)
Bezault, É.: Gobo Eiffel Test, online documentation at, http://www.gobosoft.com/eiffel/gobo/getest/index.html
Binder, R.: Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, Reading (1999)
Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: ASTRÉE: A Static Analyzer for Large Safety-Critical Software. In: Applied Deductive Verification, Dagstuhl Seminar 3451 (November 2003), available at: www.di.ens.fr/~cousot/COUSOTtalks/Dagstuhl-3451-2003.shtml See also ASTRÉE page at: www.astree.ens.fr
Boehm, B.W.: Software Engineering Economics. Prentice Hall, Englewood Cliffs (1981)
Boehm, B.W.: A Spiral Model of Software Development and Enhancement. Computer (IEEE) 21(5), 61–72 (1988)
Boehm, B.W., et al.: Software Cost Estimation with COCOMO II. Prentice Hall, Englewood Cliffs (2000)
Boyapati, C., Khurshid, S., Marinov, D.: Korat: Automated Testing Based on Java Predicates. In: Proceedings of the 2002 International Symposium on Software Testing and Analysis (ISSTA), Rome, July 22–24 (2002), available at: tinyurl.com/qwwd3
Chen, T.Y., Leung, H., Mak, I.K.: Adaptive random testing. In: Maher, M.J. (ed.) ASIAN 2004. LNCS, vol. 3321, pp. 320–329. Springer, Heidelberg (2004), tinyurl.com/lpxn5
Ciupa, I., Leitner, A.: Automated Testing Based on Design by Contract. In: Proceedings of Net.ObjectsDays 2005, 6th Annual Conference on Object-Oriented and Internet-Based Technologies, Concepts and Applications for a Networked World, pp. 545–557 (2005), se.ethz.ch/people/ciupa/papers/soqua05.pdf , see also AutoTest page at: se.ethz.ch/research/autotest
Ciupa, I., Leitner, A., Oriol, M., Meyer, B.: Object Distance and its Application to Adaptive Random testing of Object-Oriented Programs (2006) (submitted for publication), available at: se.ethz.ch/~meyer/publications/testing/object_distance.pdf
Clarke Jr., E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (1999)
Cousot, P.: Verification by Abstract Interpretation. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 243–268. Springer, Heidelberg (2004)
Cusumano, M., Selby, R.: Microsoft Secrets. The Free Press, New York (1995)
Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R.: Structured Programming. Academic Press, London (1971)
Detlefs, D.L., Rustan, K., Leino, M., Nelson, G., Saxe, J.B.: Extended Static Checking, Research Report 159, Compaq Systems Research Center (December 1998), available at: ftp://gatekeeper.research.compaq.com/pub/DEC/SRC/researchreports/SRC-159.pdf
Dijkstra, E.W.: Go To Statement Considered Harmful. Communications of the ACM 11(3), 147–148 (1968), http://www.acm.org/classics/oct95/
Dijkstra, E.W.: Notes on Structured Programming. In: [20]; original typescript, available at: http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD249.PDF
Dijkstra, E.W.: A Discipline of Programming. Prentice Hall, Englewood Cliffs (1978)
Dreger, B.J.: Function Point Analysis. Prentice Hall, Englewood Cliffs (1989)
Dubois, P., Howard, M., Meyer, B., Schweitzer, M., Stapf, E.: From Calls to Agents. Journal of Object-Oriented Programming (JOOP) 12(6) (September 1999), available at: se.ethz.ch/~meyer/publications/joop/agent.pdf
Eclipse pages at, http://www.eclipse.org
ECMA/ISO: Eiffel: Analysis, Design and Programming Language, standard ECMA 367, as ISO standard (accepted, April 2006), available at: http://www.ecmainternational.org/publications/standards/Ecma-367.htm
Eiffel open-source development site at: eiffelsoftware.origo.ethz.ch/index.php/Main_Page
Eiffel Software: EiffelStudio documentation online at: eiffel.com
Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D.: Dynamically Discovering Likely Program Invariants to Support Program Evolution. IEEE Transactions on Software Engineering 27(2), 1–25 (2001), pag.csail.mit.edu/~mernst/pubs/invariants-tse2001.pdf
Gamma, E., Helms, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1994)
Ghezzi, C., Jazayeri, M., Mandrioli, D.: Software Engineering, 2nd edn. Prentice Hall, Englewood Cliffs (2003)
Hamlet, R.: Random Testing. In: Marciniak, J.J. (ed.) Encyclopedia of Software Engineering (1994), available at: tinyurl.com/rcjxg
Henderson-Sellers, B.: Object-Oriented Metrics: Measures of Complexity. Prentice Hall, Englewood Cliffs (1995)
Henzinger, T.A., Nicollin, X., Sifakis, J., Yovine, S.: Symbolic Model Checking for Real-Time Systems. In: Logic in Computer Science, Proceedings of 7th Symposium in Logics for Computer Science, Santa Cruz, California, pp. 394–406 (1992), available at: tinyurl.com/lb5fm
Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969), available at: tinyurl.com/ory2s
Hoare, C.A.R., Misra, J.: Verified Software: Theories, Tools, Experiments. In: Vision of a Grand Challenge Project, foundation paper for the VSTTE conference [77] (October 2005), available at: vstte.ethz.ch/pdfs/vstte-hoare-misra.pdf
IFIPWorking Group 10.4 on dependable computing and fault tolerance: home page at: http://www.dependability.org
Jackson, M.: Problem Frames: Analysing and Structuring Software Development Problems. Addison-Wesley, Reading (2001)
Jézéquel, J.-M., Meyer, B.: Design by Contract: The Lessons of Ariane. Computer (IEEE) 30(1), 129–130 (1997), available at: archive.eiffel.com/doc/manuals/technology/contract/ariane/page.html
JUnit pages at SourceForge: junit.sourceforge.net
Leavens, G.T., Cheon, Y.: Design by Contract with JML (Draft), at: ftp://ftp.cs.iastate.edu/pub/leavens/JML/jmldbc.pdf , see also other JML papers at: www.cs.iastate.edu/~leavens/JML/
Leitner, A., Ciupa, I., Meyer, B., Howard, M.: Reconciling Manual and Automated Testing: The AutoTest Experience (submitted for publication, 2006)
Leveson, N.G.: System Safety in Computer-Controlled Automotive Systems, SAE Congress (March 2000), available at: sunnyday.mit.edu/papers/sae.pdf
Lyu, M.R. (ed.): Handbook of Software Reliability Engineering. IEEE Computer Society Press and McGraw-Hill, Los Alamitos (1995), also available online at: www.cse.cuhk.edu.hk/~lyu/book/reliability/
Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems. Springer, Heidelberg (1992)
McCabe, T.J.: A Complexity Measure. IEEE Transactions on Software Engineering 2(4), 308–320 (1976)
McCabe, T.J., Butler, C.W.: Design Complexity Measurement and Testing. Communications of the ACM 32(12), 1415–1425 (1989)
Meyer, B.: Introduction to the Theory of Programming Languages. Prentice Hall, Englewood Cliffs (1990)
Meyer, B.: The New Culture of Software Development: Reflections on the Practice of Object-Oriented Design. In: Mandrioli, D., Meyer, B. (eds.) Advances in Object-Oriented Software Engineering. Prentice Hall, Englewood Cliffs (1991)
Meyer, B.: Eiffel: The Language, 2nd printing. Prentice Hall, Englewood Cliffs (1992)
Meyer, B.: Applying Design by Contract. Computer (IEEE) 25(10), 40–51 (1992)
Meyer, B.: Object Success. Prentice Hall, Englewood Cliffs (1995)
Meyer, B.: Practice to Perfect: The Quality First Model. In: Computer (IEEE), May 1997, pp. 102–106 (1997), available at: se.ethz.ch/~meyer/publications/computer/quality_first.pdf
Meyer, B.: UML: The Positive Spin. American Programmer (1997), available at: archive.eiffel.com/doc/manuals/technology/bmarticles/uml/page.html
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)
Meyer, B., Mingins, C., Schmidt, H.: Providing Trusted Components to the Industry. Computer (IEEE) 31(5), 104–105 (1998), available at: se.ethz.ch/~meyer/publications/computer/trusted.pdf
Meyer, B.: The Role of Object-Oriented Metrics. Computer (IEEE) 31(11), 123–125 (1998), available at: se.ethz.ch/~meyer/publications/computer/metrics
Meyer, B.: Every Little Bit Counts: Towards Reliable Software. Computer IEEE_, 32(11), 131–133 (1999), available at: se.ethz.ch/~meyer/publications/computer/reliable.pdf
Meyer, B.: The Grand Challenge of Trusted Components. In: ICSE 25 International Conference on Software Engineering, Portland, Oregon, May 2003. IEEE Computer Press, Los Alamitos (2003)
Meyer, B.: The Power of Abstraction, Reuse, and Simplicity: An Object-Oriented Library for Event-Driven Design. In: Owe, O., Krogdahl, S., Lyche, T. (eds.) From Object-Orientation to Formal Methods. LNCS, vol. 2635, pp. 236–271. Springer, Heidelberg (2004), available at: se.ethz.ch/~meyer/publications/lncs/events.pdf.
Meyer, B.: Offshore Development: The Unspoken Revolution in Software Engineering. Computer (IEEE), 122–124 (January 2006), available at: se.ethz.ch/~meyer/publications/computer/outsourcing.pdf
Meyer, B.: What will remain of Extreme Programming? EiffelWorld 5(2), (February 2006), available at: http://www.eiffel.com/general/monthly_column/2006/February.html
Meyer, B., Arnout, K.: Componentization: the Visitor Example. Computer (IEEE) (to appear, 2006), draft available at: se.ethz.ch/~meyer/publications/computer/visitor.pdf
Microsoft: Visual Studio pages at msdn: http://microsoft.com/vstudio
Mitchell, R., McKim, J.: Design by Contract by Example. Addison-Wesley, Reading (2001)
Morgan, C.: Programming from Specifications, 2nd edn. Prentice Hall, Englewood Cliffs (1994), available at: web.comlab.ox.ac.uk/oucl/publications/books/PfS/
Musa, J.: Software Reliability Engineering, 2nd edn. McGraw-Hill, New York (1998)
Myers, G.J., Sandler, C., Badgett, T., Thomas, T.M.: The Art of Software Testing, 2nd edn. Wiley, Chichester (2004)
Offutt, J.: Mutation testing papers at: http://www.ise.gmu.edu/~ofut/rsrch/mut.html
Pincus, J.: presentations (mostly PowerPoint slides) on PREfix and PREfast at: research.microsoft.com/users/jpincus/
Raymond, E.: The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary, O’ Reilly (1999), earlier version available at: http://www.firstmonday.org/issues/issue3_3/raymond/
Software Engineering Institute, CMMI site, available at: http://www.sei.cmu.edu/cmmi
Stephens, M., Rosenberg, D.: Extreme Programming Refactored: The Case Against XP. aPress (2003)
van Lamsweerde, A.: Goal-Oriented Requirements Engineering: A Guided Tour. In: Proceedings of the 5th IEEE International Symposium on Requirements Engineering (August 2001), available at: tinyurl.com/mscpj
Verified Software: Theories, Tools, Experiments: International IFIP conference, ETH Zurich (October 2005), see VSTTE conference site at: vstte.ethz.ch
Viega, J.: The Myth of Open-Source Security (2000), available at: www.developer.com/tech/article.php/626641 , follow-up article, Open-Source Security: Still at Myth (September 2004), available at: www.onlamp.com/pub/a/security/2004/09/16/open_source_security_myths.html
Voas, J.M., McGraw, G.: Software Fault Injection: Inoculating Programs Against Errors. Wiley, Chichester (1998)
Warmer, J., Kleppe, A.: The Object Constraint Language: Getting Your Models Ready for MDA, 2nd edn. Addison-Wesley, Reading (2003)
Weyuker, E.J., Jeng, B.: Analyzing Partition Testing Strategies. IEEE Transactions on Software Engineering 17(9), 97–108 (1991)
Wikipedia: entry “ Mars Climate Orbiter”, available at: en.wikipedia.org/wiki/Mars_Climate_Orbiter
Yourdon, E.: When Good Enough Software Is Best. Software (IEEE) 12(3), 79–81 (1995)
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
Meyer, B. (2006). Dependable Software. In: Kohlas, J., Meyer, B., Schiper, A. (eds) Dependable Systems: Software, Computing, Networks. Lecture Notes in Computer Science, vol 4028. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11808107_1
Download citation
DOI: https://doi.org/10.1007/11808107_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-36821-2
Online ISBN: 978-3-540-36823-6
eBook Packages: Computer ScienceComputer Science (R0)