Download presentation
Presentation is loading. Please wait.
Published byHoratio Jackson Modified over 9 years ago
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!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.