Abstract
When building dependable systems by integrating untrusted software components that were not originally designed to interact with each other, it is inevitable the occurrence of architectural mismatches related to assumptions in the failure behaviours. These mismatches if not prevented during system design have to be tolerated during run-time. This paper presents an architectural abstraction based on exception handling for structuring fault-tolerant software systems. This abstraction comprises several components and connectors that transform an existing untrusted software element into an idealised fault-tolerant architectural element. The proposed rigorous approach relies on a formal representation for analysing exception propagation, and verifying important dependability properties. Beyond this, the formal models are also used for generating unit and integration test cases that would be used for validating the final software product. The feasibility of the proposed approach was evaluated on an embedded critical case study.
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
Abrial, J.-R.: The B-book: assigning programs to meanings. Cambridge University Press, New York (1996)
Amnell, T., Behrmann, G., Bengtsson, J., D’Argenio, P.R., David, A., Fehnker, A., Hune, T., Jeannet, B., Larsen, K.G., Möller, M.O., Pettersson, P., Weise, C., Yi, W.: Uppaal - Now, Next, and Future. In: Cassez, F., Jard, C., Rozoy, B., Dermot, M. (eds.) MOVEP 2000. LNCS, vol. 2067, pp. 100–125. Springer, Heidelberg (2001)
Anderson, T., Lee, P.A.: Fault Tolerance: Principles and Practice. Prentice-Hall, Englewood Cliffs (1981)
Bass, L., Clements, P.C., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley, Reading (2003)
Bertolino, A., Marchetti, E., Muccini, H.: Introducing a reasonably complete and coherent approach for model-based testing. Electr. Notes Theor. Comput. Sci. 116, 85–97 (2005)
Binder, R.V.: Testing object-oriented systems: models, patterns, and tools. Addison-Wesley Longman Publishing Co., Inc., Redwood City, CA, USA (1999)
Brito, P.H.S., de Lemos, R., Martins, E., Rubira, C.M.F.: Verification and validation of a fault-tolerant architectural abstraction. In: DSN Workshop on Architecting Dependable Systems (WADS 2007), Edinburgh, Scotland - UK (Accepted for publication, 2007)
Brookes, S.D., Hoare, C.A.R., Roscoe, A.W.: A theory of communicating sequential processes. J. ACM 31(3), 560–599 (1984)
Castor Filho, F., Cacho, N., Figueiredo, E., Ferreira, R., Garcia, A., Rubira, C.M.F.: Exceptions and aspects: The devil is in the details. In: Proceedings of the 14th ACM SIGSOFT FSE, pp. 152–162 (November 2006)
Castor Filho, F., da Silva Brito, P.H., Rubira, C.M.F.: Specification of exception flow in software architectures. Journal of Systems and Software (October 2006)
Castor Filho, F., de Castro Guerra, P.A., Rubira, C.M.F.: An architectural-level exception-handling system for component-based applications. In: de Lemos, R., Weber, T.S., Camargo Jr., J.B. (eds.) LADC 2003. LNCS, vol. 2847, pp. 321–340. Springer, Heidelberg (2003)
Clements, P., et al.: Documenting Software Architectures: Views and Beyond. Addison-Wesley, Reading (2003)
Cristian, F.: Exception handling. In: Dependability of Resilient Computers, pp. 68–97. Blackwell (1989)
da Silva Brito, P.H., de Lemos, R., Filho, F.C., Rubira, C.M.F.: Architecture-centric fault tolerance with exception handling. Technical Report IC-07-04. State University of Campinas (February 2007)
Brito, P.H.S., Rocha, C.R., Castor Filho, F., Martins, E., Rubira, C.M.F.: A method for modeling and testing exceptions in component-based software development. In: Maziero, C.A., Silva, J.G., Andrade, A.M.S., Assis Silva, F.M.d. (eds.) LADC 2005. LNCS, vol. 3747, pp. 61–79. Springer, Heidelberg (2005)
de Castro Guerra, P.A., Rubira, C., de Lemos, R.: A fault-tolerant software architecture for component-based systems. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems. LNCS, vol. 2677, pp. 129–149. Springer, Heidelberg (2003)
de Lemos, R., de Castro Guerra, P.A., Rubira, C.M.F.: A fault-tolerant architectural approach for dependable system. IEEE Software 23(2), 80–87 (2006)
McMillan, K.L.: The SMV system. Technical Report CMU-CS-92-131, Carnegie Mellon University (1992)
Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Francisco (1993)
Issarny, V., Banatre, J.P.: Architecture-based exception handling. In: Proceedings of the 34th Annual Hawaii International Conference on System Sciences (2001)
Jackson, D.: Alloy: a lightweight object modelling notation. Software Engineering and Methodology 11(2), 256–290 (2002)
Jackson, D., Schechter, I., Shlyahter, H.: Alcoa: the alloy constraint analyzer. In: ICSE 2000. Proceedings of the 22nd international conference on Software engineering, pp. 730–733. ACM Press, New York (2000)
Lee, P.A., Anderson, T.: Fault Tolerance: Principles and Practice. In: Dependable computing and fault-tolerant systems, 2nd edn., Springer, Berlin, New York (1990)
Leuschel, M., Butler, M.J.: Prob: A model checker for b. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 855–874. Springer, Heidelberg (2003)
Parnas, D.L., Würges, H.: Response to undesired events in software systems. In: Proceedings of the 2nd International Conference on Software Engineering, San Francisco, USA, pp. 437–446 (October 1976)
Randell, B.: System structure for software fault tolerance. IEEE Transactions on Software Engineering 1(2), 221–232 (1975)
Reimer, D., Srinivasan, H.: Analyzing exception usage in large java applications. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)
Schneider, S., Treharne, H.: Communicating b machines. In: Bert, D., Bowen, J.P., Henson, M.C., Robinson, K. (eds.) B 2002 and ZB 2002. LNCS, vol. 2272, pp. 416–435. Springer, Heidelberg (2002)
Sloman, M., Kramer, J.: Distributed systems and computer networks. Prentice Hall International (UK) Ltd, Hertfordshire, UK (1987)
Taylor, R.N., Medvidovic, N., Anderson, K., Whitehead, J.E.J., Robbins, J.: A component- and message- based architectural style for GUI software. In: Proceedings of the 17th International Conference on Software Engineering, pp. 295–304 (April 1995)
Weimer, W., Necula, G.: Finding and preventing run-time error handling mistakes. In: Proceedings of OOPSLA 2004, Vancouver, Canada, pp. 419–433 (October 2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Brito, P.H.S., de Lemos, R., Martins, E., Rubira, C.M.F. (2007). Architecture-Centric Fault Tolerance with Exception Handling. In: Bondavalli, A., Brasileiro, F., Rajsbaum, S. (eds) Dependable Computing. LADC 2007. Lecture Notes in Computer Science, vol 4746. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75294-3_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-75294-3_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-75293-6
Online ISBN: 978-3-540-75294-3
eBook Packages: Computer ScienceComputer Science (R0)