Les vulnérabilités des logiciels sont comparables à un iceberg. Comme pour la partie émergée d'un iceberg, une équipe de développement logiciel a une grande visibilité sur le code source du logiciel qu'elle développe. Cependant, comme pour un iceberg, une grande partie du produit logiciel n'est pas visible pour l'équipe qui a une visibilité totale sur le code dont elle est l'auteur. Au-delà du code source qu'elle gère, les constructions logicielles typiques incluent du code source et des objets provenant de bibliothèques externes, de projets open source et de fournisseurs tiers. Une grande partie de cela est opaque pour l'équipe de développement du produit logiciel.
Les logiciels occupent une place prépondérante dans les produits d'aujourd'hui. C'est pourquoi il est primordial de savoir comment ils sont construits. Le logiciel est souvent représenté comme un composant unique dans une nomenclature d'ingénierie ou une nomenclature de fabrication, sans aucune description détaillée de sa construction. C'est pourquoi la nomenclature logicielle doit identifier tous les composants qui composent un logiciel et l'environnement dans lequel ce logiciel a été construit. Elle identifie et répertorie les composants logiciels d'un produit logiciel construit, y compris les métadonnées importantes sur chaque composant et la structure des relations entre ces composants.
Afin de protéger une entreprise contre les failles, il est primordial d'avoir accès aux composants qui constituent le logiciel. Elle permet d'identifier les menaces et les vulnérabilités qui peuvent être incorporées dans les produits logiciels en comparant constamment les nomenclatures avec les bases de données de vulnérabilités publiées. Identifier et répondre aux menaces et aux vulnérabilités des produits logiciels est indispensable à tous les secteurs d'activité.
La génération de la nomenclature logicielle fait partie intégrante de la chaîne d'intégration et de déploiement continus (CI/CD), laquelle est gérée comme un processus intégral du domaine de la gestion du cycle de vie des applications (ALM). Les processus ALM offrent un suivi complet tout au long du cycle de vie.
Pour gérer les menaces et les vulnérabilités logicielles, il faut identifier les risques et mettre en œuvre des exigences pour les limiter. Les exigences en matière de gestion des risques sont directement liées aux éléments de métadonnées qui déterminent la création de la nomenclature logicielle. Cette traçabilité, associée à la vérification comparée à une base de données de vulnérabilités, crée une solution en boucle fermée pour la gestion des menaces et des vulnérabilités logicielles.