  Software quality models provide either abstract quality characteristics or
concrete quality measurements; there is no seamless integration of these two
aspects. Reasons for this include the complexity of quality and the various
quality profiles in different domains which make it difficult to build
operationalised quality models. In the project Quamoco, we developed a
comprehensive approach for closing this gap. It combined constructive research,
which involved quality experts from academia and industry in workshops, sprint
work and reviews, with empirical studies. All deliverables within the project
were peer-reviewed by two project members from a different area. Most
deliverables were developed in two or three iterations and underwent an
evaluation. We contribute a comprehensive quality modelling and assessment
approach: (1) A meta quality model defines the structure of operationalised
quality models. It includes the concept of a product factor, which bridges the
gap between concrete measurements and abstract quality aspects, and allows
modularisation to create modules for specific domains. (2) A largely
technology-independent base quality model reduces the effort and complexity of
building quality models for specific domains. For Java and C# systems, we
refined it with about 300 concrete product factors and 500 measures. (3) A
concrete and comprehensive quality assessment approach makes use of the
concepts in the meta-model. (4) An empirical evaluation of the above results
using real-world software systems. (5) The extensive, open-source tool support
is in a mature state. (6) The model for embedded software systems is a
proof-of-concept for domain-specific quality models. We provide a broad basis
for the development and application of quality models in industrial practice as
well as a basis for further extension, validation and comparison with other
approaches in research.
