Modern software systems rely heavily on third-party library functionality as a mean to save time, reduce implementation costs, and increase their software quality when offering rich, robust and up-to-date features. However, as software systems evolve frequently, the need for better services and more secure, reliable and quality functionalities causes developers to often replace their old libraries with more recent ones. This process of replacing a library with a different one, while preserving the same functionality, is known as library migration
. Learn more about evolution migration that happened over year of development.
We track library migration in around 321k open source projects View details ».
Alrubaye, H., & Wiem, M. (2019). Variability in Library. Software Engineering for Variability Intensive Systems: Foundations and Applications, 295.
Libraries and functions that had Migration
Is process of mapping between methods of retired library with methods of new call Function Mapping, In this process process a least one function from the source library replaced by one or multiple functions belonging to the target library.
. No need to read libraries documentation
to be able to migrate to newest library, only with single click,
we will provide you with the function mapping between two libraries depend on migration already done in 321k open source projects
View details »
Function mapping for migration from Easymock to Mockito
Function mapping graph for Migration between different libraries(View full graph)
Alrubaye, H., & Mkaouer, M. W. (2018, October). Automating the detection of third-party Java library migration at the function level. In Proceedings of the 28th Annual International Conference on Computer Science and Software Engineering (pp. 60-71). IBM Corp.
Alrubaye, H., Mkaouer, & M. W., Ali, O (2019). On the Use of Information Retrieval to Automate the Detection of Third-Party Java Library Migration At The Function Level, 27th IEEE/ACM International Conference on Program Comprehension 2019.
Alrubaye, Hussein, Mohamed Wiem Mkaouer, Igor Khokhlov, Leon Reznik, Ali Ouni, and Jason Mcgoff. Learning to Recommend Third-Party Library Migration Opportunities at the API Level. arXiv preprint arXiv:1906.02882 (2019).
Does library migration improve software quality?
By exploring the impact of library migration on software quality. We find that library migration lead to good software design by reducing coupling, increase cohesion, developer add more comments, reduce the number of lines of code and remove blank spaces, and improve readability of the code.
As summary, Based on historical migration of 321k open source projects. Migration leads coupling improved by -47.14% ,
Lack Of Cohesion improved by -11.05% ,
Avg. Line Comment improved by 8.71% ,
Avg Line Blank improved by -9.71% ,
Count Line improved by -15.71% ,
Avg. Cyclomatic improved by -26.16% , and
Ratio Comment To Code improved by 3.68%.
Depending on how complex is the migration between two libraries, we find that developers take from 2 to 42 days to perform migrations.
Learn more about what is the different patterns that developer follow
in migration process, more about bugs, and best practices View details »