What is Dependency in Software Development ?
In this article, the general concept of dependency is explained.
When creating a software, some software’s functionality can be implemented natively. In many cases, a functionality that implemented natively can be inefficient and contains many bugs. To solve this problem, the dependency can be used in a software.
What is Dependency ?
Dependency (also known as library or package) is a component that contains many built in functionalities that can be used directly in a program or software. Dependency can be found inside or outside certain programming language. For example, a Scanner dependency or library that can be found inside Java programming language. Another example is a expressjs dependency that is not included in NodeJS but can be installed because expressjs is located outside the NodeJS programming language.
Advantages of Using Dependency
There are many advantages when using dependency in a program or software:
- The functionality inside dependency can be used directly without implement the functionality from scratch.
- The software development process become faster and more efficient.
- The functionality inside dependency can be better or more efficient than using the native implementation.
Drawbacks of Using Dependency
There are many drawbacks when using dependency in a program or software:
- When certain functionality inside dependency is broken or being fixed, the functionality cannot be used until the functionality is fixed.
- In some cases, when using dependency especially with the large size. The size of a program or software can be increased significantly.
- When having a large amount of dependencies, the dependencies must be managed carefully.
Dependency is a great tool for developing a software. Make sure to choose the dependency based on the requirement specification for the software to avoid overengineering so the software can be used correctly and efficiently.
I hope this article is helpful to learn about dependency in software development. If you have any thoughts you can write it in the comments section below.
A guy who interested in web development and software engineering