Skip to Main Content
Changes are the heartbeat of a software system. Software has to change to reflect the adapting requirements of business, processes, and technology; otherwise it becomes progressively less useful. Because of that, software typically grows and becomes more complex inducing more time and effort for evolving it. Software archives provide rich sources of information about systems and their history of changes. From that we can learn and benefit in steering the evolution of a software system both technically and organizationally. In our research, we have investigated change histories from multiple perspectives: change couplings, change types, developer networks, component dependencies, evolution metrics, etc. Combined with effective visualizations, change histories have shown to be extremely useful for guiding software development. But that information can also be used to reflect how a future IDE might better support the developer given that all the data about a software project is accessible. For that we review some of the major achievements in software evolution analysis and present our evolution analysis platform called EVOLIZER to address what we can learn from mining change histories and how to integrate that in future IDEs.