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.
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
Schmidt, D.C.: Model-driven engineering. Computer 39(4), 25–31 (2006)
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).
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)
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)
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)
Avižienis, A.: The N-version approach to fault-tolerant software. IEEE Trans. Software Eng. 11, 1491–1501 (1985)
Horning, J.J.: ACM Fellow Profile — James Jay (Jim) Horning. ACM Software Engineering Notes 23(4) (July 1998)
Leveson, N.G.: Safeware: Systems Safety and Computers. Addison-Wesley, Reading (1995)
Boulding, K.: General systems theory—the skeleton of science. Management Science 2(3) (April 1956)
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)
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)
Wikipedia: Latchup, en.wikipedia.org/wiki/Latchup (retrieved on February 3, 2010)
Wikipedia: Soft error, en.wikipedia.org/wiki/Soft_error (retrieved on February 3, 2010)
Wikipedia: Single-event upset, en.wikipedia.org/wiki/Single_event_upset (retrieved on February 3, 2010)
Holbert, K.E.: Single event effects, www.eas.asu.edu/~sim/holbert/eee460/see.html (retrieved on February 3, 2010)
Calcote, J.: Autotools—A Practioner’s Guide to GNU Autoconf, Automake, and Libtool. O’Reilly, Sebastopol (2010)
Anonymous: Mplayer — the movie player (2008), www.mplayerhq.hu/design7/info.html (retrieved on December 13, 2008)
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)
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)
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)
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)
Anonymous: Apache Axis2/Java—next generation web services (2010), ws.apache.org/axis2 (retrieved on February 11, 2010)
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)
Frigo, M.: A fast fourier transform compiler. SIGPLAN Not. 39(4), 642–655 (2004)
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)
Johnson, B.W.: Design and Analysis of Fault-Tolerant Digital Systems. Addison-Wesley, New York (1989)
De Florio, V.: Cost-effective software reliability through autonomic tuning of system resources. In: Proceedings of the Applied Reliability Symposium, Europe (April 2010)
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)
Bishop, P.G.: Fault Avoidance. In: Dependability of Critical Computer Systems 3: Techniques Directory, pp. 56–140. Elsevier Science Publishers, Amsterdam (1990)
Sheth, A.P., Verma, K., Gomadam, K.: Semantics to energize the full services spectrum. Commun. ACM 49(7), 55–61 (2006)
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)
Meyer, B.: Applying Design by Contract. Computer 25(10), 40–51 (1992)
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)
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)
DuPont, J.M.: Introspector, www.introspector.sourceforge.net (retrieved on February 8, 2010)
Anonymous: Resource description framework (RDF) / W3C semantic web activity (2008), www.w3.org/RDF (retrieved on December 16, 2008)
Thouvenin, G.: Gasta: Gcc abstract syntax tree analysis (2004), Available at http://gasta.sourceforge.net (retrieved on December 16, 2008)
King, B.: Gcc-xml, the xml output extension to gcc (2004), http://www.gccxml.org
Antoniol, G., Di Penta, M., Masone, G., Villano, U.: Compiler hacking for source code analysis. Software Quality Journal 12(4), 383–406 (2004)
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)
Bézivin, J.: On the unification power of models. Software and Systems Modeling 4(2), 171–188 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)