Presentation is loading. Please wait.

Presentation is loading. Please wait.

Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 1 Exploring Core-Periphery Structures in Complex Software Products.

Similar presentations


Presentation on theme: "Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 1 Exploring Core-Periphery Structures in Complex Software Products."— Presentation transcript:

1 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 1 Exploring Core-Periphery Structures in Complex Software Products Carliss Baldwin (HBS) Alan MacCormack (MIT), John Rusnak (HBS) Drexel University Philadelphia, May 2009

2 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 2 Architecture and Intellectual Property Design for capturing/defending value, not for collaboration!

3 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 3 Slide 3 © Carliss Y. Baldwin 2008 Platform Component of a Java Server LaMantia et. al. (WICSA 2008) Used licensed- in code The license was about to expire Creating a classic holdup problem

4 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 4 Slide 4 © Carliss Y. Baldwin 2008 They created a “thin crossing point” between their code and the licensed code Before ModulariziationAfter Modulariziation Licensed Code No Depend- encies

5 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 5 Slide 5 © Carliss Y. Baldwin 2008 Thin crossing points Low transaction costs The presence/absence or propensity to have thin crossing points modular structure of the design

6 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 6 Conceptual Background Much academic work suggests that complex technical systems possess a “Core-Periphery” structure –Core = tightly-coupled components, central to system operation –Periphery = loosely-coupled components, optional/non-critical Little empirical work explores the extent to which such structures are observed in practice; or those factors which influence the size, nature and evolution of these structures Our Aim: Develop a system to reveal the Core-Periphery structure of real software systems; analyze large sample

7 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 7 The Intuition: Core-Periphery Structures

8 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 8 Distribution of Coupling Metrics Measures of Visibility have a Bi-Modal (or Multi-Modal) Distribution Number of Direct Dependencies has an Exponential Distribution

9 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 9 Defining the Core: The “Spectrum Plot”

10 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 10 A DSM in Core-Periphery (CP) View

11 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 11 Key Questions Do all systems have a Core-Periphery structure; can we predict those that do? How large is the Core; what factors predict whether the Core is large/small? Are Core Components located in close proximity or distributed about the system? What happens to the size of the Core over time; does it remain stable or grow?

12 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 12 Empirical Approach: Analysis of over 1,000 Software Systems using DSAS Darwin “MyBooks” (Disguised) Abiword Apache BDB Chrome Calc (Open Office) Ghostscript Gnucash Gnumeric Linux Mozilla MySQL Open AFS Open Office (All) Open Solaris PostGres Write (Open Office) XNU

13 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 13 Key Findings About 2/3rds of these systems have Core-Periphery structure –Remainder may have “No Core” or have “Multiple-Cores” Cannot always tell if a system is Core-Periphery from DSM –Direct dependencies is insufficient; Pattern of dependencies is key “Core” sizes vary significantly; from zero to thousands –Large variations, even for systems that “do the same thing” –Aligned with Open and Closed organizational choices (see Conway) Core Components are NOT collocated, tend to be distributed –Designers may be unaware which components are Core

14 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 14 2/3rds of Systems are Core-Periphery Put two clear examples of Core-Periphery systems here Notes: Biased sample; systems do change over time (e.g., Linux)

15 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 15 One small core, one larger (Linux 2.1.88 vs Mozilla; both 1500 files) 2/3rds of Systems are Core-Periphery

16 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 16 Some Systems are “Multi-Core”… Open Office Spectrum Plots — Note matching V- fan-ins and V-fan- outs

17 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 17 Open Office v1.0 Database Write word processor Calc spreadsheet Graphics system Presentations, charts, drawing

18 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 18 …with Modules that are Core-Periphery Open Office Calc Subsystem Architect’s View

19 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 19 …with Modules that are Core-Periphery Open Office Calc Subsystem Core-Periphery View

20 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 20 Open Office v1.0—Core-Periphery View Core-Periphery Analysis iterated on the Modules Calc and Write

21 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 21 Some Systems have no Core: Gnucash

22 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 22 This is NOT apparent from the DSM Implications for Code Architects!

23 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 23 Core Components are Distributed: Can be Difficult to Identify My Books— Core files distributed throughout the system

24 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 24 Systems of Similar Size can have very different Core sizes

25 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 25 Systems of Similar Size and Function often have very different Core sizes LinuxOpen Solaris The “Core”

26 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 26 Spectrum Comparisons LinuxOpen Solaris Note: Very Different Sizes!

27 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 27 Systems of Similar Size and Function often have very different Core sizes Gnucash (no Core) My Books (70% Core)

28 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 28 Core Sizes Evolve Differently: Sometimes they are Stable in Size

29 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 29 Core Sizes Evolve Differently: Sometimes they Grow at a Linear rate

30 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 30 The Challenge of an Increasing Core… The Core of Solaris

31 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 31 Core Sizes can Exhibit Discontinuities: E.g., The Evolution of Linux Q: Did IBM’s Major Code Contributions start in Linux 2.4.0?

32 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 32 Core Sizes can be Influenced— Mozilla before and after Redesign

33 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 33 Core sizes as a percent of system size 1275 total systems 248 have VBoth=0

34 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 34 Larger Open Source Systems Have Smaller Relative Core Sizes Open Solaris

35 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 35 Conclusions Developed a method to extract Core-Periphery structures from Software and analyzed over 1,000 Software Systems –2/3rds of these systems have a single Core –Some have no Core and others have Multi-Cores Difficult to tell from DSM if a system has zero, one or more Cores; difficult to tell which components are in the Core Core sizes: –Cross-section: Vary significantly - organization structure matters –Longitudinal: Evolve differently – can be influenced by redesigns

36 Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 36 Thank you all!


Download ppt "Exploring Core-Periphery Structures ©Alan MacCormack, John Rusnak, Carliss Baldwin 2009 1 Exploring Core-Periphery Structures in Complex Software Products."

Similar presentations


Ads by Google