Logiciel
Les deux principales catégories de logiciels sont les logiciels "applicatifs" et les logiciels de "système". Le logiciel applicatif est destiné à aider les usagers à effectuer une certaine tâche, et le logiciel de système est destiné à effectuer des opérations en rapport avec l'appareil informatique.
Assurance qualité logicielle
Étant donné que le développeur ou l’ingénieur logiciel pourra avoir des préoccupations plus générales qui englobent le système (matériel, logiciel d’exploitation, télécommunications), le futur corpus de connaissances de l’ingénierie des systèmes (system engineering) s’assurera que ceux-ci doivent être très fiables (« confiance élevée » ou « systèmes de très haute intégrité »). Cette terminologie qui est utilisée couramment pour les systèmes mécaniques et électriques traditionnels (qui peuvent ne pas inclure de logiciel) a été adaptée pour traiter des menaces ou des catastrophes imprévisibles, des risques, de l'intégrité du système. L’ingénieur logiciel qui travaille dans un domaine critique devra vérifier que ses connaissances sont adéquates afin de faire face à des requis de qualité provenant de l’ingénierie des systèmes. Le niveau d'intégrité d’un logiciel est basé sur les conséquences possibles de l'échec du logiciel et de la probabilité de cet échec. Pour le logiciel dans lequel la sûreté ou la sécurité est importante, des techniques telles que l'analyse de risques pour la sûreté ou l'analyse de menaces pour la sécurité peuvent être employées pour développer une activité de planification qui identifierait où se trouvent les points sensibles potentiels. L'historique des échecs de logiciels semblables peut également aider en identifiant quelles techniques seront les plus utiles pour détecter des défauts et en évaluer la qualité. On propose alors des niveaux d'intégrité pour le logiciel (par exemple la gradation d'intégrité) selon la norme IEEE 1012 pour le système critique. La caractérisation des défauts : Caractériser ces défauts favorise la compréhension du produit, facilite des corrections au processus logiciel ou au produit et informe le gestionnaire de projet et le client du statut du processus ou du produit. Il y a plusieurs taxonomies de défauts qui existent et sont utilisées en industrie. La caractérisation des défauts est présentée selon la norme IEEE 1044 qui est également utilisée pour décrire comment documenter les anomalies identifiées lors de l’élaboration des audits et des revues.