In het boek Softwarearchitectuur Overzicht en compendium geven Gert Florijn e.a. een uitleg van de kwaliteitseisen (niet-functionele eisen) die gesteld kunnen worden aan software:
Kwaliteit kan onderverdeel worden in productkwaliteit (de kwaliteit van de software) en proceskwaliteit (de kwaliteit van het ontwikkelproces). In het kader van architecturen verwijzen kwaliteitseisen meestal naar de productkwaliteit.
Conform [ISO9126] wordt softwarekwaliteit gedefinieerd als: een verzameling attributen van een softwareproduct die het mogelijk maken de kwaliteit te beschrijven en te evalueren. Een softwareattribuut kan verfijnd worden tot meerdere niveaus van sub-attributen.
Bij het opstellen van de eisen aan software gaat de aandacht vaak vooral uit naar de functionele eisen: wat moet het systeem doen. Daarnaast wordt er ook wel aandacht besteed aan proceseisen: kan de software snel en goedkoop worden ontwikkeld. Een derde categorie aan eisen betreffen de kwaliteitseisen: zij geven randvoorwaarden aan het (technisch) functioneren van een softwareproduct, bijvoorbeeld rond prestaties en beschikbaarheid.
In 1991 is het ISO9126-model gestandaardiseerd waarin zes kwaliteitseigenschappen werden beschreven:
-
Functionaliteit (functionality): een verzameling attributen die van invloed is op de aanwezighed van een set van functies en gespecificeerde eigenschappen.
-
Betrouwbaarheid (reliability): een verzameling attributen die van invloed is op de mate waarin software in staat is te functioneren onder vastgestelde voorwaarden tijdens een vastgestelde periode.
-
Bruikbaarheid (usability): een verzameling attributen die van invloed is op de inspanning benodigd voor het gebruik, en op de individuele beoordeling van dat gebruik, door een vastgestelde of impliciete verzameling gebruikers.
-
Efficiëntie (efficiency): een verzameling attributen die van invloed is op de relatie tussen het performancenvieau van de software en de hoeveelheid gebruikte resources, onder gespecificeerde omstandigheden.
-
Onderhoudbaarheid (maintainability): een verzameling attributen die van invloed is op de inspanning benodigd voor het maken van gespecificeerde wijzigingen.
-
Overdraagbaarheid (portability): een verzameling attributen die van invloed is op de mogelijkheid om de software van de ene omgeving naar een andere omgeving over te dragen.
Onder deze eigenschappen werden 21 subeigenschappen beschreven (als voorbeeld, niet als onderdeel van de standaard) die verder inhoud geven aan bovenstaande begrippen. Tussen 1991 en 1995 is, in het Quint1- en Quint2-project, een uitbreiding (het Quint/Extended ISO9126-model) opgesteld, waarin 32 subeigenschappen worden beschreven (waaronder de 21 van het ISO-model).
De bedoeling is dat er, met behulp van dit model, tijdens de requirementsfase een aantal kwaliteitseisen worden vastgesteld voor het softwareproduct. Dit kan met behulp van interviews, in workshops, door prototypes te evalueren, door vergelijkbare producten te analyseren, enzovoort.
Hieronder volgt een (niet dor ISO geautoriseerde) vertaling van de Engelse termen en definities uit het Quint-model. De onderstreepte begrippen zijn de toevoegingen uit het Quintmodel
Ad (1) Functionaliteit
- Geschiktheid (Suitability)
- Accurraatheid (Accuracy)
- Koppelbaarheid (Interoperability)
- Compliance
- Beveiliging (Security)
- Traceerbaarheid (Traceability)
Ad (2) Betrouwbaarheid
- Volwassenheid (Maturity)
- Fouttolerantie (Fault tolerance)
- Herstelbaarheid (Recoverability)
- Beschikbaarheid (Availability)
- Degradeerbaarheid (Degradability)
Ad (3) Bruikbaarheid
- Begrijpelijkheid (Understandability)
- Leerbaarheid (Learnability)
- Gebruiksgemak (Operability)
- Explicietheid (Explicitness)
- Aanpasbaarheid (Customisability)
- Aantrekkelijkheid (Attractivity)
- Duidelijkheid (Clarity)
- Behulpzaamheid (Helpfulness)
- Gebruiksvriendelijkheid (User-friendliness)
Ad (4) Efficiëntie
- Tijdgedrag (Time behavior)
- Resourcegedrag (Resource behavior)
Ad (5) Onderhoudbaarheid
- Analyseerbaarheid (Analysability)
- Veranderbaarheid (Changeability)
- Stabiliteit (Stability)
- Testbaarheid (Testability)
- Beheerbaarheid (Manageability)
- Herbruikbaarheid (Reusability)
Ad (6) Overdraagbaarheid
- Aanpasbaarheid (Adaptability)
- Installeerbaarheid (Installability)
- Conformance
- Vervangbaarheid (Replaceability)
Bron: Softwarearchitectuur Overzicht en compendium, onder redactie van Gert Florijn