@techreport{TR-IC-06-09, number = {IC-06-09}, author = {Fernando Castor Filho and Patrick Henrique da S. Brito and Cec{\'{\i}}lia Mary F. Rubira}, title = {Specification of Exception Flow in Software Architectures}, month = {May}, year = {2006}, institution = {Institute of Computing, University of Campinas}, note = {In English, 45 pages. \par\selectlanguage{english}\textbf{Abstract} In recent years, various approaches combining software architectures and exception handling have been proposed for increasing the dependability of software systems. This conforms with the idea supported by some authors that addressing exception handling-related issues since early phases of software development may improve the overall dependability of a system. By systematically designing the mechanism responsible for rendering a system reliable, developers increase the probability of the system being able to avoid catastrophic failures at runtime. This paper addresses the problem of describing how exceptions flow amongst architectural elements. In critical systems where rollback-based mechanisms might not be available, such as systems that interact with mechanical devices, exception handling is an important means for recovering from errors in a forward-based manner. We present a framework, named Aereal, that supports the description and analysis of exceptions that flow between architectural components. Since different architectural styles have different policies for exception flow, Aereal makes it possible to specify rules on how exceptions flow in a given style and to check for violations of these rules. We use a financial application and a control system as case studies to validate the proposed approach. } }