'

Session: Documentation & software quality

Quality models to design software architecture

F. Losavio, L. Chirinos -- U. C. de Venezuela, Caracas

This paper addresses the problems related with the construction of quality software systems. A generally accepted claim is that the evaluation and control of each stage of development in a well-defined process, will improve the overall quality of the final software product. In particular, we are interested in the early analysis and design stages, where an intermediate product is the architecture of the system.

Several approaches will be discussed here, where quality models are established in order to determine the influence of the system non-functional characteristics as part of the software initial requirements, on the final software system. These characteristics affect mostly the software system structure or architecture. The main goal of this paper is to discuss three important approaches based on quality models: ISO 9126, Dromey and ABAS (Attribute-Based Architectural Styles), and establish several criteria or points of comparison. These approaches have been selected in this study because they share the fact of considering quality models related to the product or products obtained in the early stages of the software development process. In this sense, they are good candidates to be used in an architectural design process. The problem of establishing the quality of software architecture is, in general, not an easy one. But the selection of an architecture that guarantees, for example, a portable and extensible system, is crucial in component-based and object-oriented development. At present there are no general methods for evaluating architectures to assure these issues, only heuristics based on experience and practice.

We believe that the study of the above approaches will be useful to introduce design quality issues in a development process that does not consider them explicitly, which is actually a usual practice. New techniques and methods must be defined in order to deal with the quality of design, for an architecture-based development. As a consequence, recent trends in software development processes consider the introduction of quality requirements from the earliest stages of development.

On the other hand, even if the semantics of the terminology is similar in the different approaches studied, the names of the terms used are quite different; we think that our discussion will help to unify the terminology in the interesting field of quality architectural design of software systems. '