Dependency
Dependency is a broad software engineering term used to refer when a piece of software relies on another one. Simply put, if Program A requires Program B to be able to run, Program A is dependent on Program B. This makes Program B a dependency of Program A.
It doesn’t really matter what it is, if your program needs it to run correctly, it’s a dependency.
Examples
- Create an object or call a method
- Interact with a database
- Call a function
- Call a report
- Get or call a BAdI
- Write or read global variables
- Get the ‘current time’
- Programming libraries
- Online services
- Programming scripts etc.
Cyclic Dependency
Cyclic or circular dependencies occur when two software components are directly or indirectly dependent on each other.
Techniques to break cyclic dependencies
Early Reference Resolution
Whenever such a dependency is detected, a proxy or "early reference" is created for one of the entities is created before the full initialisation and then load the dependency later lazily, resolving the dependencies.