Advertisement

An Architectural-Based Reflective Approach to Incorporating Exception Handling into Dependable Software

  • Alessandro F. Garcia
  • Cecìlia M. F. Rubira
Chapter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2022)

Abstract

Modern object-oriented software is inherently complex and has to cope with an increasing number of exceptional conditions to meet the system’s dependability requirements. In this context, the goal of our work is twofold: (i) to present an exception handling model which is suitable for developing dependable object-oriented software, and (ii) to provide a systematic approach to incorporating exception handling during the design stage, that is, from the architectural design stage to the detailed design stage. The proposed approach employs the computational reflection concept to achieve a clear and transparent separation of concerns between the application’s functionality and the exception handling facilities. This separation minimizes the complexity caused by the handling of abnormal behavior and facilitates the task of building dependable software with better readability, maintainability and reusability.

Keywords

Design Pattern Software Architecture Exception Handling Exception Tree Dependable Software 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Avizienis, A.: Toward Systematic Design of Fault-Tolerant Systems. Computer 30(4):51–58 (1997)CrossRefGoogle Scholar
  2. 2.
    Beder, D., Romanovsky, A., Randel, A., Snow, C., Stroud, R.: An Application of Fault Tolerance Patterns and Coordinated Atomic Actions to a Problem in Railway Scheduling. ACM Operating System Review, 34(4):21–31 (2000)CrossRefGoogle Scholar
  3. 3.
    Borgida, A.: Language Features for Flexible Handling of Exceptions in Information Systems. ACM Transactions on Database Systems, 10(4):565–603 (1985)CrossRefGoogle Scholar
  4. 4.
    Borgida, A.: Exceptions in Object-Oriented Languages. ACM Sigplan Notices, 21(10):107–119 (1986)CrossRefGoogle Scholar
  5. 5.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: A System of Patterns: Patterns-Oriented Software. John Wiley & Sons, (1996)Google Scholar
  6. 6.
    Campbell, R., Randell, B.: Error Recovery in Asynchronous Systems. IEEE Trans-actions on Software Engineering, 12(8):811–826 (1986)Google Scholar
  7. 7.
    Cristian, F.: Exception Handling and Software Fault Tolerance. IEEE Transactions on Computers, C-31(6):531–540, (1982)CrossRefGoogle Scholar
  8. 8.
    Cui, Q., Gannon, J.: Data-Oriented Exception Handling. IEEE Transactions on Software Engineering, 18(5):393–401, (1992)CrossRefGoogle Scholar
  9. 9.
    Dony, C.: Exception Handling and Object-Oriented Programming: Towards a Synthesis. ACM Sigplan Notices, 25(10): 322–330, (1990)CrossRefGoogle Scholar
  10. 10.
    de Lemos, R., Romanovsky, A.: Exception Handling in the Software Lifecycle. Int. Journal of Computer Systems Science and Engineering, (Accepted in 2000)Google Scholar
  11. 11.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns-Elements of Reusable Object-Oriented Software. Addison Wesley Publishing Company, (1995)Google Scholar
  12. 12.
    Garcia, A.: Exception Handling in Concurrent Object-Oriented Software. Master’s thesis, Institute of Computing, University of Campinas, Brazil, March (2000)Google Scholar
  13. 13.
    Garcia, A., An Exception Handling Mechanism for Developing Dependable Object-Oriented Software Based on a Meta-Level Approach. Proceedings of the 10th IEEE ISSRE, USA, November (1999), 52–61Google Scholar
  14. 14.
    Garcia, A., Beder, D., Rubira, C.: An Exception Handling Software Architecture for Developing Fault-Tolerant Software. Proceedings of the 5th IEEE HASE, USA, November (2000), 311–320Google Scholar
  15. 15.
    Garcia, A., Rubira, C., Romanovsky, A., Xu, J.: A Comparative Study of Exception Handling Mechanisms for Building Dependable Object-Oriented Software. Technical Report CS-TR-714, Comput. Dept., Univ. of Newcastle upon Tyne, (2000)Google Scholar
  16. 16.
    Goodenough, J.: Exception Handling: Issues and a Proposed Notation. Communi-cations of the ACM, 18(12): 683–696, (1975)zbMATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Liskov, B., Snyder, A.: Exception Handling in CLU. IEEE Transactions on Software Engineering, 5(6):546–558, (1979)CrossRefGoogle Scholar
  18. 18.
    Maes, P.: Concepts and Experiments in Computacional Reflection. ACM SIG-PLAN Notices, 22(12):147–155, (1987)CrossRefGoogle Scholar
  19. 19.
    Moon, D., Weinreb, D.: Signalling and Handling Conditions. LISP Machine Manual, 4th Edition, MIT Artif. Intelligence Lab, Cambridge, Massachussets, (1983)Google Scholar
  20. 20.
    Oliva, A., Buzato, L.: Composition of Meta-Objects in Guaraná. Proceedings of the Workshop on Reflective Programming in C++ and Java, OOPSLA’98, Vancouver, Canada, (1998), 86–90Google Scholar
  21. 21.
    Pitman, K.: Error/Condition Handling. Contribution to WG16, revision 18, Proposals for ISO-LISP. AFNOR, ISO/IEC JTC1/SC 22/WG 16N15, (1988)Google Scholar
  22. 22.
    Shaw, M. and Garlan, D.: Software Architecture-Perspectives on an Emerging Discipline. Prentice Hall, (1996)Google Scholar
  23. 23.
    Sommervile, I.: Software Engineering. Fifth Edition, Addison-Wesley, (1995)Google Scholar
  24. 24.
    van Lamsweerde, A., Letier, E.: Handling Obstacles in Goal-Oriented Requirements Engineering. IEEE Trans. on Software Engineering, 26(10):978–1005, (2000)CrossRefGoogle Scholar
  25. 25.
    Yemini, S., Berry, D.: A Modular Verifiable Exception Handling Mechanism. ACM Transactions on Programming Languages and Systems, 7(2):214–243, (1985)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Alessandro F. Garcia
    • 1
  • Cecìlia M. F. Rubira
    • 2
  1. 1.Computer Science DepartmentPUC-RioBrazil
  2. 2.Institute of ComputingUniversity of Campinas (UNICAMP)Brazil

Personalised recommendations