A Meta-Level Software Architecture based on Patterns for Developing Dependable Collaboration-based Designs
Resumo
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.
Referências
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison Wesley Publishing Company, 1995.
R. Hirschfeld and J. Eastman. Lock Server. In 4th Pattern Languages of Programming Conference (PloP’97), 1997.
P. Lee and T. Anderson. Fault Tolerance: Principles and Practice. Springer-Verlag, 2 edition, 1990.
A. Oliva and L. Buzato. Composition of Meta-Objects in Guaraná. In Workshop on Reflective Programming in C++ and Java, OOPSLA’98, pages 86-90, Vancouver, BC, Canada, Oct. 1998.
B. Randell. System Structure for Software Fault Tolerance. IEEE Transactions on Software Engineering, SE-1(2):220-232, 1975.
M. Shaw and D. Garlan. Software Architecture: Perpectives on an Emerging Discipline. Prentice Hall, 1996.
Y. Smaragdakis and D. Batory. Implementing Reusable Object-Oriented. In 5th International Conference on Software Reuse (ICSR’98), Victoria, Canada, June 1998.
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 FTCS-25, pages 499-509, 1995.