- Open Access
A systematic approach for structuring exception handling in robust component-based software
Journal of the Brazilian Computer Society volume 10, pages 3–17 (2004)
Component-based development (CBD) is recognized today as the standard paradigm for structuring large software systems. However, the most popular component models and component-based development processes provide little guidance on how to systematically incorporate exception handling into component-based systems. The problem of how to employ language-level exception handling mechanisms to introduce redundancy in componentbased systems is recognized by CBD practitioners as very difficult and often not adequately solved. As a consequence, the implementation of the redundant exceptional behaviour causes a negative impact, instead of a positive one, on system and maintainability. In this paper, we propose an approach for the construction of dependable component-based systems that integrates two complementary strategies: (i) a global exception handling strategy for inter-component composition and (ii) a local exception handling strategy for dealing with errors in reusable components. A case study illustrates the application of our approach to a real software system.
T. Anderson and P A. Lee. Fault Tolerance: Principles and Practice. Springer-Verlag, Wine, Austria, 2nd Edition, 1990.
P. H. S. Brito, F. C. Filho and C. M. F. Rubira. A method for modeling exceptions in component-based development (in portuguese). In Proc. IV Brazilian Workshop on Component-Based Development (WDBC’2004), pp. 29–34, João Pessoa, PB, Brazil, Sep. 2004.
F. Castor Filho, P. A. de C. Guerra and C. M. F. Rubira. An Architectural-level Exception Handling System for Component-based Applications. In: Proc. First Latin-American Symposium on Dependable Computing, LNCS 2847, pp. 321-340, Springer-Verlag, 2003.
F. Castor Filho and C. M. F. Rubira. Implementing Coordinated Error Recovery for Distributed Object-Oriented Systems in AspectJ. Journal of Universal Computer Science, 10(7):843–858, Jul. 2004.
F. Castor Filho, P. H. S. Brito, and C. M. F. Rubira. A Framework for Analyzing Exception Flow in Software Architectures. Submitted to IV ICSE Workshop on Architecting Dependable Systems (WADS’2005).
J. Cheesman and J. Daniels. UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, Reading, MA., USA, Oct. 2000.
J. E. Cook and J. A. Dage. Highly reliable upgrading of components. In Proc. 21st International Conference on Software Engineering (ICSE’1999), pp. 203–212, Los Angeles, CA, ACM Press, May 1999.
F. Cristian. Exception Handling. In: T. Anderson (Ed.) Dependability of Resilient Computers. BSP Professional Books, UK, pp. 68–97, 1989.
G. Doshi. Best practices for exception handling. ONJava Website. November 2003. http:// www.oreillynet.com/pub/a/onjava/2003/11/19/ exceptions.html
D. D’Souza and A. C. Wills. Objects, Components and Frameworks with UML: The Catalysis Approach. Addison-Wesley, 2nd edition, 1999.
T. Elrad, R. E. Filman and A. Bader. Aspect-oriented programming. Communications of the ACM, 44(10):28–32, 2001.
E. Gamma, R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of Reusable Software Systems. Addison-Wesley, 1995.
D. Garlan, R. Allen and J. Ockerbloom. Architectural Mismatch: Why Reuse Is So Hard. IEEE Software. 12(6):17–26, 1995.
D. Garlan, R. T. Monroe and D. Wile. Acme: Architectural Description of Component-Based Systems. In: G. T. Leavens and M. Sitamaran (Eds.) Foundations of Component Based Systems, chapter 3, pp. 47–67. Cambridge University Press, Cambridge, UK. 2000.
P. A. de C. Guerra, F. Castor Filho V. A. Pagano and C. M. F. Rubira. Structuring exception handling for dependable component-based software systems. In Proc. 30th Euromicro Conference, Rennes, France, IEEE Computer Society Press. Sep. 2004.
P. A. de C. Guerra, C. M. F. Rubira and R. de Lemos. A Fault-Tolerant Software Architecture for Component-Based Software Systems. In Architecting Dependable Systems. LNCS 2677. Springer-Verlag. 2003.
P. A. de C. Guerra. An Architectural Approach for Fault Tolerance in Component-Based Software Systems (in portuguese). PhD thesis, Universidade Estadual de Campinas, 2004.
V. Issarny and J. P. Banatre. Architecture-Based Exception Handling. In Proc. 34th Annual Hawaii International Conference on System Sciences (HICSS’34). IEEE Computer Society Press, 2001.
A. Kalakech et al. Benchmarcing operating system dependability: Windows 2000 as a case study. In Proc. 10th IEEE Pacific Rim International Symposium on Dependable Computing (PRDC’2004), pp. 261–270, Papeete, Tahiti, IEEE Computer Society Press, Mar. 2004.
M. D. McIlroy. Mass-Produced Software Components. In P. Naur and B. Randell (Eds) Software Engineering. Petrocelli/Charter, Brussels, Belgium, pp. 88–98. 1976.
N. Medvidovic and R. N. Taylor. A framework for classifying and comparing architecture description languages. In Proc. 6th Joint ACM/Sigsoft Symposium on Foundations of Software Engineering and European Software Engineering Conference (FSE/ESEC’97), Sep. 1997.
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, New Jersey, 1988.
B. Meyer. The grand challenge of trusted components. In Proc. 25th International Conference on Software Engineering, pp. 660-667. IEEE Computer Society Press, May 2003.
Microsoft Corporation. Microsoft .Net Information. Available at http://www.microsoft.com/net/
Object Management Group. Unified Modeling Language: Superstructure, version 2.0. Jul. 2003.
V. A. Pagano. An architectural approach based on exception handling for the design of componentbased software systems (in portuguese). Master’s thesis, Universidade Estadual de Campinas, 2004.
M. Rakic and N. Medvidovic. Increasing the confidence in off-the-shelf components: A software connector-based approach. In Proc. 2001 Symposium on Software Reusability, pp. 11-18. ACM/SIGSOFT, May 2001.
D. Reimer and H. Srinivasan. Analyzing exception usage in large java applications. In Proc. ECOOP’2003 -Workshop on Exception Handling for Object-Oriented Systems, pp. 10-19, Darmstadt, Germany, Jul. 2003.
C. M. F. Rubira, R. de Lemos, G. Ferreira and F. Castor Filho. Exception handling in the development of dependable component-based systems. Software — Practice and Experience, 2005.
M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Morgan Kaufmann Publishers, 1996.
S. Shenoy. Best practices in EJB exception handling. In IBM developerWorks website. Available at http:/ /www-106.ibm.com/developerworks/library/jejbexcept. 2002.
J. Siedersleben. Errors and exceptions — rights and responsibilities. In Proc. ECOOP’2003 -Workshop on Exception Handling for Object-Oriented Systems, pp. 2-9, Darmstadt, Germany, Jul. 2003.
M. Silva Jr., P. A. de C. Guerra and C. M. F. Rubira. A Java Component Model for Evolving Software Systems. In Proc. 18th IEEE International Symposium on Automated Software Engineering, pp. 327-330, Oct. 2003.
Sun Microsystems. Enterprise javabeans specification v2.1 — proposed final draft, 2002. Available at http://java.sun.com/products/ejb/
Sun Microsystem. Java 2 Platform, Enterprise Edition (J2EE). Available at http://java.sun.com/j2ee/ index.jsp
C. Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York, NY, second edition, November 2002.
R. T. Tomita, F. Castor Filho, P. A. de C. Guerra and C. M. F. Rubira. Bellatrix: An environment with architectural support for component-based development (in portuguese). In Proc. IV Brazilian Workshop on Component-Based Development (WDBC’2004), pp. 43-48, João Pessoa, PB, Brazil, Sep. 2004.
G. Veccellio and W. M. Thomas. Issues in the assurance of component-based software. In Proc. 2000 International Workshop on Component-Based Software, Carnegie Mellon Software Engineering Institute, 2000.
J. Xu, B. Randell, A. Romanovsky, C. Rubira, R. Stroud and Z. Wu. Fault Tolerance in Concurrent Object-Oriented Software through Coordinated Error Recovery. In Proc. IEEE 25th Int. Symp. on Fault-Tolerant Computing, pp. 499-508, Pasadena, 1995.
J. Xu, B. Randell, A. Romanovsky, R. J. Stroud, A. F. Zorzo, E. Canver and F. von Henke. Rigorous development of an embedded fault-tolerant system based on coordinated atomic actions. IEEE Transactions on Computers, 51(2):164–179, Feb. 2002.
About this article
Cite this article
Filho, F.C., Guerra, P.A.d.C., Pagano, V.A. et al. A systematic approach for structuring exception handling in robust component-based software. J Braz Comp Soc 10, 3–17 (2004). https://doi.org/10.1007/BF03192362
- Exceptional behaviour
- Fault-tolerant component
- Software fault tolerance