Architecting Fault-Tolerant Software Systems

The increasing size and complexity of software systems makes it hard to prevent or remove all possible faults. Faults that remain in the system can eventually lead to a system failure. Fault tolerance techniques are introduced for enabling systems to recover and continue operation when they are subject to faults. Many fault tolerance techniques are available but incorporating them in a system is not always trivial. We consider the following problems in designing a fault-tolerant system. First, existing reliability analysis techniques generally do not prioritize potential failures from the end-user perspective and accordingly do not identify sensitivity points of a system. Second, existing architecture styles are not well-suited for specifying, communicating and analyzing design decisions that are particularly related to the fault-tolerant aspects of a system. Third, there are no adequate analysis techniques that evaluate the impact of fault tolerance techniques on the functional decomposition of software architecture. Fourth, realizing a fault-tolerant design usually requires a substantial development and maintenance effort. To tackle the first problem, we propose a scenario-based software architecture reliability analysis method, called SARAH that benefits from mature reliability engineering techniques (i.e. FMEA, FTA) to provide an early reliability analysis of the software architecture design. SARAH evaluates potential failures from the end-user perspective to identify sensitive points of a system without requiring an implementation. As a new architectural style, we introduce Recovery Style for specifying fault-tolerant aspects of software architecture. Recovery Style is used for communicating and analyzing architectural design decisions and for supporting detailed design with respect to recovery. As a solution for the third problem, we propose a systematic method for optimizing the decomposition of software architecture for local recovery, which is an effective fault tolerance technique to attain high system availability. To support the method, we have developed an integrated set of tools that employ optimization techniques, state-based analytical models (i.e. CTMCs) and dynamic analysis on the system. The method enables the following: i ) modeling the design space of the possible decomposition alternatives, ii ) reducing the design space with respect to domain and stakeholder constraints and iii ) making the desired trade-off between availability and performance metrics. To reduce the development and maintenance effort, we propose a framework, FLORA that supports the decomposition and implementation of software architecture for local recovery. The framework provides reusable abstractions for defining recoverable units and for incorporating the necessary coordination and communication protocols for recovery.

[1]  Felix Redmill Exploring subjectivity in hazard analysis , 2002 .

[2]  Peter Verbaan,et al.  The Computational Complexity of Evolving Systems , 2006 .

[3]  R. Boumen,et al.  Integration and test plans for complex manufacturing systems , 2007 .

[4]  Martijn van Veelen,et al.  Considerations on modeling for early detection of abnormalities in locally autonomous distributed systems , 2007 .

[5]  Richard N. Taylor,et al.  Towards architecture-based self-healing systems , 2002, WOSS '02.

[6]  Marija Mikic-Rakic,et al.  Increasing the confidence in off-the-shelf components: a software connector-based approach , 2001, SSR '01.

[7]  F. Alkemade,et al.  Evolutionary agent-based economics , 2004 .

[8]  Eelco Dolstra,et al.  The purely functional software deployment model , 2006 .

[9]  M. B. van der Zwaag,et al.  Models and logics for process algebra , 2002 .

[10]  Bedir Tekinerdogan,et al.  FLORA: a framework for decomposing software architecture to introduce local recovery , 2009, Softw. Pract. Exp..

[11]  Ivan S. Zapreev Model checking Markov chains : techniques and tools , 2008 .

[12]  Frank Ruskey,et al.  Simple Combinatorial Gray Codes Constructed by Reversing Sublists , 1993, ISAAC.

[13]  Andrea Bondavalli,et al.  Stochastic Dependability Analysis of System Architecture Based on UML Models , 2002, WADS.

[14]  de Im Ilse Visser,et al.  Analyzing user perceived failure severity in consumer electronics products : incorporating the user perspective into the development process , 2008 .

[15]  Bedir Tekinerdogan,et al.  ASAAM: aspectual software architecture analysis method , 2003, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[16]  Michael L. Nelson A Survey of Reverse Engineering and Program Comprehension , 2005, ArXiv.

[17]  Clifton A. Ericson,et al.  Failure Mode and Effects Analysis , 2005 .

[18]  S. P. Luttik Choice quantification in process algebra , 2002 .

[19]  Marius Adrian Marin,et al.  An Integrated System to Manage Crosscutting Concerns in Source Code , 2008 .

[20]  Hui Gao,et al.  Design and verification of lock-free parallel algorithms , 2005 .

[21]  Michael R. Lyu,et al.  Dependability Modeling for Fault-Tolerant Software and Systems , 1995 .

[22]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[23]  Gabriele Lenzini,et al.  Integration of Analysis Techniques in Security and Fault-Tolerance , 2005 .

[24]  Bengt Jonsson,et al.  Probabilistic Process Algebra , 2001 .

[25]  RJ Roy Willemen,et al.  School timetable construction : algorithms and complexity , 2002 .

[26]  Bedir Tekinerdogan,et al.  FLORA: a framework for decomposing software architecture to introduce local recovery , 2009, Softw. Pract. Exp..

[27]  Ansgar Fehnker,et al.  Citius, Vilius, Melius : guiding and cost-optimality in model checking of timed and hybrid systems , 2002 .

[28]  Jasen Markovski,et al.  Real and stochastic time in process algebras for performance evaluation , 2008 .

[29]  Aad Mathssen,et al.  Logical Calculi for Reasoning with Binding , 2008 .

[30]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[31]  Rick Kazman,et al.  An approach to software architecture analysis for evolution and reusability , 1997, CASCON.

[32]  Rick F. van der Lans The SQL standard: a complete guide reference , 1989 .

[33]  Als-Nscort Eclipse Platform Technical Overview , 2003 .

[34]  Stephen J. Garland TIOA User Guide and Reference Manual , 2005 .

[35]  Bedir Tekinerdogan,et al.  Extending Failure Modes and Effects Analysis Approach for Reliability Analysis at the Software Architecture Design Level , 2006, WADS.

[36]  B. Gebremichael-Tesfagiorgis,et al.  Expressivity of Timed Automata Models , 2006 .

[37]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[38]  Nancy G. Leveson,et al.  Safety verification of Ada programs using software fault trees , 1991, IEEE Software.

[39]  Maurice H. ter Beek,et al.  Team Automata: A Formal Approach to the Modeling of Collaboration Between System Components , 2003 .

[40]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[41]  Marcel Verhoef,et al.  Modeling and validating distributed embedded real-time control systems , 2009 .

[42]  Cfj Christian Lange,et al.  Assessing and improving the quality of modeling : a series of empirical studies about the UML , 2007 .

[43]  Boudewijn R. Haverkort,et al.  Formal Dependability Engineering with MIOA , 2008 .

[44]  Mohammad Reza Mousavi,et al.  Structuring structural operational semantics , 2005 .

[45]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[46]  Rogério de Lemos,et al.  An architectural approach for improving availability in Web services , 2004, International Conference on Software Engineering.

[47]  Herbert Bos,et al.  Failure Resilience for Device Drivers , 2007, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07).

[48]  Bahareh Badban,et al.  Verification Techniques for Extensions of Equality Logic , 2006 .

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

[50]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[51]  Daan Leijen,et al.  The λ Abroad - A Functional Approach to Software Components , 2003 .

[52]  Anton Wijs,et al.  Silent steps in transition systems and Markov chains , 2007 .

[53]  P. Zoeteweij,et al.  Composing constraint solvers , 2005 .

[54]  Eila Niemelä,et al.  Survey of reliability and availability prediction methods from the viewpoint of software architecture , 2007, Software & Systems Modeling.

[55]  Ivan Kurtev Ivanov,et al.  Adaptability of model transformations , 2005 .

[56]  EO Esko Dijk Indoor ultrasonic position estimation using a single base station , 2004 .

[57]  Qian Yang,et al.  A survey of coverage based testing tools , 2006, AST '06.

[58]  George Candea,et al.  Microreboot - A Technique for Cheap Recovery , 2004, OSDI.

[59]  Robert Brijder,et al.  Models of natural computation : gene assembly and membrane systems , 2008 .

[60]  Ichiro Hasuo,et al.  Tracing Anonymity with Coalgebras , 2008 .

[61]  Michael Hind,et al.  Pointer analysis: haven't we solved this problem yet? , 2001, PASTE '01.

[62]  Nikolay Kavaldjiev,et al.  A run-time reconfigurable Network-on-Chip for streaming DSP applications , 2006 .

[63]  Brian Randell,et al.  Turing Memorial Lecture Facing Up to Faults , 2000, Comput. J..

[64]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[65]  T. D. Vu,et al.  Semantics and applications of process and program algebra , 2007 .

[66]  G Giovanni Russello,et al.  Separation and adaptation of concerns in a shared data space , 2006 .

[67]  David F. McAllister,et al.  Fault-tolerant software reliability engineering , 1996 .

[68]  Jonathan P. Bowen,et al.  System and Software Safety in Critical Systems , 1996 .

[69]  Ron Tischler,et al.  Static analysis of programs as an aid to debugging , 1983, SIGSOFT '83.

[70]  Cecília M. F. Rubira,et al.  A fault-tolerant architectural approach for dependable systems , 2006, IEEE Software.

[71]  Daniel R. Tauritz,et al.  Adaptive Information Filtering: Concepts and Algorithms , 2002 .

[72]  Maria Eva Magdalena Lijding,et al.  Real-Time Scheduling of Tertiary Storage , 2003 .

[73]  Eran Yahav,et al.  A survey of static analysis methods for identifying security vulnerabilities in software systems , 2007, IBM Syst. J..

[74]  Martin Bravenboer,et al.  Exercises in Free Syntax. Syntax Definition, Parsing, and Assimilation of Language Conglomerates , 2003 .

[75]  M. A. Valero Espada,et al.  Modal Abstraction and Replication of Processes with Data , 2005 .

[76]  Flavio D. Garcia Formal and Computational Cryptography: Protocols, Hashes and Commitments , 2008 .

[77]  Kishor S. Trivedi,et al.  Reliability and Performability Techniques and Tools: A Survey , 1993, MMB.

[78]  A. J. Markvoort Towards hybrid molecular simulations , 2006 .

[79]  Jianyun Zhou,et al.  Using FMEA for early robustness analysis of Web-based systems , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[80]  Gürcan Gülesir,et al.  Evolvable Behavior Specifications Using Context-Sensitive Wildcards , 2008 .

[81]  M. J. de Mol,et al.  Reasoning about functional programs : Sparkle, a proof assistant for Clean , 2009 .

[82]  Tomas Krilavicius,et al.  Hybrid Techniques for Hybrid Systems , 2006 .

[83]  M. T. Ionita,et al.  Scenario-based system architecting : a systematic approach to developing future-proof system architectures , 2005 .

[84]  Bastiaan Heeren,et al.  Top quality type error Messages , 2005 .

[85]  N.J.M. van den Nieuwelaar,et al.  Supervisory machine control by predictive-reactive scheduling , 2004 .

[86]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[87]  Tac Tim Willemse Semantics and verification in process algebras with data and timing , 2003 .

[88]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[89]  Reinder J. Bril,et al.  Real-time scheduling for media processing using conditionally guaranteed budgets , 2004 .

[90]  Karama Kanoun,et al.  A System Dependability Modeling Framework Using AADL and GSPNs , 2006, WADS.

[91]  Matthias Kuntz,et al.  Architectural dependability evaluation with Arcade , 2008, 2008 IEEE International Conference on Dependable Systems and Networks With FTCS and DCC (DSN).

[92]  L. Alvisi,et al.  A Survey of Rollback-Recovery Protocols , 2002 .

[93]  V. Laz Faculty of Mathematics and Computer Science , 2011 .

[94]  Abdelsalam Helal,et al.  Reliability, Availability, Dependability and Performability: A User-centered View , 1997 .

[95]  István Majzik,et al.  Towards Dependability Modeling of FT-CORBA Architectures , 2002, EDCC.

[96]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[97]  Pascal Durr,et al.  Resource-based Verification for Robust Composition of Aspects , 2008 .

[98]  Goran Frehse,et al.  Compositional verification of hybrid systems using simulation relations , 2005 .

[99]  M. de Jonge,et al.  To reuse or to be reused. Techniques for component composition and construction , 2003 .

[100]  Vincenzo De Florio,et al.  A survey of linguistic structures for application-level fault tolerance , 2008, CSUR.

[101]  A. L. de Groot,et al.  Practical Automaton proofs in PVS , 2000 .

[102]  Bedir Tekinerdogan,et al.  Introducing Recovery Style for Modeling and Analyzing System Recovery , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[103]  Cjf Cas Cremers Scyther : semantics and verification of security protocols , 2006 .

[104]  Arjen van Weelden,et al.  Putting Types To Good Use , 2007 .

[105]  Marcel Kyas,et al.  Verifying OCL specifications of UML models: tool support and compositionakity , 2006 .

[106]  A Adam Koprowski,et al.  Termination of rewriting and its certification , 2004 .

[107]  Alessandro Sperduti,et al.  Mining Structured Data , 2010, IEEE Computational Intelligence Magazine.

[108]  Hany H. Ammar,et al.  A scenario-based reliability analysis approach for component-based software , 2004, IEEE Transactions on Reliability.

[109]  Yennun Huang,et al.  Software Fault Tolerance in the Application Layer , 1995 .

[110]  Kishor S. Trivedi,et al.  A comprehensive model for software rejuvenation , 2005, IEEE Transactions on Dependable and Secure Computing.

[111]  V Victor Bos,et al.  Formal specification and analysis of industrial systems , 2002 .

[112]  Beth A. Schroeder On-Line Monitoring: A Tutorial , 1995, Computer.

[113]  Wpaj Wil Michiels Performance ratios for the differencing method , 2004 .

[114]  Yee Wei Law,et al.  Key management and link-layer security of wireless sensor networks : Energy-efficient attack and defense , 2005 .

[115]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[116]  I C M Ingrid Flinsenberg,et al.  Route Planning Algorithms for Car Navigation , 2009 .

[117]  Kosuke Ishii,et al.  ADVANCED FAILURE MODES AND EFFECTS ANALYSIS USING BEHAVIOR MODELING , 1997 .

[118]  de Ism Ivo Jong Integration and test strategies for complex manufacturing machines , 2008 .

[119]  Martijn M. Schrage,et al.  Proxima: a presentation-oriented editor for structured documents , 2000 .

[120]  Mary Shaw,et al.  Software architecture: the next step for object technology (panel) , 1993, OOPSLA '93.

[121]  David W. Binkley,et al.  Source Code Analysis: A Road Map , 2007, Future of Software Engineering (FOSE '07).

[122]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[123]  Sheldon M. Ross,et al.  Introduction to probability models , 1975 .

[124]  Bedir Tekinerdogan,et al.  Software Architecture Reliability Analysis Using Failure Scenarios , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[125]  Jurgen Vinju,et al.  Analysis and transformation of source code by parsing and rewriting , 2005 .

[126]  Andres Löh,et al.  Exploring generic Haskell , 2004 .

[127]  Richard W. Buskens,et al.  Model-Centric Development of Highly Available Software Systems , 2006, WADS.

[128]  Norman Biggs,et al.  Combinatorics and Graph Theory , 2007 .

[129]  Vyacheslav S. Kharchenko,et al.  F(I)MEA-Technique of Web Services Analysis and Dependability Ensuring , 2006, RODIN Book.

[130]  Holger Hermanns,et al.  Interactive Markov Chains , 2002, Lecture Notes in Computer Science.

[131]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction, Second Edition , 2000 .

[132]  RH Rudolf Mak,et al.  Design and performance analysis of data-independent stream processing systems , 2008 .

[133]  Sebastian Maneth,et al.  Models of tree translation , 2004 .

[134]  Bastiaan Stephan Graaf,et al.  Model-Driven Evolution of Software Architectures , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[135]  Harmen Kastenberg Graph-based software specification and verification , 2008 .

[136]  M. T. de Berg,et al.  Multi-functional geometric data structures , 2003 .

[137]  Bas Cornelissen Dynamic Analysis Techniques for the Reconstruction of Architectural Views , 2007, WCRE.

[138]  O. Das,et al.  The fault-tolerant layered queueing network model for performability of distributed systems , 1998, Proceedings. IEEE International Computer Performance and Dependability Symposium. IPDS'98 (Cat. No.98TB100248).

[139]  Titos Saridakis Design Patterns for Graceful Degradation , 2009, Trans. Pattern Lang. Program..

[140]  Magiel Bruntink,et al.  Renovation of idiomatic crosscutting concerns in embedded systems , 2005 .

[141]  Michel A. Reniers,et al.  Hybrid process algebra , 2005, J. Log. Algebraic Methods Program..

[142]  M. T. de Berg,et al.  Algorithms for Fat Objects: Decompositions and Applications , 2004 .

[143]  Mark W. Maier,et al.  Software Architecture: Introducing IEEE Standard 1471 , 2001, Computer.

[144]  H.M.A. van Beek,et al.  Specification and analysis of Internet applications , 2005 .

[145]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[146]  Malcolm Wallace,et al.  Modular Architectural Representation and Analysis of Fault Propagation and Transformation , 2005, FESCA@ETAPS.

[147]  Joanne Bechta Dugan Software system analysis using fault trees , 1996 .

[148]  M. G. van der Horst,et al.  Scalable block processing algorithms , 2008 .

[149]  Dmitri Jarnikov,et al.  QoS framework for video streaming in home networks , 2007 .

[150]  Martijn Hendriks,et al.  Model checking timed automata : techniques and applications , 2006 .

[151]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[152]  Wolter Pieters,et al.  La volonté machinale: understanding the electronic voting controversy , 2008 .

[153]  Y Yuechen Qian,et al.  Data synchronization and browsing for home environments , 2004 .

[154]  Liang Yin,et al.  Hierarchical composition and aggregation of state-based availability and performability models , 2003, IEEE Trans. Reliab..

[155]  Felix Bachmann,et al.  Deriving Architectural Tactics: A Step Toward Methodical Architectural Design , 2003 .

[156]  Mariëlle Stoelinga,et al.  A Compositional Semantics for Dynamic Fault Trees in Terms of Interactive Markov Chains , 2007, ATVA.

[157]  D. Graaf,et al.  Mining semi-structured data, theoretical and experimental aspects of pattern evaluation , 2008 .

[158]  van Mpwj Michiel Osch Model-based testing of hybrid systems , 2007 .

[159]  Cheun Ngen Chong Experiments in rights control : expression and enforcement , 2005 .

[160]  Erika Ábrahám,et al.  An Assertional Proof System for Multithreaded Java - Theory and Tool Support , 2005 .

[161]  Yuan-Shun Dai,et al.  A model for availability analysis of distributed software/hardware systems , 2002, Inf. Softw. Technol..

[162]  AJ Arjan Mooij,et al.  Constructive formal methods and protocol standardization , 2006 .

[163]  Doug Rosenberg,et al.  Use case driven object modeling with UML: a practical approach , 1999 .

[164]  Valérie Issarny,et al.  Dependability in the Web Services Architecture , 2002, WADS.

[165]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[166]  Spiros Mancoridis,et al.  On the automatic modularization of software systems using the Bunch tool , 2006, IEEE Transactions on Software Engineering.

[167]  Thomas Wolle,et al.  Computational aspects of treewidth : Lower bounds and network reliability , 2005 .

[168]  Bedir Tekinerdogan,et al.  Synthesis - Based Software Architecture Design , 2001 .

[169]  H. A. deJong Flexible Heterogeneous Software Systems , 2007 .

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

[171]  G. Rozenberg,et al.  Effective models for the structure of ð-calculus processes with replication , 2001 .

[172]  Dennis Gannon,et al.  Checkpoint and restart for distributed components in XCAT3 , 2004, Fifth IEEE/ACM International Workshop on Grid Computing.

[173]  Boudewijn R. Haverkort,et al.  Specification techniques for Markov reward models , 1993, Discret. Event Dyn. Syst..

[174]  Juan Visente Guillen Scholten,et al.  Mobile Channels for Exogenous Coordination of Distributed Systems: Semantics, Implementation and Composition , 2007 .

[175]  Jens R. Calamé,et al.  Testing reactive systems with data: enumerative methods and constraint solving , 2008 .

[176]  J. F. C. Kingman,et al.  Dynamic Probabilistic Systems. Volume 1: Markov Models. Volume 2: Semi‐Markov and Decision Processes , 1972 .

[177]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

[178]  F. Bartels,et al.  On Generalised Coinduction and Probabilistic Specification Formats , 2004 .

[179]  Mohammad Ali Abam New data structures and algorithms for mobile data , 2007 .

[180]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[181]  James R. Larus,et al.  Sealing OS processes to improve dependability and safety , 2007, EuroSys '07.

[182]  Neeraj Suri,et al.  Component-Based Synthesis of Dependable Embedded Software , 2002, FTRTFT.

[183]  Juan Antonio de la Puente,et al.  A Software Architecture Evaluation Model , 1998, ESPRIT ARES Workshop.

[184]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[185]  Martijn Warnier,et al.  Language based security for Java and JML , 2006 .

[186]  Yiannis Papadopoulos,et al.  Automating the failure modes and effects analysis of safety critical systems , 2004, Eighth IEEE International Symposium on High Assurance Systems Engineering, 2004. Proceedings..

[187]  Ncwm Niels Braspenning Model-based integration and testing of high-tech multi-disciplinary systems , 2008 .

[188]  Jjd Joep Aerts Random redundant storage for video on demand , 2003 .

[189]  Simona Orzan,et al.  On Distributed Verification and Verified Distribution , 2004 .

[190]  E Elena Mumford,et al.  Drawing graphs for cartographic applications , 2008 .

[191]  Ana Sokolova,et al.  Coalgebraic analysis of probabilistic systems , 2005 .

[192]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[193]  Dino Salvo Distefano,et al.  On model checking the dynamics of object-based software : a foundational approach , 2003 .

[194]  C.-B. Breunesse On JML: topics in tool-assisted verification of Java programs , 2006 .

[195]  Michael B. Jones,et al.  Mach: a system software kernel , 1989, Digest of Papers. COMPCON Spring 89. Thirty-Fourth IEEE Computer Society International Conference: Intellectual Leverage.

[196]  U Uzma Khadim,et al.  Process algebras for hybrid systems : comparison and development , 2008 .

[197]  M. Torabi Dashti,et al.  Keeping Fairness Alive : Design and formal verification of optimistic fair exchange protocols , 2008 .

[198]  Eoin Woods,et al.  Using Architectural Perspectives , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[199]  Donald J. Reifer,et al.  Software Failure Modes and Effects Analysis , 1979, IEEE Transactions on Reliability.

[200]  EM Elena Bortnik,et al.  Formal methods in support of SMC design , 2008 .

[201]  Jeroen Eggermont,et al.  Data Mining using Genetic Programming : Classification and Symbolic Regression , 2005 .

[202]  Katerina Goseva-Popstojanova,et al.  Architecture-based approach to reliability assessment of software systems , 2001, Perform. Evaluation.

[203]  Cecília M. F. Rubira,et al.  A Dependable Architecture for COTS-Based Software Systems Using Protective Wrappers , 2003, WADS.

[204]  M. Niqui,et al.  Formalising Exact Arithmetic. Representations, Algorithms and Proofs , 2004 .

[205]  Jan Bosch,et al.  Architecture level prediction of software maintenance , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[206]  Jeroen Doumen,et al.  Searching in encrypted data , 2004 .

[207]  Anton Wijs,et al.  What to do next? Analysing and optimising system behaviour in time , 2007 .

[208]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[209]  R Ronald Ruimerman,et al.  Modeling and remodeling in bone tissue , 2005 .

[210]  Joost Visser,et al.  Generic traversal over typed source code representations , 2003 .

[211]  George Candea,et al.  Improving availability with recursive microreboots: a soft-state system case study , 2004, Perform. Evaluation.

[212]  Nicholas Nethercote,et al.  Valgrind: a framework for heavyweight dynamic binary instrumentation , 2007, PLDI '07.

[213]  Ling Cheung,et al.  Reconciling nondeterministic and probabilistic choices , 2006 .

[214]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[215]  Mariëlle Stoelinga,et al.  Alea jacta est : verification of probabilistic, real-time and parametric systems , 2002 .

[216]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[217]  Swapna S. Gokhale,et al.  Architecture-Based Software Reliability Analysis: Overview and Limitations , 2007, IEEE Transactions on Dependable and Secure Computing.

[218]  N. H. Lassing,et al.  On software architecture analysis of flexibility, Complexity of changes: Size isn't everything , 1999 .

[219]  Vincenzo Grassi,et al.  An XML-Based Language to Support Performance and Reliability Modeling and Analysis in Software Architectures , 2005, QoSA/SOQUA.

[220]  Laura Brandán Briones,et al.  Theories for Model-based Testing: Real-time and Coverage , 2007 .

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

[222]  Cruz Filipe,et al.  Constructive real analysis : a type-theoretical formalization and applications , 2004 .

[223]  Ka Lok Man,et al.  Formal specification and analysis of hybrid systems , 2006 .

[224]  Radu Mateescu,et al.  CADP 2006: A Toolbox for the Construction and Analysis of Distributed Processes , 2007, CAV.

[225]  Atze Dijkstra Stepping through Haskell , 2000 .

[226]  de Hayco Jong Flexible heterogeneous software systems , 2007 .

[227]  Hojjat Adeli,et al.  Spiking Neural Networks , 2009, Int. J. Neural Syst..

[228]  Jean Arlat,et al.  Architectural Issues in Software Fault Tolerance , 1995 .

[229]  Johan Vounckx,et al.  Survey of Backward Error Recovery Techniques for Multicomputers Based on Checkpointing and Rollback , 1993 .

[230]  Daniel Kroening,et al.  Decision Procedures for Equality Logic and Uninterpreted Functions , 2008 .

[231]  Georg Molter Integrating SAAM in Domain-centric and Reuse-based Development Processes , 1999 .

[232]  Bradley R. Schmerl,et al.  Increasing System Dependability through Architecture-Based Self-Repair , 2002, WADS.

[233]  Jan Bosch,et al.  Architecture-level modifiability analysis (ALMA) , 2004, J. Syst. Softw..

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

[235]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[236]  T. Kuipers,et al.  Techniques for understanding legacy software systems , 2002 .