FIVE ONTOLOGICAL LEVELS TO DESCRIBE AND EVALUATE SOFTWARE ARCHITECTURES
Quality models for software architecture are taxonomies of quality attributes, commonly used to specify and evaluate nonfunctional requirements. Most quality models offer a two-level approach, distinguishing externally observable and internally measurable attributes, yielding stakeholder-specific composite quality criteria. Much effort is devoted to determine which internal attributes influence which external ones, and most models stick to a two-level hierarchy. This paper argues that this apparent dual order obscures the fact that requirements are made by different stakeholder about different subjects, and the word "architecture" means different things to each of them: the organization of a system, a description of such organization, and the process of elaborating such descriptions. The proposed scheme organizes architecture attributes according to five ontological (descriptive) levels, each of them with different concerns, types of users and available measurement techniques: computations, deployables (binaries/configurations), software (texts), specifications (of architecture and/or design), and architecture process. Finally, levels and stakeholders are related to specific architecture views.