how the evolution of emerging collaborations relates to code changes: an empirical study - icpc 2014

Post on 26-Jun-2015

243 Views

Category:

Presentations & Public Speaking

1 Downloads

Preview:

Click to see full reader

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 fi les. 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.

top related