Um einen Überblick über die eigene Software und die damit verbundenen Abhängigkeiten zu erhalten, ist es notwendig, den verwendeten Code zu inventieren und aufzulisten, was verwendet wird. Das manuelle Erstellen und Warten von Listen der verwendeten 3rd-Party-Dependencies ist aber mühsam, zeitaufwendig und fehleranfällig. Doch da uns bereits die Verwaltung der Dependencies vor eine ähnliche Aufgabe stellt, ist es bereits branchenstandard, dass nicht-triviale Software-Projekte Package Management Werkzeuge wie Maven, npm oder pip verwenden, um diese Dependencies einfach und automatisiert zu verwalten.
Der nächste Schritt ist daher, aus diesen bereits vorhandenen Informationen strukturierte Übersichten über die Software und die darin verwendeten Bibliotheken zu generieren. Diese Auflistungen werden als Software Bill of Material (SBOM) bezeichnet.
Bill of Materials sind keine Erfindung der Softwareentwicklung. In klassischen Produktionsbetrieben findet man schon seit jeher Material- oder auch Stücklisten, die Auskunft über Bauteile eines Produkts geben.
Damit diese Informationen aber auch einfach und automatisiert weiterverarbeitet und analysiert werden können, ist es notwendig, plattformübergreifende Standards zu etablieren.