applying biological evolution to software ecosystems: a case study with gnome

20
Applying Biological Evolution to Software Ecosystems A Case study with GNOME Maëlick Claes Software Engineering Lab Maëlick Claes, Tom Mens, Alexander Serebrenik (TUe), Mathieu Goeminne & Philippe Grosjean (ECONUM, UMONS) BENEVOL 2012 Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 1 / 19

Upload: tom-mens

Post on 05-Dec-2014

476 views

Category:

Technology


0 download

DESCRIPTION

Presented by Maelick Claes (Software Engineering Lab, Département d'Informatique, COMPLEXYS Research Insitute of UMONS) at BENEVOL 2012 research seminar on software evolution in Delft, The Netherlands, 3 December 2012

TRANSCRIPT

Page 1: Applying biological evolution to software ecosystems: A case study with Gnome

Applying Biological Evolution to Software Ecosystems

A Case study with GNOME

Maëlick Claes

Software Engineering Lab

Maëlick Claes, Tom Mens, Alexander Serebrenik (TUe),Mathieu Goeminne & Philippe Grosjean (ECONUM, UMONS)

BENEVOL 2012

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 1 / 19

Page 2: Applying biological evolution to software ecosystems: A case study with Gnome

Plan

Introduction

Evolutionary theories

Experiments on GNOME

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 2 / 19

Page 3: Applying biological evolution to software ecosystems: A case study with Gnome

Introduction

Plan

Introduction

Evolutionary theories

Experiments on GNOME

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 3 / 19

Page 4: Applying biological evolution to software ecosystems: A case study with Gnome

Introduction

Ecosystems

Biological ecosystem

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 4 / 19

Page 5: Applying biological evolution to software ecosystems: A case study with Gnome

Introduction

Ecosystems

Software ecosystem

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 5 / 19

Page 6: Applying biological evolution to software ecosystems: A case study with Gnome

Introduction

Analogy

Software project vs. Biological species

◮ Evolution speed

◮ Mechanisms driving evolution

◮ Open source ecosystems: exhaustive information◮ Version control system◮ Mailing lists◮ Bug tracking systems◮ . . .

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 6 / 19

Page 7: Applying biological evolution to software ecosystems: A case study with Gnome

Evolutionary theories

Plan

Introduction

Evolutionary theories

Experiments on GNOME

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 7 / 19

Page 8: Applying biological evolution to software ecosystems: A case study with Gnome

Evolutionary theories

Darwinism

Phylogenetic tree

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 8 / 19

Page 9: Applying biological evolution to software ecosystems: A case study with Gnome

Evolutionary theories

Darwinism

Darwinism ⇒ project fork

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 9 / 19

Page 10: Applying biological evolution to software ecosystems: A case study with Gnome

Evolutionary theories

Reticulate evolution

Hypothetical evolution of Scleractinia corals

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 10 / 19

Page 11: Applying biological evolution to software ecosystems: A case study with Gnome

Evolutionary theories

Reticulate evolution

Horizontal gene transfer & Hybrid speciation

Debian

Ubuntu

Crunchbang

Maemo

Meego

Moblin

2003

2004

2005

2006

2007

2008

2009

2010

2011

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 11 / 19

Page 12: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

Plan

Introduction

Evolutionary theories

Experiments on GNOME

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 12 / 19

Page 13: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

Transfer of knowledge

Migration patterns

◮ Migration (one-way transfer)

◮ Exchange (bidirectional transfer)

◮ Period transfer (cyclic transfer)

◮ Parallel work

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 13 / 19

Page 14: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

GNOME’s subsystems - Nautilus & Evolution

GNOME Evolution Nautilus# projects 1327 21 21# projects with at least 2 days of commits 1263 19 20# projects with coding activity 1268 20 20# projects with coding activity and at least 2 days of commits 1222 19 20

# commits 1169251 66687 25860(5.7%) (2.21%)

# coding commits 606300 44150 13133(7.28%) (2.17%)

# authors with at 3841 867 707least 1 commit (22.6%) (18.4%)# coders (authors 2892 494 300involved in coding) (17.1%) (10,4%)# coders in at least 2 1392 341 274projects and 2 consecutive years (24,5%) (19,7%)

# full years of activity 15 14 15considered period of 1998 1998 1999coding activity – 2011 – 2011 – 2011

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 14 / 19

Page 15: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

GNOME, Nautilus & Evolution - Metrics

DevP (t) = {contributors ∈ P who made at least two code commits during period t}

stayersS (t) = |{a|∃P1 ∈ S, a ∈ DevP (t − 1) ∧ ∃P2 ∈ S, a ∈ DevP (t)}|

joinGlobalS (t) = |{a|∃P ∈ S, a ∈ DevP (t) ∧ ∀P ∈ G , a 6∈ DevP (t − 1)}|joinLocalS (t) = |{a|∃P ∈ S, a ∈ DevP (t) ∧ ∀P ∈ S, a 6∈ DevP (t − 1) ∧ ∃P ∈ G , a ∈ DevP (t − 1)}|joinersS (t) = joinGlobalS (t) + joinLocalS (t)

leaveGlobalS (t) = |{a|∃P ∈ S, a ∈ DevP (t − 1) ∧ ∀P ∈ G , a 6∈ DevP (t)}|leaveLocalS (t) = |{a|∃P ∈ S, a ∈ DevP (t − 1) ∧ ∀P ∈ S, a 6∈ DevP (t) ∧ ∃P ∈ G , a ∈ DevP (t)}|leaversS (t) = leaveGlobalS (t) + leaveLocalS (t)

attractivityS (t) =joinersS (t)

stayersS (t)+joinersS (t)

repulsivityS (t) =leaversS (t)

stayersS (t)+leaversS (t)

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 15 / 19

Page 16: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

Attractivity & repulsivity

Figure: Attractivity and repulsivity of GNOME (black circles) and its subsystemsEvolution (red triangles) and Nautilus (blue squares).

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 16 / 19

Page 17: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

Joiners & leavers origin

Figure: Number of coders locally (dotted lines) or globally (dashed lines) joiningand leaving Evolution (red triangles) and Nautilus (blue squares) from 1998 till2011. Triangles or squares are filled if global exceeds local.

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 17 / 19

Page 18: Applying biological evolution to software ecosystems: A case study with Gnome

Experiments on GNOME

Conclusion

Summary

◮ Analogy between software and biological ecosystems

◮ Adaptation of theory from biology to software: reticulate evolution

◮ Transfers in GNOME: Nautilus & Evolution have different behaviours

Future works

◮ Migration patterns

◮ More data: bug trackers and mailing lists

◮ Time window

◮ Other ecosystems (KDE) or other subsystems (Gedit, GIMP)

◮ Lower granularity (files vs. commits)

◮ Different activities (translation)

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 18 / 19

Page 19: Applying biological evolution to software ecosystems: A case study with Gnome

Thanks for your attention!

Questions?

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 19 / 19

Page 20: Applying biological evolution to software ecosystems: A case study with Gnome

Applying biology to computer science

◮ Genetic algorithms, neural networks, ant colony, . . .

◮ In software engineering & software evolution:◮ DeLesley Hutchins. A biologist’s view of software evolution. In RAM-SE, pages

95–105. Fakultät für Informatik, Universität Magdeburg, 2005◮ Chrystopher L. Nehanic et al. What software evolution and biological evolution

don’t have in common. In Second International IEEE Workshop on Software

Evolvablility, pages 58–65, 2006◮ Davor Svetinovic et al. Software and biological evolution: Some common principles,

mechanisms, and a definition. Technical report, 2006◮ Deepak Dhungana et al. Software ecosystems vs. natural ecosystems: learning from

the ingenious mind of nature. In Proceedings of the Fourth European Conference on

Software Architecture: Companion Volume, ECSA ’10, pages 96–102, New York,NY, USA, 2010. ACM

Maëlick Claes (UMONS) Biological Evol. & Software Ecos. BENEVOL 2012 20 / 19