It sounds that you are visiting our website from our ICPC, 2019 paper, If you are interested in replicating our study, you could:
  • You could download our dataset from here.
  • You could use the following ground truth data to extend the study.
  • You could detect migration in your own list of GitHub projects using MigrationMiner which is an automated tool that written in Java to detects code migrations performed between two Java third-party libraries.
Please cite this paper:
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

Library Migration Is Easy Today


Make your migration process easy, 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

Library Migration

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 ».


References
  • Alrubaye, H., & Wiem, M. (2019). Variability in Library. Software Engineering for Variability Intensive Systems: Foundations and Applications, 295.

Libraries and functions that had Migration


Function Mapping

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)


References

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%.


References

Developer Thinking

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 »


References