OpenSource Risk Experts
Map your blast radius

ARTICLE / UPDATED JUNE 17 2026

Software Composition Analysis Explained

Software composition analysis explained for the leader who has to govern open source, not just scan it. This article covers how SCA finds the components in your code, why license detection matters as much as vulnerabilities, and where the tooling stops.

You cannot govern open source you cannot see. Software composition analysis is the tooling that makes it visible. At its simplest, software composition analysis scans your code and its build to discover every open source component inside it, names each one and its version, records the license, and usually flags known vulnerabilities. For most organizations it is the first practical step toward control, because it replaces a guess about what you run with an inventory. This article explains what software composition analysis does, why its license detection is as important as its security findings, and the limits you should plan around.

The article sits under the pillar on governance and SBOM and supports our open source governance and policy service, where SCA output becomes the basis for rules and controls. For the durable record SCA produces, see maintaining an accurate SBOM.

How software composition analysis finds your dependencies

Software composition analysis works by examining the signals that reveal which open source you depend on. It reads manifest and lock files from package managers, inspects the build, and in stronger forms fingerprints binaries and matches code against known component signatures. The important capability is depth. Most of your open source arrives indirectly, pulled in by another library that you chose deliberately, and a tool that sees only the top layer of declared dependencies misses most of the tree. Good software composition analysis traces transitive dependencies down through every layer, because that is where the components you never chose, and never tracked, actually live.

The output is an inventory: a list of components, versions, and licenses, ideally exported to a standard format such as SPDX or CycloneDX so it can be stored, compared, and shared. That inventory is the raw material for everything else, from a software bill of materials to a license policy to an audit response. Run once, it is a snapshot. Run continuously in the pipeline, it becomes a live picture that changes as your dependencies change, which is the form that actually protects you.

Why license detection matters as much as vulnerabilities

Most teams adopt software composition analysis for security, to catch known vulnerabilities in their dependencies. That is valuable, but for relicensing risk the license field is the one that earns its keep. Software composition analysis records the license of every component it finds, and a continuous scan compares that license against the last known state. When a component you depend on moves from an open license to a source available one, the change shows up at the next scan. That is how a move to the Business Source License or the Server Side Public License gets caught in your pipeline rather than discovered in an audit or a vendor letter months later.

The recent wave of relicensing makes this concrete. HashiCorp moved Terraform, Vault, Consul, Nomad, and Packer to the Business Source License as of August 2023. Redis moved to the Redis Source Available License and the Server Side Public License as of March 2024. Elasticsearch and Kibana moved to the Server Side Public License and Elastic License in 2021. In each case, an organization running continuous license detection would have seen the license field change at the next scan and could have acted early, while the choices, including the forks OpenTofu, Valkey, and OpenSearch, were open and unhurried. Continuous monitoring is the subject of continuous open source license monitoring.

A vulnerability scan that ignores the license field catches half the risk. The license that changed under you can cost as much as the bug you patched, and software composition analysis is where you see it first.

The limits of the tooling

Software composition analysis is necessary but not sufficient, and treating its output as a final answer is a common error. The tooling has real limits. It can miss code that was copied in by hand rather than pulled through a package manager, the vendored or modified components that no manifest declares. It can misread a license, particularly where a project ships multiple licenses or has changed terms between versions. And it does not interpret what an obligation means for your specific business, because that is a judgment, not a scan result. A tool that flags a copyleft component cannot tell you whether your use triggers the obligation.

The practical conclusion is that software composition analysis produces an inventory and a set of flags, and a person turns those into a ranked, funded decision. The scan tells you what you have and what changed. Human judgment, informed by your usage and your risk appetite, tells you what to do about it. That is why an open source license risk assessment pairs automated discovery with analysis, and why software composition analysis is the start of governance rather than the whole of it. For the broader program that the tooling feeds, see building an open source program office.

RELATED READING

PILLAR

Governance and SBOM

The full framing of open source control.

Maintaining an accurate SBOM

The durable record SCA populates.

Continuous license monitoring

Catch a relicense at the next scan.

COMMON QUESTIONS

Questions buyers ask.

What is software composition analysis?

Software composition analysis, or SCA, is the automated discovery of the open source components inside your code, including transitive dependencies. It identifies each component, its version, and its license, and it usually flags known vulnerabilities. The output is the inventory a software bill of materials is built from.

Why does SCA license detection matter for relicensing risk?

SCA records the license of every component it finds, which is what lets you catch a move to the Business Source License or the Server Side Public License. Continuous SCA flags the change at the next scan, so a relicensed component is found in your pipeline rather than in an audit.

What are the limits of software composition analysis?

SCA can miss vendored or modified code, may misread a license, and does not interpret what an obligation means for your business. It produces an inventory and flags, not a risk decision. The flags still need human judgment to become a ranked, funded plan.

How does SCA relate to a software bill of materials?

SCA is the discovery step that populates a software bill of materials. The SBOM is the durable record in a format such as SPDX or CycloneDX, and SCA is what keeps it accurate as dependencies change. One feeds the other.

Is this legal advice?

No. This is commercial and licensing risk advisory, not legal advice. For interpretation of license terms and compliance questions, engage your own counsel.

PREVENT

Turn a scan into real governance.

Build policy on top of your inventory. Independent, buyer side, paid only by you.

Not ready to talk? Read the free open source license risk guides first.

Scope governance and policy