UZH-Logo

Maintenance Infos

Analyzing software repositories to understand software evolution


D'Ambros, M; Gall, H C; Lanza, M; Pinzger, M (2008). Analyzing software repositories to understand software evolution. In: Mens, T; Demeyer, S. Software Evolution. Heidelberg, Germany: Springer, 37-67.

Abstract

Software repositories such as versioning systems, defect tracking systems, and archived communication between project personnel are used to help manage the progress of
software projects. Software practitioners and researchers increasingly recognize the potential benefit of mining this information to support the maintenance of software systems, improve software design or reuse, and empirically validate novel ideas and techniques. Research is now proceeding to uncover ways in which mining these repositories can help to understand software development, to support predictions about software development, and to plan various evolutionary aspects of software projects.

This chapter presents several analysis and visualization techniques to understand software evolution by exploiting the rich sources of artifacts that are available. Based on the data models that need to be developed to cover sources such as modification and bug reports we describe how to use a Release History Database for evolution analysis. For that we present approaches to analyze developer effort for particular software entities. Further we present change coupling analyses that can reveal hidden change dependencies among software entities. Finally, we
show how to investigate architectural shortcomings over many releases and to identify trends in the evolution. Kiviat graphs can be effectively used to visualize such analysis results.

Abstract

Software repositories such as versioning systems, defect tracking systems, and archived communication between project personnel are used to help manage the progress of
software projects. Software practitioners and researchers increasingly recognize the potential benefit of mining this information to support the maintenance of software systems, improve software design or reuse, and empirically validate novel ideas and techniques. Research is now proceeding to uncover ways in which mining these repositories can help to understand software development, to support predictions about software development, and to plan various evolutionary aspects of software projects.

This chapter presents several analysis and visualization techniques to understand software evolution by exploiting the rich sources of artifacts that are available. Based on the data models that need to be developed to cover sources such as modification and bug reports we describe how to use a Release History Database for evolution analysis. For that we present approaches to analyze developer effort for particular software entities. Further we present change coupling analyses that can reveal hidden change dependencies among software entities. Finally, we
show how to investigate architectural shortcomings over many releases and to identify trends in the evolution. Kiviat graphs can be effectively used to visualize such analysis results.

Citations

Altmetrics

Downloads

221 downloads since deposited on 23 Dec 2008
7 downloads since 12 months
Detailed statistics

Additional indexing

Item Type:Book Section, refereed, original work
Communities & Collections:03 Faculty of Economics > Department of Informatics
Dewey Decimal Classification:000 Computer science, knowledge & systems
Language:English
Date:2008
Deposited On:23 Dec 2008 13:14
Last Modified:05 Apr 2016 12:45
Publisher:Springer
ISBN:978-3-540-76439-7
Additional Information:The original publication is available at www.springerlink.com
Official URL:http://www.springer.com/computer/programming/book/978-3-540-76439-7
Related URLs:http://opac.nebis.ch/F/?local_base=NEBIS&con_lng=GER&func=find-b&find_code=SYS&request=005536378

Download

[img]
Preview
Content: Accepted Version
Filetype: PDF
Size: 14MB

TrendTerms

TrendTerms displays relevant terms of the abstract of this publication and related documents on a map. The terms and their relations were extracted from ZORA using word statistics. Their timelines are taken from ZORA as well. The bubble size of a term is proportional to the number of documents where the term occurs. Red, orange, yellow and green colors are used for terms that occur in the current document; red indicates high interlinkedness of a term with other terms, orange, yellow and green decreasing interlinkedness. Blue is used for terms that have a relation with the terms in this document, but occur in other documents.
You can navigate and zoom the map. Mouse-hovering a term displays its timeline, clicking it yields the associated documents.

Author Collaborations