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

Marco Glorie, Andy Zaidman, Arie van Deursen, Lennart Hofland. Splitting a large software repository for easing future software evolution - an industrial experience report. Journal of Software Maintenance, 21(2):113-141, 2009. [doi]

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.