An in-depth study of software library upgrade dependency issues
With the increasing complexity of software systems, the reliance on third-party software libraries has become a standard practice to enhance development efficiency. However, this dependency introduces the challenge of coevolution incompatibility (CI) where version mismatches between interconnected l...
Saved in:
Main Author: | |
---|---|
Other Authors: | |
Format: | Final Year Project |
Language: | English |
Published: |
Nanyang Technological University
2024
|
Subjects: | |
Online Access: | https://hdl.handle.net/10356/175116 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Nanyang Technological University |
Language: | English |
Summary: | With the increasing complexity of software systems, the reliance on third-party software libraries has become a standard practice to enhance development efficiency. However, this dependency introduces the challenge of coevolution incompatibility (CI) where version mismatches between interconnected libraries can lead to conflicts and potential vulnerabilities. This study delves into the intricacies of CI by investigating Java software libraries, and aims to understand the underlying causes and impacts on software systems.
Through comprehensive analysis, error classifications, and case studies, the study revealed common challenges faced in dependency management and highlights best practices such as explicit dependency management, the use of software bills of materials (BOMs), and detailed change logs. Furthermore, the study also identified several potential solutions for addressing CI issues and discussing the trade-offs associated with each approach. These insights are critical for making informed decisions when selecting strategies for dependency management. The findings reveal the significance of proactive dependency management in mitigating CI issues and ensuring compatibility between third-party software libraries and the systems that utilise them.
This study helps to gain both academic and practical understanding of CI in software libraries, providing actionable insights for both developers and library maintainers. By adopting the recommended practices, developers can enhance the resilience and security of their software systems, thereby reducing the risk of vulnerabilities and ensuring smoother integration of third-party libraries. |
---|