how the evolution of emerging collaborations relates to code changes: an empirical study - icpc 2014
DESCRIPTION
Developers contributing to open source projects spontaneously group into "emerging" teams, re ected by messages ex-changed over mailing lists, issue trackers and other communication means. Previous studies suggested that such teams somewhat mirror the software modularity. This paper empirically investigates how, when a project evolves, emerging teams re-organize themselves|e.g., by splitting or merging. We relate the evolution of teams to the les they change, to investigate whether teams split to work on cohesive groups of files. Results of this study conducted on the evolution history of four open source projects, namely Apache HTTPD, Eclipse JDT, Netbeans, and Samba provide indications of what happens in the project when teams reorganize. Specifically, we found that emerging team splits imply working on more cohesive groups of les and emerging team merges imply working on groups of les that are cohesive from structural perspective. Such indications serve to better understand the evolution of software projects. More important, the observation of how emerging teams change can serve to suggest software remodularization actions.TRANSCRIPT
How the Evolution of Emerging Collaborations Relates to
Code Changes: An Empirical Study
Sebastiano Gerardo Massimiliano Rocco Panichella Canfora Di Penta Oliveto
Outline
Analysis of Teams Evolution:Teams identification from Emergent Collaborations
Conclusion and Future Work
Context and Motivation:Open Source Projects
Emergenging Teams in Open Source Project
Emergenging Teams in Open Source Project
Team 1
Team 2
Team n
...
Emergenging Teams in Open Source Project
Team 1
Team 2
Team n
...
SHARING KNOWLEDGEAND TECHINCAL SKILLS
New FeaturesBugs fixing ...................
...................
...................
Previous Work...
Hong Et al. - ICSM 2011
Previous Work...
Bird Et al. - FSE 2008
Analysis of the evolution of Teams: why?
Analysis of the evolution of Teams: why?
1) To better understand the ReasonsBehind the teams reorganization
(split/merge of developers teams)
Analysis of the evolution of Teams: why?
1) To better understand the ReasonsBehind the teams reorganization
(split/merge of developers teams)
2) Investigate whether emerging teams evolve with the aim of working on more cohesivegroups of files
Analysis of the evolution of Teams: how?
Teams Identification from Emergent Collaborations
Analysis of the evolution of Teams: how?
By use FUZZYCLUSTER ALGORITHMS
Teams Identification from Emergent Collaborations
Analysis of the evolution of Teams: how?
R1
By use FUZZYCLUSTER ALGORITHMS
R2
Analysis of the evolution of Teams: how?
TEAMS SPLIT
TEAMS MERGE
R1
By use FUZZYCLUSTER ALGORITHMS
R2
Analysis of the evolution of Teams: how?
R1
R2
By use FUZZYCLUSTER ALGORITHMS
Analysis of the evolution of Teams: how?
R1
R2
By use FUZZYCLUSTER ALGORITHMS
Sub-system one Sub-system twoSub-systems two
Sub-System where developers working on....
Analysis of the evolution of Teams: how?
R1
R2
By use FUZZYCLUSTER ALGORITHMS
Sub-system one Sub-system twoSub-systems two
Sub-System where developers working on....
Mancoridis et al. Modul. Quality
Poshyvanyk et al. CCBC
StructurePersprective
ConceptualPersprective
Analysis of the evolution of Teams: how?
Apache HTTP Eclipse JDT Netbeans Samba
Period considered
09/1998-03/2012 01/2002-12/2011
01/2001-08/2012 01/2000-09/2011
Releases Considere
d
2.02.2.02.2.4
2.2.122.4.1
3.03.23.43.64.2
3.43.65.56.97.2
2.33.0.203.0.253.5.04.0
Systems characteristics: Period of time and Releases Considered
Case study
• Goal: analyze data from mailing lists/issue trackers and versioning systems
• Purpose: observe the reorganization of the teams between releases• MQ/CCBC: better understand (i) the reason behind the
reorganization of teams
Research Questions
RQ1: How do emerging collaborations change acrosssoftware releases?
RQ2: How does the evolution of emerging collaboration relate to the cohesiveness of files changed byemerging teams?
RQ1: How do emerging collaborations change acrosssoftware releases?
Teams Split in a new release :
- In 15%-35% of the cases
RQ1: How do emerging collaborations change acrosssoftware releases?
Teams Merge in a new release :
- in 20%-35% of the cases
Teams Split in a new release :
- In 15%-35% of the cases
RQ1: How do emerging collaborations change acrosssoftware releases?
Teams Merge in a new release :
- in 20%-35% of the cases
Teams Split in a new release :
- In 15%-35% of the cases
RQ1: How do emerging collaborations change acrosssoftware releases?
Teams desappeared:
22%-45%
Teams Survived:
50%-70%
TEAMS SPLIT
TEAMS MERGED
RQ2 : How does the evolution of emerging collaboration relate to the cohesiveness of files changed by emerging teams?
TEAMS SPLIT
TEAMS MERGED
RQ2 : How does the evolution of emerging collaboration relate to the cohesiveness of files changed by emerging teams?
MQ
CCBC
TEAMS SPLIT
TEAMS MERGED
RQ2 : How does the evolution of emerging collaboration relate to the cohesiveness of files changed by emerging teams?
MQ
CCBC
MQ
CCBC
TEAMS SPLIT
TEAMS MERGED
RQ2 : How does the evolution of emerging collaboration relate to the cohesiveness of files changed by emerging teams?
MQ
CCBC
MQ
CCBC
The re-organization of developers into teams is reflected in cohesive changes occurring in the system structure
Future Work
Building better recommenders for software re-modularization or refactoring based of social interaction between developers.
Extend the empirical investigation to a large number and variety of open source
projects.