Of Changes and their History: Ideas for Future IDEs
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.
He will be program co-chair of ICSE 2011, the International Conference on Software Engineering. In 2005, he was the program chair of ESEC-FSE, the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. Furthermore, he co-chaired MSR, the International Working Conference on Mining Software Repositories in 2006 and 2007.