|
Software quality is the degree to which software possesses a desired combination of attributes (modifiability, security, performance, availability, etc) In this tutorial we describe a few principles for analyzing a software architecture to determine if it exhibits certain quality attributes. We show how analysis techniques indigenous to various quality attribute communities can provide a foundation for performing software architecture evaluation. Since attributes can interact or conflict improving one attribute often comes at the price of worsening one or more of the others it is necessary to trade-off among multiple software quality attributes at the time the software architecture of a system is specified, before the system is developed. It is important to point out that we do not aim at an absolute measure of "architecture quality"; rather our purpose is to identify scenarios from the point of view of a diverse group of stakeholders (e.g., the architect, developers, users, sponsors) and to identify risks (e.g., inadequate performance, successful denial-of-service attacks) and possible mitigation strategies (e.g., prototyping, modeling, simulation). In the tutorial I will describe processes to conduct architecture trade-off analyses developed by the Software Engineering Institute (SEI). The objective of the evaluations is to understand a software architecture's fitness with respect to multiple software quality attributes and to identify sensitivity points, trade-offs, and risks. Sensitivity points are architectural decisions that have significant impact on a quality attribute; trade-off are sensitivity points that affect more than one attribute; risks are potential problem in achieving the desire attributes. |
The Discussion Group for Software Quality meets every two weeks.
All sessions are free and advance registration is not required
For more information contact Kim Kelln at 830.5983 or e-mail
info@software-quality.ab.ca