Quality attribute tradeoff through adaptive architectures at runtime
Abstract
Quality attributes, e.g. performance and reliability, become more and more important for the development of software systems. One of the critical issues on quality assurance is how to make good enough tradeoffs between quality attributes that interfere with each other. Some architecture-based quality design and analysis methods are proposed to make tradeoffs at design time. However, many quality attributes depend on runtime contexts; it may be difficult and even impossible to make tradeoffs between them at design time. In this paper, we use an adaptive architecture model to capture candidate strategies for different quality attributes; the tradeoff, i.e. which strategies are more appropriate and thus applied, is postponed to runtime. The contribution of our approach is threefold. First, it makes use of existing architecture-based quality design and analysis methods to identify why and where quality attribute tradeoffs are necessary. Second, a traditional architecture description language is extended to support the modeling of an adaptive architecture, which records strategies for different quality attributes under different conditions. Third, a reflective middleware is used to monitor the runtime system, collect required information to determine appropriate strategies, and adapt the application's architecture to achieve expected quality attributes. This approach is demonstrated on J2EE. © 2008 Elsevier Inc. All rights reserved.