Gaining higher level evolutionary information about large software systems is a key challenge in dealing with increasing complexity and decreasing software quality. Software repositories are rich sources for distinctive kinds of analyses: They reflect the reasons and effects of particular changes made to the software system over a certain period of time. By analyzing we get a clearer picture of the status of the software.
For example, software repositories can be analyzed to provide information about the problems concerning a particular feature or a set of features. Hidden dependencies of structurally unrelated but over time logically coupled files exhibit a high potential to illustrate software evolution and possible architectural deterioration.
In this tutorial, we describe the investigation of software evolution by taking a step towards reflecting the analysis results against software quality attributes. Different kinds of analyses (from architecture to code) and their interpretation will be presented and discussed in relation to quality attributes. This will show our vision of where such evolution investigations can lead and how they can support development.
The tutorial will touch issues such as meta-models for evolution data, data analysis and history mining, software quality attributes, as well as visualization of analysis results.
Harald Gall is professor of software engineering in the Department of Informatics at the University of Zurich. Prior to that, he was associate professor in the Distributed Systems Group at the Technical University of Vienna, from where he also received his diploma and PhD degrees in Informatics. He is the head of the s.e.a.l. software evolution and architecture lab at the University of Zurich. His research interests are in software engineering with an emphasis on software evolution and maintenance, software architectures, reengineering, program families, and distributed and mobile software engineering processes. His work focuses on technologies that enable the development and evolution of large, complex, and long-living software systems. Recently, he was program chair of ESEC-FSE 2005 (European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering), IWPC 2005 (International Workshop on Program Comprehension), and IWPSE 2004 (International Workshop on Principles of Software Evolution).
Michele Lanza is assistant professor at the faculty of informatics of the University of Lugano. His main research interests lie in software reengineering, reverse engineering, and software evolution with a special focus on software visualization and metrics. He is author of the book "Object-Oriented Metrics in Practice" by Lanza, Marinescu, and Ducasse. He has experience in building information visualization tools and approaches to deal with reverse engineering and evolution: His Ph.D. thesis, for which he received Ernst Denert Software Engineering Award in 2003, discusses several visualizations to understand complex software systems at various levels. He is the developer of CodeCrawler, an information visualization tool which implements polymetric views, semantically enriched visualizations of information. He is involved in the visualization and the reverse engineering communities by contributing to the main venues such as SoftVis, VISSOFT, WCRE, ICSM, or TSE.