Architecting Fault-tolerant Component-based Systems: from requirements to testing

Fault tolerance is one of the most important means to avoid service failure in the presence of faults, so to guarantee they will not interrupt the service delivery. Software testing, instead, is one of the major fault removal techniques, realized in order to detect and remove software faults during software development so that they will not be present in the final product. This paper shows how fault tolerance and testing can be used to validate component-based systems. Fault tolerance requirements guide the construction of a fault-tolerant architecture, which is successively validated with respect to requirements and submitted to testing. The theory is applied over a mining control system running example.

[1]  Saurabh Sinha,et al.  Analysis and Testing of Programs with Exception Handling Constructs , 2000, IEEE Trans. Software Eng..

[2]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[3]  Thierry Jéron,et al.  TGV : theory , principles and algorithms A tool for the automatic synthesis of conformance test cases for non-deterministic reactive systems , 2004 .

[4]  F. C. Filho,et al.  A framework for analyzing exception flow in software architectures , 2005, WADS@ICSE.

[5]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[6]  Valérie Issarny,et al.  Architecture-based exception handling , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[7]  Rogério de Lemos,et al.  Exception handling in the software lifecycle , 2001, Comput. Syst. Sci. Eng..

[8]  Henry Muccini,et al.  CHARMY: an extensible tool for architectural analysis , 2005, ESEC/FSE-13.

[9]  Cecília M. F. Rubira,et al.  A Method for Modeling and Testing Exceptions in Component-Based Software Development , 2005, LADC.

[10]  Sushil Jajodia,et al.  A fault tolerance approach to survivability , 1998, Proceedings Computer Security, Dependability, and Assurance: From Needs to Solutions (Cat. No.98EX358).

[11]  Cecília M. F. Rubira,et al.  Exception handling in the development of dependable component‐based systems , 2005, Softw. Pract. Exp..

[12]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[13]  Matthew C. Elder,et al.  Fault tolerance in critical information systems , 2001 .

[14]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[15]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[16]  Henry Muccini,et al.  DUALLY: Putting in Synergy UML 2.0 and ADLs , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[17]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[18]  Antonia Bertolino,et al.  Software Testing Research and Practice , 2003, Abstract State Machines.

[19]  Alexander K. Petrenko,et al.  Electronic Notes in Theoretical Computer Science , 2009 .

[20]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[21]  S. Sieber On a decision method in restricted second-order arithmetic , 1960 .

[22]  Henry Muccini,et al.  Using software architecture for code testing , 2004, IEEE Transactions on Software Engineering.

[23]  Paola Inverardi,et al.  A scenario based notation for specifying temporal properties , 2006, SCESM '06.