Model-driven techniques help to minimize the development, validation, and evolution effort associated with DCQA activities by capturing the customizability of QoS-intensive software within higher-level models that help to automate the analysis and synthesis of various artifacts, such as component interfaces, implementations, and glue code; configuration files; and deployment scripts []. In particular, model-driven techniques help assure the correctness, maintenance, and porting PSAs of QoS-intensive software by automatically generating artifacts required for QA activities, such as regression testing and performance benchmarking. For example, the Options Configuration Modeling language (OCML) [] allows developers to model middleware configuration options as high-level models. Likewise, the Benchmarking Generation Modeling Language (BGML) [] allows developers to automatically generate sophisticated benchmarking experiments.
This article describes how model-driven DCQA processes and tools can
work separately and together to help monitor, safeguard, enforce, and
reassert desirable PSAs after changes occur in QoS-intensive
software. In particular, we describe two DCQA processes implemented
in the model-driven Skoll environment that help to ensure PSAs related
to both correctness and performance across large configuration spaces.
To validate our approach, we present results from applying our
model-driven DCQA processes and tools on ACE+TAO
(www.dre.vanderbilt.edu/Download.html), which are widely-used
QoS-enabled middleware consisting of
2,000,000 lines of
continuously evolving C++ frameworks, functional regression tests, and
performance benchmarks contained in
4,500 files that average
over 300 CVS commits per week. Our results show that (1) DCQA
techniques improve the ability of developers to detect and pinpoint
software portability and availability problems, (2) integrating DCQA
and model-driven techniques can significantly enhance the process of
identifying key subsets of options that affect PSAs, and (3)
monitoring only these selected options helps developers understand
effects of system changes based on these PSAs with an acceptable level
of effort.