Splitting a large software repository for easing future software evolution—an industrial experience report

  • Authors:
  • Marco Glorie;Andy Zaidman;Arie van Deursen;Lennart Hofland

  • Affiliations:
  • Philips Medical Systems, The Netherlands;Delft University of Technology, The Netherlands;Delft University of Technology, The Netherlands;Philips Medical Systems, The Netherlands

  • Venue:
  • Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

Philips Medical Systems produces medical diagnostic imaging products, such as magnetic resonance, X-ray and computed tomography systems. The software of these devices is complex, has been evolving for several decades and is currently a multi-MLOC monolithic software repository. In this paper we report on splitting a single software repository into multiple smaller repositories so that these can be developed independently, easing the software's evolution. For splitting the single software repository, we set up two experiments that involve well-known analysis techniques, namely formal concept analysis and clustering. Because of the sheer size of the monolithic software repository, we also propose to use a ‘leveled approach’, which implies that the analysis technique is applied in several iterations, whereby in some iterations only part of the application is subjected to the analysis technique. Unfortunately, both analysis techniques failed to produce an acceptable partitioning of the monolithic software repository, even if they are combined with our newly proposed leveled approach. We provide a number of valuable lessons learned, which might prevent others from falling into the same pitfalls. Copyright © 2009 John Wiley & Sons, Ltd. This extends our previous work which can be found in [1].