Abstract
Several approaches exist for modeling recovery of fault- tolerant systems during the requirements analysis phase. Most of these approaches are based on design techniques for recovery. Such design-biased analysis methods unnecessarily constrain an analyst when specifying recovery requirements. To remedy such restrictions, we present an object analysis pattern, called the corrector pattern, that provides a generic reusable strategy for modeling error recovery requirements for embedded systems. In addition to templates for constructing structural and behavioral models of recovery requirements, the corrector pattern also contains templates for specifying properties that can be formally verified to ensure the consistency between recovery and functional requirements. Additional property templates can be instantiated and verified to ensure the fault-tolerance of the system to which the corrector pattern has been applied. We validate our analysis method in terms of UML diagrams, where we (1) use the corrector pattern to model recovery in UML behavioral models, (2) generate and model check formal models of the resulting UML models, and (3) visualize the model checking results in terms of the UML diagrams to facilitate model refinement. We demonstrate our analysis method in the context of an industrial automotive application.
This work was partially sponsored by NSF grants EIA-0000433, EIA-0130724, CDA-9700732, CCR-9901017, CNS-0551622, CCF-0541131, NSF CAREER CCR-0092724, ONR grant N00014-011-0744, DARPA Grant OSURS01-C-1901, Siemens Corporate Research, a grant from the Michigan State University’s Quality Fund, and a grant from Michigan Technological University.
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
Campbell, R.H., Randell, B.: Error recovery in asynchronous systems. IEEE Transactions on Software Engineering SE-12(8) (1986)
Douglass, B.P.: Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns. Addison-Wesley, Reading (1999)
Gomaa, H.: Designing Concurrent, Distributed, and Real-Time Application with UML. Addison-Wesley, Reading (2000)
Arora, A., Gouda, M.G.: Closure and convergence: A foundation of fault-tolerant computing. IEEE Transactions on Software Engineering 19(11), 1015–1027 (1993)
Demirbas, M., Arora, A.: Convergence refinement. In: International Conference on Distributed Computing Systems, pp. 589–597 (2002)
Randall, B.: System structure for software fault-tolerance. IEEE Transactions on Software Engineering, 220–232 (1975)
Cristian, F.: Exception handling and software fault-tolerance. IEEE Transactions on Computers, C-31(6) (1982)
Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22(4), 299–319 (1990)
Elnozahy, E.N., Alvisi, L., Wang, Y.-M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Computing Surveys 34(3), 375–408 (2002)
Saridakis, T.: A system of patterns for fault-tolerance. In: EuroPLoP. The 7th European Conference on Pattern Languages of Programs, pp. 535–582 (2002)
UML profile for modeling quality of service and fault tolerance characteristics and mechanisms (2002), http://www.omg.org/docs/ptc/04-06-01.pdf
France, R., Georg, G.: An aspect-based approach to modeling fault-tolerance concerns. Technical Report 02-102, Computer Science Department, Colorado State University (2002)
Tichy, M., Schilling, D., Giese, H.: Design of self-managing dependable systems with uml and fault tolerance patterns. In: WOSS. Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems, Newport Beach, CA, pp. 105–109 (2004)
Tkatchenko, M., Kiczales, G.: Uniform support for modeling crosscutting structure. Appeared in AOM Workshop held in conjunction with AOSD (2005)
Arora, A.: A foundation of fault-tolerant computing. PhD thesis, The University of Texas at Austin (1992)
Ilic, D., Troubitsyna, E.: Modeling fault tolerance of transient faults. In: Proceedings of Rigorous Engineering of Fault-Tolerant Systems, pp. 84–92 (2005)
Laibinis, L., Troubitsyna, E.: Fault tolerance in use case modeling. In: the Workshop on Requirements for High Assurance Systems (2005)
Rubira, C.M.F., de Lemos, R., Ferreira, G.R.M., Castor Filho, F.: Exception handling in the development of dependable component-based systems. Software Practice and Experience 35, 195–236 (2005)
Shui, A., Mustafiz, S., Kienzle, J., Dony, C.: Exceptional use cases. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 568–583. Springer, Heidelberg (2005)
Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Communications of the ACM 17(11) (1974)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company, Reading (1995)
Fowler, M.: Analysis Patterns: Reusable Object Models. Addison-Wesley, Reading (1997)
Konrad, S., Cheng, B.H.C., Campbell, L.A.: Object analysis patterns for embedded systems. IEEE Transactions on Software Engineering 30(12), 970–992 (2004)
McUmber, W.E., Cheng, B.H.C.: A general framework for formalizing UML with formal languages. In: The proceedings of 23rd International Conference of Software Engineering, pp. 433–442 (2001)
Holzmann, G.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)
Goldsby, H., Cheng, B.H.C., Konrad, S., Kamdoum, S.: A visualization framework for the modeling and formal analysis of high assurance systems. In: Proceedings of the ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS), Genova, Italy, pp. 707–721 (2006)
Ebnenasir, A., Cheng, B.H.C.: A framework for modeling and analyzing fault-tolerance. Technical Report MSU-CSE-06-5, Computer Science and Engineering, Michigan State University, East Lansing, Michigan (January 2006)
Ebnenasir, A., Kulkarni, S.S.: Hierarchical presynthesized components for automatic addition of fault-tolerance: A case study. In: The extended abstracts of the ACM workshop on the Specification and Verification of Component-Based Systems (SAVCBS), Newport Beach, California (2004)
Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1999)
Kulkarni, S.S., Arora, A.: Automating the addition of fault-tolerance. In: Proceedings of the 6th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems, pp. 82–93 (2000)
Fischer, M.J., Lynch, N.A., Peterson, M.S.: Impossibility of distributed consensus with one faulty processor. Journal of the ACM 32(2), 373–382 (1985)
Kulkarni, S.S., Ebnenasir, A.: Enhancing the fault-tolerance of nonmasking programs. In: ICDCS. Proceedings of the 23rd IEEE International Conference on Distributed Computing Systems, pp. 441–449 (2003)
Gries, D.: The Science of Programming. Springer, Heidelberg (1981)
Tiwari, A., Rueß, H., Saïdi, H., Shankar, N.: A technique for invariant generation. In: Margaria, T., Yi, W. (eds.) ETAPS 2001 and TACAS 2001. LNCS, vol. 2031, pp. 113–127. Springer, Heidelberg (2001)
Varghese, G.: Self-stabilization by local checking and correction. PhD thesis, MIT/LCS/TR-583 (1993)
Avizienis, A., Laprie, J.C., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing 1(1) (2004)
Ebnenasir, A.: Automatic Synthesis of Fault-Tolerance. PhD thesis, Michigan State University (2005)
Ebnenasir, A., Kulkarni, S.S.: FTSyn: A framework for automatic synthesis of fault-tolerance, http://www.cs.mtu.edu/~aebnenas/research/tools/ftsyn.htm
Kulkarni, S.S., Ebnenasir, A.: Complexity issues in automated synthesis of failsafe fault-tolerance. IEEE Transactions on Dependable and Secure Computing 2(3), 201–215 (to appear)
Mittal, N., Garg, V.K.: On detecting global predicates in distributed computations. In: ICDCS. Proceedings of the 21st IEEE International Conference on Distributed Computing Systems, Phoenix, Arizona, USA, pp. 3–10, (April 2001)
Garg, V.K., Waldecker, B.: Detection of strong unstable predicates in distributed programs. IEEE Transactions on Parallel and Distributed Systems 7(12), 1323–1333 (1996)
Arora, A., Kulkarni, S.S.: Detectors and Correctors: A theory of fault-tolerance components. In: ICDCS. IEEE International Conference on Distributed Computing Systems, pp. 436–443 (May 1998)
Emerson, E.A.: Handbook of Theoretical Computer Science: ch. 16, Temporal and Modal Logic. Elsevier Science Publishers BV, Amsterdam (1990)
Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: ICSE 1999. Proceedings of the 21st International Conference on Software Engineering, Los Angeles, CA, USA, pp. 411–420 (1999)
Lopez-Benitez, N.: Dependability modeling and analysis of distributed programs. IEEE Transactions on Software Engineering 20(5), 345–352 (1994)
Bondavalli, A., et al.: Dependability analysis in the early phases of UML-based system design. International Journal of Computer Systems Science and Engineering 5, 265–275 (2001)
Huszerl, G., Majzik, I.: Modeling and analysis of redundancy management in distributed object-oriented systems by using uml statecharts. In: 27th Euromicro Conference, pp. 200–207 (2001)
Xu, J., Romanovsky, A., Randell, B.: Coordinated exception handling in distributed object systems: From model to system implementation. In: Proceedings of the 18th IEEE International Conference on Distributed Computing Systems, pp. 12–21. IEEE Computer Society Press, Los Alamitos (1998)
Beder, D.M., Randall, B., Romanovsky, A., Snow, C.R., Stroud, R.J.: An application of fault-tolerance patterns and coordinated atomic actions to a problem in railway scheduling. ACM SIGOPS Operating System Review 34(4) (2000)
Garcia, A.F., Beder, D.M., Rubira, C.M.F.: A unified meta-level software architecture for sequential and concurrent exception handling. The Computer Journal, British Computer Society 44(6), 569–587 (2001)
Beder, D., Rubira, C.: A meta-level software architecture based on patterns for developing dependable collaboration-based designs. In: Proceedings of the second Brazilian workshop on fault-tolerance (2000)
Xu, J., Randell, B., Romanovsky, A.B., Rubira, C.M.F., Stroud, R.J., Wu, Z.: Fault tolerance in concurrent object-oriented software through coordinated error recovery. In: FTCS, pp. 499–508 (1995)
Belli, F., Grosspietsch, K.E.: Specification of fault-tolerant system issues by predicate/transition nets and regular expressions-approach and case study. IEEE Transactions on Software Engineering 17(6), 513–526 (1991)
Magee, J., Maibaum, T.: Towards specification, modelling and analysis of fault tolerance in self managed systems. In: Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems, pp. 30–36 (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Ebnenasir, A., Cheng, B.H.C. (2007). A Pattern-Based Approach for Modeling and Analyzing Error Recovery. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems IV. Lecture Notes in Computer Science, vol 4615. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74035-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-74035-3_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74033-9
Online ISBN: 978-3-540-74035-3
eBook Packages: Computer ScienceComputer Science (R0)