A Study of Ripple Effects In Software Ecosystems
Romain Robbes Mircea LunguUniversity of Chile University of Bern
Tuesday, June 7, 2011
Ripple Effects
Architecture of Moose 3.2 made with Softwarenaut
Tuesday, June 7, 2011
Ripple Effects
Architecture of Moose 3.2 made with Softwarenaut
Tuesday, June 7, 2011
Ripple Effects
Architecture of Moose 3.2 made with Softwarenaut
Tuesday, June 7, 2011
Ecosystem Ripple Effects
Moose in the SCG Eco-system, made with SPOTuesday, June 7, 2011
Ecosystem Ripple Effects
? ? ?
?
? ?
?
??
Evidence?Moose in the SCG Eco-system, made with SPOTuesday, June 7, 2011
Evidence from mailing lists
• In the paper
• Seaside
• Moose
• ...
Tuesday, June 7, 2011
Evidence from mailing lists
• In the paper
• Seaside
• Moose
• ...
Seaside User: I noticed that the dialog classes listed below are not in [new version]. I am wondering if these classes have been dropped, have not been ported to [new version] or does their func- tionality exists elsewhere?
Tuesday, June 7, 2011
Evidence from mailing lists
• In the paper
• Seaside
• Moose
• ...
Seaside User: I noticed that the dialog classes listed below are not in [new version]. I am wondering if these classes have been dropped, have not been ported to [new version] or does their func- tionality exists elsewhere?
Seaside Developer: They have been dropped. A mail went out to this list if anybody still used them and nobody replied. [...] Personally I donʼt know of any application that uses these dialogs.
Tuesday, June 7, 2011
Evidence from mailing lists
• In the paper
• Seaside
• Moose
• ...
Moose User: [...] where is MOLabelShape, why was it deleted?? I use it and now is gone!!! I even had a specialization of it [...]
Tuesday, June 7, 2011
Evidence from an ecosystem history
Tuesday, June 7, 2011
Evidence from an ecosystem history
• SqueakSource - More than
• 7 years of history
• 2000 projects
• 3000 developers
Tuesday, June 7, 2011
Searching for Ripples
Tuesday, June 7, 2011
Searching for Ripples• Source: additions, deletions, modifications, deprecations
Tuesday, June 7, 2011
Searching for Ripples• Source: additions, deletions, modifications, deprecations
• Algorithm for deprecation-based-ripples
Tuesday, June 7, 2011
Searching for Ripples• Source: additions, deletions, modifications, deprecations
• Algorithm for deprecation-based-ripples
1. Find all the entities in the ecosystem that were deprecated
Tuesday, June 7, 2011
Searching for Ripples• Source: additions, deletions, modifications, deprecations
• Algorithm for deprecation-based-ripples
1. Find all the entities in the ecosystem that were deprecated
2. For each look at all the events that involve that entity and/or its suggested replacement
Tuesday, June 7, 2011
Searching for Ripples• Source: additions, deletions, modifications, deprecations
• Algorithm for deprecation-based-ripples
1. Find all the entities in the ecosystem that were deprecated
2. For each look at all the events that involve that entity and/or its suggested replacement
3. Replacements that happened after the deprecation as consequences of a ripple
Tuesday, June 7, 2011
Top 5 Ripples from The Case Study
Origin System Deprecated Method Systematic Replacement
# of Affected Systems
# of Affected Developers
System-Support Author initials Author fullName 120 110Seaside WACanvas bold: WACanvas strong: 61 59Seaside WASession
registerForBackgracking:(...) states 43 47
Famix-Core FAMIXNamedEntity packagedIn
FAMIXNamedEntity parentPackage
33 11
Kernel ClassDescription metaclass ClassDescription theMetaClass
31 34
System-Support Utilities authorInitials Author initials 37 45Kernel Object isKindOf:orOf: 12 24Collections-Text Text isoToSqueak 18 22
Tuesday, June 7, 2011
A Ripple Example
remove
add
old
new
... other
ripple
revert
Tuesday, June 7, 2011
A Ripple Example
packagedIn renamed to
parentPackage
remove
add
old
new
... other
ripple
revert
Tuesday, June 7, 2011
A Ripple Example
update, revert, update again
remove
add
old
new
... other
original
ripple
revert
Tuesday, June 7, 2011
A Ripple Example
ripples
Tuesday, June 7, 2011
A Ripple Example
inconsistent state
Tuesday, June 7, 2011
Conclusions
Tuesday, June 7, 2011
Conclusions• Evidence that ecosystem ripple effects can
Tuesday, June 7, 2011
Conclusions• Evidence that ecosystem ripple effects can
• Have a broad impact
Tuesday, June 7, 2011
Conclusions• Evidence that ecosystem ripple effects can
• Have a broad impact
• Have a long life
Tuesday, June 7, 2011
Conclusions• Evidence that ecosystem ripple effects can
• Have a broad impact
• Have a long life
• Developers don’t know their clients
Tuesday, June 7, 2011
Conclusions• Evidence that ecosystem ripple effects can
• Have a broad impact
• Have a long life
• Developers don’t know their clients
• Angry impactees
Tuesday, June 7, 2011
Conclusions• Evidence that ecosystem ripple effects can
• Have a broad impact
• Have a long life
• Developers don’t know their clients
• Angry impactees
• Defensive deprecation
Tuesday, June 7, 2011
Ripple Effects of the Article
Tuesday, June 7, 2011
Ripple Effects of the Article
• Extended Version
Tuesday, June 7, 2011
Ripple Effects of the Article
• Extended Version
• Tool Support
Tuesday, June 7, 2011
Ripple Effects of the Article
• Extended Version
• Tool Support
• Study replication in different ecosystems
Tuesday, June 7, 2011