![Page 1: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/1.jpg)
Marco D’Ambros
On the Evolution of Source Code and Software Defects
REVEAL group @ Faculty of InformaticsUniversity of Lugano, Switzerland
Dissertation committee
Prof. Michele Lanza
Prof. Carlo Ghezzi
Prof. Cesare Pautasso
Prof. Harald C. Gall
Prof. Hausi A. Müller
![Page 2: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/2.jpg)
software engineering and bridges
Software & Bridges
![Page 3: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/3.jpg)
Software
Requirements
![Page 4: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/4.jpg)
Software
Requirements
![Page 5: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/5.jpg)
Software
Requirements
Softwareaging
![Page 6: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/6.jpg)
We are here
Ph.D.
![Page 7: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/7.jpg)
We are here
Ph.D.
ThesisxAnalysis
techniquesxTool supportx
Conclusionx
![Page 8: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/8.jpg)
We are here
Thesisx
Ph.D.
swamp of procrastination
haunted teachwood forest
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 9: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/9.jpg)
We are here
Thesisx
Ph.D.
swamp of procrastination
haunted teachwood forest
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 10: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/10.jpg)
The Evolution of Software Evolution
First software configuration managament (SCSS)
Lehman's laws of software evolution
Boehm's spiral model
RCS CVS First bug tracking system (GNATS) Bugzilla
Extreme Programming Explained: Embrace Changes
Subversion Git
First MSR approach (Ball
et. al.)
First workshop on MSR
MSR becomes a conferenceJazz
Release History Database
(Fischer et. al.)
1980 1990 2000 2010
1982 1986
1988
1992
1997 1999 2003
2004 2006 2007 2008
Cost of software maintenance estimated to be 50-75% of the total
cost of software (Sommerville, Davis)
1995
Cost of software maintenance estimated to be more than 85% (Erlik)
1975
1996
![Page 11: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/11.jpg)
ToolPublicationFoundation
First software configuration managament (SCSS)
Lehman's laws of software evolution
Boehm's spiral model
RCS CVS First bug tracking system (GNATS) Bugzilla
Extreme Programming Explained: Embrace Changes
Subversion Git
First MSR approach (Ball
et. al.)
First workshop on MSR
MSR becomes a conferenceJazz
Release History Database
(Fischer et. al.)
1980 1990 2000 2010
1982 1986
1988
1992
1997 1999 2003
2004 2006 2007 2008
Cost of software maintenance estimated to be 50-75% of the total
cost of software (Sommerville, Davis)
1995
Cost of software maintenance estimated to be more than 85% (Erlik)
1975
1996
![Page 12: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/12.jpg)
ToolPublication
Infrastructure Implementation
First software configuration managament (SCSS)
Lehman's laws of software evolution
Boehm's spiral model
RCS CVS First bug tracking system (GNATS) Bugzilla
Extreme Programming Explained: Embrace Changes
Subversion Git
First MSR approach (Ball
et. al.)
First workshop on MSR
MSR becomes a conferenceJazz
Release History Database
(Fischer et. al.)
1980 1990 2000 2010
1982 1986
1988
1992
1997 1999 2003
2004 2006 2007 2008
Cost of software maintenance estimated to be 50-75% of the total
cost of software (Sommerville, Davis)
1995
Cost of software maintenance estimated to be more than 85% (Erlik)
1975
1996
![Page 13: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/13.jpg)
ToolPublicationEventThe Advent of MSR
First software configuration managament (SCSS)
Lehman's laws of software evolution
Boehm's spiral model
RCS CVS First bug tracking system (GNATS) Bugzilla
Extreme Programming Explained: Embrace Changes
Subversion Git
First MSR approach (Ball
et. al.)
First workshop on MSR
MSR becomes a conferenceJazz
Release History Database
(Fischer et. al.)
1980 1990 2000 2010
1982 1986
1988
1992
1997 1999 2003
2004 2006 2007 2008
Cost of software maintenance estimated to be 50-75% of the total
cost of software (Sommerville, Davis)
1995
Cost of software maintenance estimated to be more than 85% (Erlik)
1975
1996
![Page 14: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/14.jpg)
Foundation Infrastructure Implementation
The advent of MSR
The Evolution of Software Evolution
First software configuration managament (SCSS)
Lehman's laws of software evolution
Boehm's spiral model
RCS CVS First bug tracking system (GNATS) Bugzilla
Extreme Programming Explained: Embrace Changes
Subversion Git
First MSR approach (Ball
et. al.)
First workshop on MSR
MSR becomes a conferenceJazz
Release History Database
(Fischer et. al.)
1980 1990 2000 2010
1982 1986
1988
1992
1997 1999 2003
2004 2006 2007 2008
Cost of software maintenance estimated to be 50-75% of the total
cost of software (Sommerville, Davis)
1995
Cost of software maintenance estimated to be more than 85% (Erlik)
1975
1996
![Page 15: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/15.jpg)
SCMmeta-data
Software defects
E-mail archive
Documentation Others
30%
23%
15%
8%
0%
Source code
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
MSR Approaches
![Page 16: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/16.jpg)
SCMmeta-data
Software defects
E-mail archive
Documentation OthersSource code
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
MSR Approaches
![Page 17: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/17.jpg)
SCMmeta-data
Software defects
E-mail archive
Documentation OthersSource code
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
MSR ApproachesPlain
Integrated
![Page 18: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/18.jpg)
Holisticsoftwareevolution
Chats
Software defects
IDE data
SCM meta-data
E-mail archive
Models
Documentation
Bytecode
Unit tests
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Source code
![Page 19: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/19.jpg)
Holisticsoftwareevolution
Chats
IDE data
SCM meta-data
E-mail archive
Models
Documentation
Bytecode
Unit tests
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Source code
Software defects
![Page 20: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/20.jpg)
Holisticsoftwareevolution
Chats
IDE data
SCM meta-data
E-mail archive
Models
Documentation
Bytecode
Unit tests
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Source code
Software defects
![Page 21: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/21.jpg)
Holisticsoftwareevolution
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Chats
Software defects
IDE data
SCM meta-data Source code
E-mail archive
Models
Documentation
Bytecode
Unit tests
A. Zeller, MSR keynote 2007
![Page 22: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/22.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Chats
Software defects
IDE data
SCM meta-data Source code
E-mail archive
Models
Documentation
Bytecode
Unit tests
Our Approach
![Page 23: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/23.jpg)
An integrated view of software evolution, combining historical information regarding source code and software defects, supports an extensible set of software maintenance tasks.
D’Ambros, 2010
![Page 24: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/24.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
![Page 25: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/25.jpg)
Mevo meta-model
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
CSMR 2008
![Page 26: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/26.jpg)
Mevo meta-model
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
CSMR 2008
![Page 27: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/27.jpg)
Mevo meta-model
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
CSMR 2008
![Page 28: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/28.jpg)
Mevo meta-model
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
7 analysis techniques
CSMR 2008
![Page 29: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/29.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 30: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/30.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 31: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/31.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 32: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/32.jpg)
Retrospective analysis Future prediction
![Page 33: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/33.jpg)
Retrospective analysis
12 3
Change coupling analysis
Bug evolution analysis
Code-bugco-evolution analysis
![Page 34: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/34.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
Change Coupling Analysis
1Goal: Make sense of huge amount of change coupling information
![Page 35: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/35.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
Change Coupling Analysis
1Goal: Make sense of huge amount of change coupling information
Technique name
![Page 36: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/36.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
Change Coupling Analysis
1Goal: Make sense of huge amount of change coupling information
Technique name
Used part ofthe meta-model
![Page 37: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/37.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
Change Coupling Analysis
1Goal: Make sense of huge amount of change coupling information
Technique name
Goal /Question
Used part ofthe meta-model
![Page 38: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/38.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
Change Coupling Analysis
1Goal: Make sense of huge amount of change coupling information
Technique name
Goal /Question
Techniquenumber
Used part ofthe meta-model
![Page 39: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/39.jpg)
Software defects
SCM meta-data Source code for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
E-mail archive
Change Coupling Analysis
1Goal: Make sense of huge amount of change coupling information
![Page 40: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/40.jpg)
change cou pling•
implicit dependency of files that frequently change together [Gall et al., ICSM 1998]
![Page 41: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/41.jpg)
![Page 42: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/42.jpg)
Module level to assessarchitecture decay
![Page 43: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/43.jpg)
Class level to supportchange impact analysis
![Page 44: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/44.jpg)
Packagebrowser
Current projectpackage list
Protocolbrowser
Classbrowser
Methodbrowser
Main EvolutionRadar Visualization
Secondary EvolutionRadar Visualization
The Evolution Radar
![Page 45: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/45.jpg)
Packagebrowser
Current projectpackage list
Protocolbrowser
Classbrowser
Methodbrowser
Main EvolutionRadar Visualization
Secondary EvolutionRadar Visualization
System re-documentation and restructuring
![Page 46: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/46.jpg)
Tasks Supported
Assessing
architecture decay
Coupled files
Change impact analysis
System evolution analysis
Time
Packagebrowser
Current projectpackage list
Protocolbrowser
Classbrowser
Methodbrowser
Main EvolutionRadar Visualization
Secondary EvolutionRadar Visualization
System re-documentation and restructuring
![Page 47: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/47.jpg)
The Evolution Radar shows integrated change coupling information, supporting various maintenance tasks.
MSR 2006, WCRE 2006, TSE 2009 1Change Coupling Analysis
![Page 48: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/48.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Software defects
SCM meta-data Source code
E-mail archive
Bug Evolution Analysis
2Goal: Study the history of software defects
![Page 49: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/49.jpg)
0%
7%
14%
21%
28%
35%
12 Hours 1 Day 1 Week 1 Month 6 Months 1 Year 2 Years More
> 50%
Bug lifetime
distribution in Mozilla
![Page 50: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/50.jpg)
System Radiography viewWhich components experienced many defects?
![Page 51: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/51.jpg)
System Radiography viewWhich components experienced many defects?
Bug watch viewWhich defects are hard to fix?
![Page 52: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/52.jpg)
The visual analysis of bug histories permits the detection of critical software components and exceptional bugs.
VISSOFT 2007 2Bug Evolution Analysis
![Page 53: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/53.jpg)
Software defects
SCM meta-data Source code
E-mail archiveSoftware defects
SCM meta-data Source code
E-mail archive
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } } 3Goal: Detect patterns in the co-evolution
of source code and defects
Bug-Code Co-Evolution Analysis
![Page 54: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/54.jpg)
SCM meta-data
Code committed in SCM repository
Time
Foo.java
![Page 55: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/55.jpg)
SCM meta-data
Code committed in SCM repository
Time
Foo.java
TimeDefects
Defect reported
Foo.java
![Page 56: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/56.jpg)
SCM meta-data
Code committed in SCM repository
Time
Foo.java
Bar.java
Boo.java
TimeDefects
Defect reported
Foo.java
Bar.java
Baz.java
![Page 57: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/57.jpg)
SCM meta-data
Code committed in SCM repository
Time
Foo.java
Bar.java
Boo.java
Bar.java
Baz.java
Defects
Defect reported
Foo.java
Time
![Page 58: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/58.jpg)
SCM meta-data
Code committed in SCM repository
Time
Foo.java
Bar.java
Boo.java
Bar.java
Baz.java
Defects
Defect reported
Foo.java
Time
![Page 59: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/59.jpg)
SCM meta-data
Code committed in SCM repository
Time
Foo.java
Bar.java
Boo.java
Bar.java
Baz.java
Defects
Defect reported
Foo.java
Time
Δt
Co-evolution pattern
![Page 60: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/60.jpg)
Catalog of 10 formally defined patterns
![Page 61: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/61.jpg)
Detecting and visualizing co-evolutionary patterns allows the characterization of software components based on theirco-evolution.
CSMR 2006, JSME 2009 3Bug-Code Co-Evolution Analysis
![Page 62: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/62.jpg)
Retrospective analysis Future prediction
![Page 63: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/63.jpg)
4Bug
prediction
5Bug prediction with e-mails
6Bug prediction with
change coupling
7Software quality
analysis
Future prediction
![Page 64: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/64.jpg)
Software defects
SCM meta-data Source code
E-mail archiveSoftware defects
SCM meta-data Source code
E-mail archive
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } } 4Question: Which bug prediction approach
is the best over different systems?
Bug Prediction
![Page 65: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/65.jpg)
100+
PAPERS
Bug prediction is a very active research field
![Page 66: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/66.jpg)
Other factors
Code metrics
Previous defects
Process metrics
100+
PAPERS
Bug prediction is a very active research fieldWhich one is better?
![Page 67: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/67.jpg)
Moser et al. SCM meta-data
Basili et al.
Kim et al.
Hassan
Source code metrics
Previous defects
Entropy of changes
![Page 68: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/68.jpg)
Basili et. al.
Kim et. al.
Hassan
Moser et al. SCM meta-data
Source code metrics
Previous defects
Entropy of changes
![Page 69: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/69.jpg)
Basili et. al.
Kim et. al.
Hassan
Moser et al. SCM meta-data
Source code metrics
Previous defects
Entropy of changes
Churn ofcode metrics
Entropy of code metrics
![Page 70: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/70.jpg)
Time
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Release X
![Page 71: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/71.jpg)
Post release defects
Past “Future”Time
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Release X
Prediction goal
![Page 72: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/72.jpg)
Post release defects
Past “Future”Time
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Release X
1 Previous defects
Prediction goal
![Page 73: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/73.jpg)
Time
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Release X
Past “Future”
Post release defects
2 SCM meta-data
3 Entropy of changesPrediction goal
1 Previous defects
![Page 74: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/74.jpg)
Time
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Release X
Past “Future”
Post release defects
CBO9923.412.120.362.143.8
DIT9923.412.120.362.143.8
NOC9923.412.120.362.143.8
Source code metrics
Prediction goal
4
2 SCM meta-data
3 Entropy of changes
1 Previous defects
![Page 75: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/75.jpg)
Time
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Release X
Past “Future”
Post release defects
CBO9923.412.120.362.143.8
DIT9923.412.120.362.143.8
NOC9923.412.120.362.143.8
Prediction goal
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
CBO9923.412.120.362.143.8
DIT9923.412.120.362.143.8
NOC9923.412.120.362.143.8
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
CBO9923.412.120.362.143.8
DIT9923.412.120.362.143.8
NOC9923.412.120.362.143.8
deltas deltas
Entropy and churn of code metrics
Source code metrics
4
5 6
2 SCM meta-data
3 Entropy of changes
1 Previous defects
![Page 76: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/76.jpg)
SCM meta-data
Churn of code metrics
Entropy of code metrics
Code metrics
Entropy of changes
Previous defects
Comparing Prediction Models
Predictionperformance
0.2 0.4 0.6 0.8
![Page 77: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/77.jpg)
Previous defects
Comparing Prediction Models
Predictionperformance
0.2 0.4 0.6 0.8
![Page 78: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/78.jpg)
Comparing Prediction Models
![Page 79: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/79.jpg)
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
Comparing Prediction Models
![Page 80: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/80.jpg)
Comparing Prediction Models
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
![Page 81: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/81.jpg)
JDT Core
score Σ= score(s)s ∈ systems
Comparing Prediction Models
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
100%
90%
75%
50%
score ← score + 3
score ← score + 1
score ← score - 1
PDE Mylyn Equinox Lucene
![Page 82: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/82.jpg)
0 4 8 11 15
Entropy of changes
SCM meta-data
Entropy of code metrics
Previous defects
Churn of code metrics
Code metrics
Score
Prediction Performance Across Five Systems
![Page 83: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/83.jpg)
0 4 8 11 15
Entropy of changes
SCM meta-data
Entropy of code metrics
Previous defects
Churn of code metrics
Code metrics
Performance not stable across systems
Good performance and fast to compute
Most stable performance but computationally
expensive
Prediction Performance Across Five Systems
Score
![Page 84: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/84.jpg)
The entropy and the churn of code metrics are the most stable predictors across different systems.
MSR 2010, EMSE under review 4Bug Prediction
![Page 85: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/85.jpg)
Bug Prediction with Change Coupling
Software defects
SCM meta-data Source code
E-mail archiveSoftware defects
SCM meta-data Source code
E-mail archive
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Question: Does change coupling correlate with software defects? 5
![Page 86: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/86.jpg)
Change coupling is harmfulWhat is the impact on software defects?
![Page 87: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/87.jpg)
Measuring Change Coupling
DistributionNumber of coupled classes
ForceNumber of co-changes
Time decayChanges far in the past count less
![Page 88: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/88.jpg)
Correlation with Software Defects
Distribution
Force
Time decay 0.8Spearman’s correlation
Change coupling stronglycorrelates with software defects
+
![Page 89: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/89.jpg)
Correlation with Software Defects
Distribution
Force
Time decay 0.8Spearman’s correlation
Change coupling stronglycorrelates with software defects
+
![Page 90: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/90.jpg)
Defect Prediction
Explanative power
Codemetrics
SCMdata
Changecoupling
![Page 91: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/91.jpg)
0
0.2
0.3
0.5
0.6
0.8
0.9
Defect Prediction
Explanative power
Codemetrics
SCMdata
Changecoupling
![Page 92: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/92.jpg)
0
0.2
0.3
0.5
0.6
0.8
0.9
Defect Prediction
Explanative power
Codemetrics
SCMdata
Changecoupling
Predictive power
Codemetrics
SCMdata
Changecoupling
![Page 93: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/93.jpg)
0
0.2
0.3
0.5
0.6
0.8
0.9
Defect Prediction
Explanative power
Codemetrics
SCMdata
Changecoupling
Predictive power
Codemetrics
SCMdata
Changecoupling14%
![Page 94: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/94.jpg)
Change coupling correlates with software defects and can be used to improve defect prediction models.
WCRE 2009 5Bug Prediction with Change Coupling
![Page 95: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/95.jpg)
Software Quality Analysis
Software defects
SCM meta-data Source code
E-mail archiveSoftware defects
SCM meta-data Source code
E-mail archive
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Question: Do design flaws correlate with software defects? 6
![Page 96: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/96.jpg)
A class should haveone responsibility
Design Flaws
Design guideline:
(Size responsibility)∝Class
![Page 97: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/97.jpg)
A class should haveone responsibility
Design Flaws
Design guideline:
(Size responsibility)∝Class
Violated
![Page 98: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/98.jpg)
A class should haveone responsibility
Design Flaws
Design guideline:
(Size responsibility)∝Class
Violated
Does the presence of design
flaws correlate with software
defects?
And their addition?
![Page 99: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/99.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Design flaws
Source code
Analyzing Design Flaws
~
![Page 100: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/100.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Design flaws
Source code
Detection strategies
Analyzing Design Flaws
~
![Page 101: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/101.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Analyzing Design Flaw Deltas
![Page 102: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/102.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Analyzing Design Flaw Deltas
Time
![Page 103: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/103.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Analyzing Design Flaw Deltas
Time
2 weeks 2 weeks 2 weeks for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)>0) { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
![Page 104: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/104.jpg)
Analyzing Design Flaw Deltas
Time
Number of flaws
![Page 105: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/105.jpg)
Addition of flaws
Analyzing Design Flaw Deltas
Time
Number of flaws
![Page 106: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/106.jpg)
Analyzing Design Flaw Deltas
Time
Number of flaws
Time
Defects
Δt
Addition of flaws
correlation
![Page 107: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/107.jpg)
0.4Flaw presence correlation
+
0.6Flaw addition correlation
+
Results on Six Large Systems
![Page 108: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/108.jpg)
0.4Flaw presence correlation
+
0.6Flaw addition correlation
+No flaw correlates more than
others consistently across systems
Results on Six Large Systems
![Page 109: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/109.jpg)
The presence and addition of design flaws correlates with software defects.
QSIC 2010 6Software Quality Analysis
![Page 110: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/110.jpg)
Software defects
SCM meta-data Source code
E-mail archive
Bug Prediction with E-mails
Software defects
SCM meta-data Source code
E-mail archive
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
Question: Can bug prediction techniques be improved with e-mail data?7
![Page 111: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/111.jpg)
Software entities that are frequently mentioned in development mailing lists are defect prone
Popularity Metrics
![Page 112: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/112.jpg)
Do popularity metrics correlate with defects?
Popularity metrics
Spearman’s correlation
![Page 113: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/113.jpg)
Equinox Jackrabbit Lucene Maven0
0.2
0.4
0.6
0.8
Do popularity metrics correlate with defects?
Popularity metrics
Spearman’s correlation
![Page 114: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/114.jpg)
Equinox Jackrabbit Lucene Maven0
0.2
0.4
0.6
0.8
Do popularity metrics correlate with defects?
Popularity metricsLines of code
Spearman’s correlation
![Page 115: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/115.jpg)
POPmetrics
POPmetrics
Do popularity metrics improve existing bug prediction techniques?
Prediction performance
![Page 116: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/116.jpg)
0
0.1
0.2
0.3
0.4
0.5
POPmetrics
POPmetrics
SCM data
Codemetrics
Do popularity metrics improve existing bug prediction techniques?
Prediction performance
![Page 117: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/117.jpg)
0
0.1
0.2
0.3
0.4
0.5
POPmetrics
POPmetrics
SCM data
Codemetrics
SCM+
POP
Code +
POP
Do popularity metrics improve existing bug prediction techniques?
4%12%
Prediction performance
![Page 118: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/118.jpg)
Popularity metrics extracted from development mailing lists correlate with defects and improve existing bug prediction techniques.
FASE 2010 7Bug Prediction with E-mails
![Page 119: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/119.jpg)
1Change coupling
analysis
2Bug evolution
analysis
3Code-bug
co-evolution analysis
4Bug prediction
5Bug prediction with e-mails
6Bug prediction with change
coupling
7Software quality
analysis
Retrospective Analysis
Future Prediction
![Page 120: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/120.jpg)
Mevo meta-model
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
1Change coupling
analysis
2Bug evolution analysis
3Code-bugco-evolution analysis
4Bug prediction
567Bug prediction
with e-mails
Software quality analysis
Bug prediction with change coupling
![Page 121: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/121.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Thesisx
Conclusionx
![Page 122: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/122.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Thesisx
Conclusionx
![Page 123: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/123.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Thesisx
Conclusionx
![Page 124: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/124.jpg)
tools were fundamental for my
daddy's research
![Page 125: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/125.jpg)
Mevo meta-model
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
![Page 126: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/126.jpg)
Churrasco framework
Mevo meta-model
SCP 2010
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
![Page 127: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/127.jpg)
Churrasco framework
Mevo meta-model
Impo
rter
s
Web interface
SCP 2010
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
![Page 128: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/128.jpg)
Churrasco framework
Mevo meta-model
Dat
a in
terf
ace
Impo
rter
s
Web interface
Evolution Radar
Bug’s Life
BugCrawler
Pendolino
SCP 2010
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
![Page 129: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/129.jpg)
Tool Gallery
Evolution Radar
![Page 130: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/130.jpg)
Tool Gallery
Bug’s Life
![Page 131: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/131.jpg)
Tool Gallery
BugCrawler
![Page 132: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/132.jpg)
Tool Gallery
Pendolino
![Page 133: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/133.jpg)
Tool Gallery
Churrasco
![Page 134: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/134.jpg)
![Page 135: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/135.jpg)
1
2
4
5
6
7 Bug prediction with e-mails
Software quality analysis
Change coupling analysis
3
Bug prediction with change coupling
Bug prediction
Bug evolution analysis
Evolution Radar Bug’s Life BugCrawler PendolinoChurrasco
Code-bugco-evolution analysis
MSR Challenge CSMR 2007
MSR 2006 WCRE 2006
TSE 2009
VISSOFT 2007
WASDeTT 2008
CSMR 2006
MSR 2010
WCRE 2009
QSIC 2010
FASE 2010
![Page 136: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/136.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 137: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/137.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
Conclusionx
![Page 138: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/138.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 139: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/139.jpg)
Models available through Churrasco web interface
Bug prediction benchmark
Replicating Experiments
![Page 140: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/140.jpg)
SVG
Interactive
Visualization
Recent annotations
added
People participating
to the collaboration
Selected figure
information
Metrics mapping
configurator
Package selector
Regular expression
matcher
User
Selected figure
Context menu
Report generator
STTT 2010Collaboration in Churrasco
![Page 141: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/141.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 142: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/142.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 143: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/143.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 144: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/144.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 145: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/145.jpg)
![Page 146: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/146.jpg)
![Page 147: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/147.jpg)
![Page 148: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/148.jpg)
![Page 149: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/149.jpg)
![Page 150: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/150.jpg)
![Page 151: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/151.jpg)
![Page 152: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/152.jpg)
![Page 153: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/153.jpg)
Developer neo
Limitations
![Page 154: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/154.jpg)
Developer neo
Limitations
User studies
More case studies
Other languages
![Page 155: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/155.jpg)
Developer neo
Limitations
User studies
More case studies
Other languages
Future Work
![Page 156: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/156.jpg)
Developer neo
Limitations
User studies
Exploit author data More case studies
Other languages
Future Work
![Page 157: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/157.jpg)
Developer neo
Limitations
User studies
Exploit author data More case studies
Other languages
Mevo
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }Extend the
meta-modelCombinetechniques Future Work
![Page 158: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/158.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
HOLISTICSOFTWAREEVOLUTION
MOREREPOSITORIES AHEAD
![Page 159: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/159.jpg)
Holisticsoftwareevolution
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j];
if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr;
dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
HOLISTICSOFTWAREEVOLUTION
MOREREPOSITORIES AHEAD
![Page 160: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/160.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 161: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/161.jpg)
We are here
swamp of procrastination
haunted teachwood forest
Thesisx
Ph.D.
peaks of toolsmadness
Analysistechniquesx
Tool supportx
ConclusionxxIntermezzo
![Page 162: On the Evolution of Source Code and Software Defects](https://reader038.vdocuments.net/reader038/viewer/2022103113/554a015bb4c905e56c8b50e1/html5/thumbnails/162.jpg)
Conference papers1. On the Impact of Design Flaws on Software Defects
Marco D'Ambros, Alberto Bacchelli, Michele LanzaIn Proceedings of QSIC 2010, pp. 23-31.
2. An Extensive Comparison of Bug Prediction ApproachesMarco D'Ambros, Michele Lanza, Romain RobbesIn Proceedings of MSR 2010, pp. 31-41.
3. Are Popular Classes More Defect Prone?Alberto Bacchelli, Marco D'Ambros, Michele LanzaIn Proceedings of FASE 2010, pp. 59-73.
4. On the Relationship Between Change Coupling and Software DefectsMarco D'Ambros and Michele Lanza and Romain RobbesIn Proceedings of WCRE 2009, pp. 135-144.
5. Promises and Perils of Porting Software Visualization Tools to the WebMarco D'Ambros, Mircea Lungu, Michele Lanza, Romain RobbesIn Proceedings of WSE 2009, pp. 109-118.
6. A Flexible Framework to Support Collaborative Software Evolution AnalysisMarco D'Ambros, Michele LanzaIn Proceedings of CSMR 2008, pp. 3-12.
7. Reverse Engineering with Logical CouplingMarco D'Ambros, Michele LanzaIn Proceedings of WCRE 2006, pp. 189-198.
8. Software Bugs and Evolution: A Visual Approach to Uncover Their RelationshipsMarco D'Ambros, Michele LanzaIn Proceedings of CSMR 2006, pp. 227-236.
1. Churrasco: Supporting Collaborative Software Evolution AnalysisMarco D'Ambros, Michele LanzaIn Proceedings of WASDeTT 2008, 2008.
2. "A Bug's Life" - Visualizing a Bug DatabaseMarco D'Ambros, Michele Lanza, Martin PinzgerIn Proceedings of VISSOFT 2007, pp. 113-120.
3. The Evolution Radar: Visualizing Integrated Logical Coupling InformationMarco D'Ambros, Michele Lanza, Mircea LunguIn Proceedings of MSR 2006, pp. 26-32.
Workshop papers
1. On Porting Software Visualization Tools to the WebMarco D'Ambros, Michele Lanza, Mircea Lungu, Romain RobbesIn Software Tools for Technology Transfer (STTT), Springer, 2010.
2. Distributed and Collaborative Software Evolution Analysis with ChurrascoMarco D'Ambros, Michele LanzaIn Journal of Science of Computer Programming (SCP), Vol. 75. No. 4, pp. 276-287. Elsevier, 2010.
3. Visualizing Co-Change Information with the Evolution RadarMarco D'Ambros, Michele Lanza, Mircea LunguIn IEEE Transactions on Software Engineering (TSE), Vol. 35. No. 5, pp. 720-735. IEEE CS Press, 2009.
4. Visual Software Evolution ReconstructionMarco D'Ambros, Michele LanzaIn Journal on Software Maintenance and Evolution: Research and Practice (JSME), Vol.21, No.3, pp. 217-232, May 2009. John Wiley & Sons, 2009.
Journal papers
1. Supporting Software Evolution Analysis with Historical Dependencies and Defect InformationMarco DʼAmbrosIn Proceedings of ICSM 2008, pp. 412-415.
2. The Metabase: Generating Object Persistency Using Meta DescriptionsMarco D'Ambros, Michele Lanza, Martin PinzgerIn Proceedings of FAMOOSr 2007.
3. BugCrawler: Visualizing Evolving Software SystemsMarco D'Ambros, Michele LanzaIn Proceedings of CSMR 2007, pp. 333-334.
4. Applying the Evolution Radar to PostgreSQLMarco D'Ambros, Michele LanzaIn Proceedings of MSR 2006, pp. 177-178, 2006.
Other publications