Facteurs de Qualités selon McCall

1) Fiabilité
Aptitude d'un programme à accomplir sans défaillance l'ensemble des fonctions spécifiées dans un document de référence, dans un environnement opérationnel de référence, pour une durée d'utilisation donnée.

2) Sécurité
Attribut de qualité du logiciel se caractérisant, durant son fonctionnement, par l'absence d'événements mettant en cause l'intégrité des biens et la vie des personnes concernés par l'application.

3) Intégrité
Degré de protection du système et des données qu'il manipule contre les accès non autorisés, voire malveillants.

4) Ergonomie
Aptitude du système à pouvoir être utilisé avec un minimum d'efforts.

5) Efficacité
Aptitude du logiciel à utiliser d'une façon optimale les ressources physiques (espace mémoire, temps d'unité centrale) mises à disposition.

6) Testabilité
Aptitude d'un logiciel à se prêter à une vérification d'adéquation aux spécifications, le système étant en phase d'exploitation.

7) Maintenabilité
Aptitude d'un logiciel à faciliter les opérations requises pour localiser et corriger une erreur alors que le système est en phase d'exploitation.

8) Flexibilité
Aptitude d'un logiciel à être adapté à une modification de ses spécifications.

9) Réusabilité
Aptitude d'un composant logiciel à être réutilisé dans des applications différentes.

10) Portabilité
Aptitude d'un logiciel à être adapté à un environnement différent de celui des applications précédentes.

11) Compatibilité
Qualité de plusieurs logiciels (ou composants) à être liés pour une fonction donnée, suivant certains critères
e.g. standardisation des structures de données, communications internes.

Critères de qualité selon McCall

1. Traçabilité
Possibilité, à partir d'une identification enregistrée de retrouver l'historique, l'utilisation ou la localisation d'un logiciel ou de produits semblables.

2. Complétude
Propriété d'un logiciel (ou d'un élément du logiciel) qui possède tous ses constituants lesquels, sont entièrement développés et validés.

3. Précision
Propriété d'un logiciel qui fournit des résultats ne s'écartant pas des résultats théoriques attendus d'une marge donnée.

4. Cohérence
Propriété d'un logiciel qui présente une compatibilité des éléments entre eux au sein d'une configuration.

5. Robustesse
Propriété d'un logiciel qui retrouve la continuité des opérations après conditions anormales et permet de supprimer les effets d'une perturbation.

6. Simplicité
Propriété d'un logiciel qui fournit un développement des fonctions de la manière la plus compréhensive.

7. Modularité
Propriété d'un logiciel composé d'éléments distincts tels que la modification de l'un d'eux n'entraîne pas de modifications sur les autres.

8. Généralité
Propriété d'un logiciel qui élargit les cas d'emplois des fonctions assurées.

9. Extensibilité
Propriété d'un logiciel qui permet d'accroître le domaine des données manipulées

10. Instrumentation
Propriété d'un logiciel qui offre la possibilité de mesures relatives au suivi et au contrôle de l'exécution.

11. Auto description
Propriété d'un logiciel fournissant l'explication du développement d'une fonction.

12.  Efficacité de stockage
Propriété d'un logiciel qui minimise la place mémoire nécessaire à une opération.

13. Efficacité d'exécution
Propriété d'un logiciel qui utilise un minimum de temps machine pour l'accomplissement de ses fonctionnalités.

14. Audit des accès
Propriété d'un logiciel qui comporte des dispositions, permettant de garder l'historique des accès au code et aux données.

15. Contrôle des accès
Propriété d'un logiciel qui comporte des mécanismes permettant le contrôle des accès

16. Souplesse des interfaces
Propriété du logiciel qui possède des interfaces faciles à modifier et à adapter.

17. Facilité d'exploitation
Propriété qu'a un logiciel de faciliter la mise en oeuvre de ses propres procédures d'exploitation, le chargement, l'initialisation et l'exécution.

18. Facilité d'apprentissage
Propriété d'un logiciel qui offre des facilités d'assimilations par un utilisateurs ses différents modes opérationnels.

19. Indépendance machine
Propriété d'un logiciel qui limite ses dépendances vis-à-vis de l'environnement matériel.

20. Indépendance système
Propriété d'un logiciel qui limite ses dépendances vis-à-vis de l'environnement système.

21. Normalisation des communications
Propriété d'un logiciel utilisant des normes ou des standards au niveau protocole et interface.

22. Standardisation des structures de données
Propriété d'un logiciel qui met à disposition des moyens de représentations standards des données.

23. Concision
Propriété d'un logiciel qui utilise un volume de code minimum pour le développement d'une fonction.

24. Conformité
Aptitude du logiciel à répondre aux besoins de l'utilisateur.