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.