Glossary · Automation software engineering and architecture
Software dependency
Also known as: Dependency
German: Softwareabhängigkeit
In software engineering, a software dependency is a component, library, service or tool that a piece of software requires in order to build or run.
- Software engineering
In one sentence
A software dependency is a component, library, service or tool that a piece of software needs to build or run.
Example
The edge application depends on an OPC UA client library, an MQTT library and a specific version of the container runtime.
How it applies
- Engineering: Dependencies are declared with version constraints and locked for reproducible builds. Fewer dependencies mean fewer update and security risks.
- Security: Vulnerabilities in dependencies are a major source of product vulnerabilities. A software bill of materials lists dependencies so they can be monitored.
- Documentation: System requirements must list runtime dependencies the customer provides (operating system, runtime, databases). License notices for third-party dependencies are part of the delivered documentation.
Direct vs. transitive dependency
A direct dependency is declared by the project itself. A Transitive dependency is required by one of the direct dependencies and enters the project indirectly, often unnoticed.