A Meta-Level Software Architecture based on Patterns for Developing Dependable Collaboration-based Designs - Beder, Delano M.; Rubira, Cecília M. F. (Anais do Workshop de Testes e Tolerância a Falhas (WTF), 2000)
The focus of this paper is the design and implementation of dependable quality requirements, and their incorporation in the description of software architecture in an explicit and structured manner. More specifically, we propose three architectural styles for developing dependable collaboration-based software designs based on three notions: (i) the idealized fault-tolerant component model, (ii) the collaboration/role interaction model, and (iii) computational reflection together with a set of design patterns that focus on providing design solutions for implementing fault tolerance techniques, namely, error handling, coordinated recovery and software redundancy. Computational reflection defines a meta-level architecture that is composed of a base level where the application’s logic is implemented and a meta level where meta components are responsible for implementing the application’s quality requirements in a way that it is transparent to application designers. Application designers can apply the notion of separation of concerns and concentrate their attention on the functional requirements, abstracting from the quality requirements.