A Method for Modeling and Testing Exceptions in Component-Based Software Development

  • Patrick Henrique da S. Brito
  • Camila Ribeiro Rocha
  • Fernando Castor Filho
  • Eliane Martins
  • Cecília M. Fischer Rubira
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3747)


The design, implementation and testing of the exceptional activity of a software system are complex tasks that usually do not receive the necessary attention from existing development methodologies. This work presents a systematic way to deal with exception handling, from the requirement specification phase to the implementation and testing phases, in component-based software development. Testing activities are performed since the early stages of development, promoting an increase in the quality of the produced system. Our solution refines the Methodology for the Definition of Exception Behavior, MDCE, in the architectural design, implementation, and testing phases. Moreover, the proposed method was adapted to the UML Components process.


Software Product Line Exception Handling Interaction Diagram Architectural Component Test Oracle 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anderson, T., Lee, P.A.: Fault Tolerance: Principles and Practice, 2nd edn. Prentice-Hall, Englewood Cliffs (1990)zbMATHGoogle Scholar
  2. 2.
    Atkinson, C., Bayer, J., Muthig, D.: Component-based product line development: the kobra approach. In: Proceedings of the 1st conference on Software product lines: experience and research directions, Norwell, MA, USA, pp. 289–309. Kluwer Academic Publishers, Dordrecht (2000)Google Scholar
  3. 3.
    Atkinson, C., Gross, H.-G.: Built-in contract testing in model-driven, component-based development. In: Proceedings of the 1st International Working Conference on Component Deployment, Workshop on Component-based Software Development Processes (2002)Google Scholar
  4. 4.
    Bertolino, A., Marchetti, E., Muccini, H.: Introducing a reasonably complete and coherent approach for model-based testing. Electr. Notes Theor. Comput. Sci. 116, 85–97 (2005)CrossRefGoogle Scholar
  5. 5.
    Binder, R.V.: Design for testability in object-oriented systems. Communications of the ACM 37(9), 87–101 (1994)CrossRefGoogle Scholar
  6. 6.
    Binder, R.V.: Testing object-oriented systems: models, patterns, and tools. Addison-Wesley Longman Publishing Co., Inc., Amsterdam (1999)Google Scholar
  7. 7.
    Briand, L., Dzidek, W., Labiche, Y.: Using aspect-oriented programming to instrument ocl contracts in java. Technical Report SCE-04-03, Carleton University (2004)Google Scholar
  8. 8.
    Briand, L., Labiche, Y.: A uml-based approach to system testing. Software and Systems Modeling 1(1), 10–42 (2002)CrossRefGoogle Scholar
  9. 9.
    Chessman, J., Daniels, J.: UML Components: A Simple Process for Specifying Component-Based Software. Paperback (1992)Google Scholar
  10. 10.
    da Silva Brito, P.H., Rocha, C.R., Martins, E., Rubira, C.M.F.: An integrated method for modeling and testing exceptions in component-based software development: A case study (in portuguese). Technical Report (to appear), Institute of Computing (2005)Google Scholar
  11. 11.
    da Silva Jr., M.C., de C. Guerra, P.A., Rubira, C.M.F.: A java component model for evolving software systems. In: Proc. of the ASE, pp. 327–330 (2003)Google Scholar
  12. 12.
    de Lemos, R., Romanovsky, A.: Exception handling in a cooperative object-oriented approach. In: Proc. of the 2nd IEEE ISORC 1999 (May 1999)Google Scholar
  13. 13.
    de Oliveira Moraes, R.L., Martins, E.: Jaca - a software fault injection tool. In: DSN, p. 667. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  14. 14.
    D’Souza, D., Wills, A.C.: Objects, Components, and Frameworks with UML The Catalysis Approach, 2nd edn. Addison-Wesley, Reading (1999)Google Scholar
  15. 15.
    Farias, C., Machado, P.: A functional testing method for components verification (in portuguese). In: Proc. Brazilian Software Engineering Symposium, SBES (2003)Google Scholar
  16. 16.
    Filho, F.C., Brito, P.H.S., Rubira, C.M.F.: A framework for analyzing exception flow in software architectures. In: Proceedings of the ICSE 2005 Workshop on Architecting Dependable Systems (2005)Google Scholar
  17. 17.
    Filho, F.C., de C. Guerra, P.A., Pagano, V.A., Rubira, C.M.F.: A systematic approach for structuring exception handling in robust component-based software. Journal of the Brazilian Computer Society - Special Issue on Dependable Computing (2005)Google Scholar
  18. 18.
    Goodenough, J.B.: Exceptional handling: Issues and a proposed notation. CACM 18(12) (1975)Google Scholar
  19. 19.
    Object Management Group. OMG Unified Modeling Language Specification Version 1.5 (2003)Google Scholar
  20. 20.
    Object Management Group. UML 2.0 OCL Specification (2003)Google Scholar
  21. 21.
    Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  22. 22.
    Koopman, P.: et al. Ballista project: Cots software robustness testing (2003),
  23. 23.
    Kropp, N.P., Koopman, P.J., Siewiorek, D.P.: Automated robustness testing of off-the-shelf software components. In: FTCS 1998: Proceedings of the The Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing, Washington, DC, USA, p. 230. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  24. 24.
    Martins, E., Toyota, C.M., Yanagawa, R.L.: Constructing self-testable software components. In: Proc. DSN 2001 (2001)Google Scholar
  25. 25.
    Messina, S., Pleinevaux, P.: Enhancing cimosa with exception handling. In: Proceedings of the International Symposium on Robotics and Manufacturing ISRAM, World Automation Congress 1996, Montpellier, France (May 1996)Google Scholar
  26. 26.
    Meyer, B.: Object-Oriented Software Construction, 1st edn. Prentice-Hall, Englewood Cliffs (1988)Google Scholar
  27. 27.
    Reimer, D., Srinivasan, H.: Analysing exception usage in large java applications. In: Proc. of ECOOP Workshop on Exception Handling in Object-Oriented Systems(EHOOS 2003) (2003)Google Scholar
  28. 28.
    Rivest, R.L., Leiserson, C.E.: Introduction to Algorithms. McGraw-Hill, Inc., New York (1990)zbMATHGoogle Scholar
  29. 29.
    Rocha, C.R., Martins, E.: A strategy to improve component testability without source code. In: Beydeda, S., Gruhn, V., Mayer, J., Reussner, R., Schweiggert, F. (eds.) SOQUA/TECOS, GI. LNI, vol. 58, pp. 47–62 (2004)Google Scholar
  30. 30.
    Rubira, C., de Lemos, R., Ferreira, G., Filho, F.C.: Exception handling in the development of dependable component-based systems. In: Software Practice and Experience. John Wiley and Sons, Chichester (2005)Google Scholar
  31. 31.
    Schneider, G., Winters, J.P.: Applying Use Cases: A Practical Guide, 1st edn. Addison-Wesley, Reading (1998)Google Scholar
  32. 32.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline, 1st edn. Prentice Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  33. 33.
    Sinha, S., Harrold, M.J.: Analysis and testing of programs with exception handling constructs. IEEE Transactions on Software Engineering 26(9), 849–871 (2000)CrossRefGoogle Scholar
  34. 34.
    Sommerville, I.: Software Engineering, 6th edn. Addison-Wesley, Reading (1995)Google Scholar
  35. 35.
    Szyperski, C.: Component software and the way ahead. In: Gary, T. (ed.) Foundations of Component-Based Systems, ch. 1, pp. 1–20. Cambridge University Press, Cambridge (2000)Google Scholar
  36. 36.
    Tomita, R.T., Filho, F.C., Rubira, C.M.F.: Bellatrix: An environment to provide architectural support for component-based software development (in portuguese). In: IV Workshop of Component-Based Development, WDBC 2004 (September 2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Patrick Henrique da S. Brito
    • 1
  • Camila Ribeiro Rocha
    • 1
  • Fernando Castor Filho
    • 1
  • Eliane Martins
    • 1
  • Cecília M. Fischer Rubira
    • 1
  1. 1.Institute of ComputingState University of CampinasCampinasBrazil

Personalised recommendations