Skip to main content

A Pattern-Based Approach for Modeling and Analyzing Error Recovery

  • Chapter
Book cover Architecting Dependable Systems IV

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4615))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Campbell, R.H., Randell, B.: Error recovery in asynchronous systems. IEEE Transactions on Software Engineering SE-12(8) (1986)

    Google Scholar 

  2. Douglass, B.P.: Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks and Patterns. Addison-Wesley, Reading (1999)

    Google Scholar 

  3. Gomaa, H.: Designing Concurrent, Distributed, and Real-Time Application with UML. Addison-Wesley, Reading (2000)

    Google Scholar 

  4. Arora, A., Gouda, M.G.: Closure and convergence: A foundation of fault-tolerant computing. IEEE Transactions on Software Engineering 19(11), 1015–1027 (1993)

    Article  Google Scholar 

  5. Demirbas, M., Arora, A.: Convergence refinement. In: International Conference on Distributed Computing Systems, pp. 589–597 (2002)

    Google Scholar 

  6. Randall, B.: System structure for software fault-tolerance. IEEE Transactions on Software Engineering, 220–232 (1975)

    Google Scholar 

  7. Cristian, F.: Exception handling and software fault-tolerance. IEEE Transactions on Computers, C-31(6) (1982)

    Google Scholar 

  8. Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22(4), 299–319 (1990)

    Article  Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. Saridakis, T.: A system of patterns for fault-tolerance. In: EuroPLoP. The 7th European Conference on Pattern Languages of Programs, pp. 535–582 (2002)

    Google Scholar 

  11. UML profile for modeling quality of service and fault tolerance characteristics and mechanisms (2002), http://www.omg.org/docs/ptc/04-06-01.pdf

  12. France, R., Georg, G.: An aspect-based approach to modeling fault-tolerance concerns. Technical Report 02-102, Computer Science Department, Colorado State University (2002)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Tkatchenko, M., Kiczales, G.: Uniform support for modeling crosscutting structure. Appeared in AOM Workshop held in conjunction with AOSD (2005)

    Google Scholar 

  15. Arora, A.: A foundation of fault-tolerant computing. PhD thesis, The University of Texas at Austin (1992)

    Google Scholar 

  16. Ilic, D., Troubitsyna, E.: Modeling fault tolerance of transient faults. In: Proceedings of Rigorous Engineering of Fault-Tolerant Systems, pp. 84–92 (2005)

    Google Scholar 

  17. Laibinis, L., Troubitsyna, E.: Fault tolerance in use case modeling. In: the Workshop on Requirements for High Assurance Systems (2005)

    Google Scholar 

  18. 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)

    Article  Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Communications of the ACM 17(11) (1974)

    Google Scholar 

  21. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company, Reading (1995)

    Google Scholar 

  22. Fowler, M.: Analysis Patterns: Reusable Object Models. Addison-Wesley, Reading (1997)

    Google Scholar 

  23. 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)

    Article  Google Scholar 

  24. 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)

    Google Scholar 

  25. Holzmann, G.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)

    Article  MathSciNet  Google Scholar 

  26. 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)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley, Reading (1999)

    Book  Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Article  Google Scholar 

  32. 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)

    Google Scholar 

  33. Gries, D.: The Science of Programming. Springer, Heidelberg (1981)

    MATH  Google Scholar 

  34. 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)

    Chapter  Google Scholar 

  35. Varghese, G.: Self-stabilization by local checking and correction. PhD thesis, MIT/LCS/TR-583 (1993)

    Google Scholar 

  36. 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)

    Google Scholar 

  37. Ebnenasir, A.: Automatic Synthesis of Fault-Tolerance. PhD thesis, Michigan State University (2005)

    Google Scholar 

  38. Ebnenasir, A., Kulkarni, S.S.: FTSyn: A framework for automatic synthesis of fault-tolerance, http://www.cs.mtu.edu/~aebnenas/research/tools/ftsyn.htm

  39. 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)

    Google Scholar 

  40. 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)

    Google Scholar 

  41. 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)

    Article  Google Scholar 

  42. 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)

    Google Scholar 

  43. Emerson, E.A.: Handbook of Theoretical Computer Science: ch. 16, Temporal and Modal Logic. Elsevier Science Publishers BV, Amsterdam (1990)

    Google Scholar 

  44. 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)

    Google Scholar 

  45. Lopez-Benitez, N.: Dependability modeling and analysis of distributed programs. IEEE Transactions on Software Engineering 20(5), 345–352 (1994)

    Article  MATH  Google Scholar 

  46. 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)

    Google Scholar 

  47. 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)

    Google Scholar 

  48. 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)

    Google Scholar 

  49. 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)

    Google Scholar 

  50. 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)

    MATH  Google Scholar 

  51. 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)

    Google Scholar 

  52. 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)

    Google Scholar 

  53. 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)

    Article  Google Scholar 

  54. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Rogério de Lemos Cristina Gacek Alexander Romanovsky

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics