Skip to main content

Software Assumptions Failure Tolerance: Role, Strategies, and Visions

  • Chapter
Architecting Dependable Systems VII

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6420))

Abstract

At our behest or otherwise, while our software is being executed, a huge variety of design assumptions is continuously matched with the truth of the current condition. While standards and tools exist to express and verify some of these assumptions, in practice most of them end up being either sifted off or hidden between the lines of our codes. Across the system layers, a complex and at times obscure web of assumptions determines the quality of the match of our software with its deployment platforms and run-time environments. Our position is that it becomes increasingly important being able to design software systems with architectural and structuring techniques that allow software to be decomposed to reduce its complexity, but without hiding in the process vital hypotheses and assumptions. In this paper we discuss this problem, introduce three potentially dangerous consequences of its denial, and propose three strategies to facilitate their treatment. Finally we propose our vision towards a new holistic approach to software development to overcome the shortcomings offered by fragmented views to the problem of assumption failures.

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

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. Schmidt, D.C.: Model-driven engineering. Computer 39(4), 25–31 (2006)

    Article  Google Scholar 

  2. Lyu, M.R.: Design, testing, and evaluation techniques for software reliability engineering. In: Proc. of the 24th Euromicro Conf. on Engineering Systems and Software for the Next Decade (Euromicro’98), Workshop on Dependable Computing Systems, Västerås, Sweden, pp. xxxix–xlvi. IEEE Comp. Soc. Press (August 1998) (Keynote speech).

    Google Scholar 

  3. Lyu, M.R.: Reliability-oriented software engineering: Design, testing and evaluation techniques. IEE Proceedings – Software 145(6), 191–197 (1998) (special Issue on Dependable Computing Systems)

    Article  Google Scholar 

  4. Laprie, J.C.: Dependability of computer systems: from concepts to limits. In: Proc. of the IFIP International Workshop on Dependable Computing and Its Applications (DCIA 1998), Johannesburg, South Africa (1998)

    Google Scholar 

  5. De Win, B., Goovaerts, T., Joosen, W., Philippaerts, P., Piessens, F., Younan, Y.: Security Middleware for Mobile Applications. In: Middleware for Network Eccentric and Mobile Applications, pp. 265–284. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  6. Avižienis, A.: The N-version approach to fault-tolerant software. IEEE Trans. Software Eng. 11, 1491–1501 (1985)

    Article  Google Scholar 

  7. Horning, J.J.: ACM Fellow Profile — James Jay (Jim) Horning. ACM Software Engineering Notes 23(4) (July 1998)

    Google Scholar 

  8. Leveson, N.G.: Safeware: Systems Safety and Computers. Addison-Wesley, Reading (1995)

    Google Scholar 

  9. Boulding, K.: General systems theory—the skeleton of science. Management Science 2(3) (April 1956)

    Google Scholar 

  10. Ladbury, R.: SDRAMs: Can’t live without them, but can we live with them? In: Thirteenth Biennial Single Effects Symposium, Manhattan Beach, CA (April 2002)

    Google Scholar 

  11. Oey, K.K., Teitelbaum, S.: Highly reliable spaceborne memory subsystem. In: 3rd Computers in Aerospace Conference, American Institute of Aeronautics and Astronautics, San Diego, CA, pp. 66–71 (October 1981)

    Google Scholar 

  12. Wikipedia: Latchup, en.wikipedia.org/wiki/Latchup (retrieved on February 3, 2010)

  13. Wikipedia: Soft error, en.wikipedia.org/wiki/Soft_error (retrieved on February 3, 2010)

  14. Wikipedia: Single-event upset, en.wikipedia.org/wiki/Single_event_upset (retrieved on February 3, 2010)

  15. Holbert, K.E.: Single event effects, www.eas.asu.edu/~sim/holbert/eee460/see.html (retrieved on February 3, 2010)

  16. Calcote, J.: Autotools—A Practioner’s Guide to GNU Autoconf, Automake, and Libtool. O’Reilly, Sebastopol (2010)

    Google Scholar 

  17. Anonymous: Mplayer — the movie player (2008), www.mplayerhq.hu/design7/info.html (retrieved on December 13, 2008)

  18. Suzuki, M., Katayama, T., Schlichting, R.D.: FTAG: A functional and attribute based model for writing fault-tolerant software. Technical Report TR 96-6, Department of Computer Science, The University of Arizona (May 1996)

    Google Scholar 

  19. Gui, N., De Florio, V., Sun, H., Blondia, C.: ACCADA: A framework for continuous context-aware deployment and adaptation. In: Guerraoui, R., Petit, F. (eds.) SSS 2009. LNCS, vol. 5873, pp. 325–340. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  20. Bondavalli, A., Chiaradonna, S., Di Giandomenico, F., Grandoni, F.: A mechanism for discriminating transient from intermittent/permanent faults. Technical Report D1A2/AO/6003a, ESPRIT Project 20716 GUARDS (December 1996)

    Google Scholar 

  21. Bondavalli, A., Chiaradonna, S., Di Giandomenico, F., Grandoni, F.: Threshold-based mechanisms to discriminate transient from intermittent faults. IEEE Trans. on Computers 49(3), 230–245 (2000)

    Article  Google Scholar 

  22. Anonymous: Apache Axis2/Java—next generation web services (2010), ws.apache.org/axis2 (retrieved on February 11, 2010)

  23. Anonymous: Apache Muse—a Java-based implementation of WSRF 1.2, WSN 1.3, and WSDM 1.1 (2010), ws.apache.org/muse (retrieved on February 11, 2010)

  24. Frigo, M.: A fast fourier transform compiler. SIGPLAN Not. 39(4), 642–655 (2004)

    Article  Google Scholar 

  25. De Florio, V., Deconinck, G., Lauwereins, R.: The EFTOS voting farm: a software tool for fault masking in message passing parallel environments. In: Proc. of the 24th Euromicro Conference (Euromicro 1998), Workshop on Dependable Computing Systems, Västerås, Sweden, pp. 379–386. IEEE Comp. Soc. Press, Los Alamitos (August 1998)

    Google Scholar 

  26. Johnson, B.W.: Design and Analysis of Fault-Tolerant Digital Systems. Addison-Wesley, New York (1989)

    Google Scholar 

  27. De Florio, V.: Cost-effective software reliability through autonomic tuning of system resources. In: Proceedings of the Applied Reliability Symposium, Europe (April 2010)

    Google Scholar 

  28. Baumann, P., Lermer, K.: A framework for the specification of reactive and concurrent systems. In: Thiagarajan, P.S. (ed.) FSTTCS 1995. LNCS, vol. 1026, pp. 62–79. Springer, Heidelberg (1995)

    Google Scholar 

  29. Bishop, P.G.: Fault Avoidance. In: Dependability of Critical Computer Systems 3: Techniques Directory, pp. 56–140. Elsevier Science Publishers, Amsterdam (1990)

    Google Scholar 

  30. Sheth, A.P., Verma, K., Gomadam, K.: Semantics to energize the full services spectrum. Commun. ACM 49(7), 55–61 (2006)

    Article  Google Scholar 

  31. Anonymous: OMG modeling and metadata specifications—object constraint language (OCL) (2010), www.omg.org/technology/documents/modeling_spec_catalog.htm#OCL (retrieved on February 11, 2010)

  32. Meyer, B.: Applying Design by Contract. Computer 25(10), 40–51 (1992)

    Article  Google Scholar 

  33. Dragoni, N., Massacci, F., Naliuka, K., Siahaan, I.: Security-by-contract: Toward a semantics for digital signatures on mobile code. In: López, J., Samarati, P., Ferrer, J.L. (eds.) EuroPKI 2007. LNCS, vol. 4582, pp. 297–312. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  34. Green, P.A.: The art of creating reliable software-based systems using off-the-shelf software components. In: Proc. of the 16th Symposium on Reliable Distributed Systems (SRDS 1997), Durham, NC (October 1997)

    Google Scholar 

  35. DuPont, J.M.: Introspector, www.introspector.sourceforge.net (retrieved on February 8, 2010)

  36. Anonymous: Resource description framework (RDF) / W3C semantic web activity (2008), www.w3.org/RDF (retrieved on December 16, 2008)

  37. Thouvenin, G.: Gasta: Gcc abstract syntax tree analysis (2004), Available at http://gasta.sourceforge.net (retrieved on December 16, 2008)

  38. King, B.: Gcc-xml, the xml output extension to gcc (2004), http://www.gccxml.org

  39. Antoniol, G., Di Penta, M., Masone, G., Villano, U.: Compiler hacking for source code analysis. Software Quality Journal 12(4), 383–406 (2004)

    Article  Google Scholar 

  40. Bézivin, J.: MDA: From hype to hope, and reality. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  41. Bézivin, J.: On the unification power of models. Software and Systems Modeling 4(2), 171–188 (2005)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

De Florio, V. (2010). Software Assumptions Failure Tolerance: Role, Strategies, and Visions. In: Casimiro, A., de Lemos, R., Gacek, C. (eds) Architecting Dependable Systems VII. Lecture Notes in Computer Science, vol 6420. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-17245-8_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-17245-8_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-17244-1

  • Online ISBN: 978-3-642-17245-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics