Dependency is a term used to refer when a piece of software relies on another one.
Imagine you are working in a large company where:
- Team A is responsible for building order management system.
- Team B is building error logging system.
It is very likely that there will be some errors that will need to be handled in the order management system. But does it mean the Team A should create its own error logging system? Definitely not. This problem has already been solved by Team B, so the Team A should reuse it.
When the Team A is using the error logging system in its order management system, we are saying that:
- The order management system is dependent on the error logging system (because without it it won't work).
- The error logging system is a dependency of the order management system (the order management system needs it to function propely).