Paper Decoupling Source Trees Into Build Level Components

Merijn
This paper is available in ps and pdf.

Reuse between software systems is often not optimal. An important reason is that while at the functional level well-known modularization principles are applied for structuring functionality in modules, this is not the case at the build level for structuring files in directories. This leads to a situation where files are entangled in directory hierarchies and build processes, making it hard to extract functionality and to make functionality suitable for reuse. Consequently, software may not come available for reuse at all, or only in rather large chunks of functionality, which may lead to extra software dependencies.

In this paper we propose to improve this situation by applying component-based software engineering (CBSE) principles to the build level. We discuss how existing software systems break CBSE principles, we introduce the notion of build-level components, and we define rules for developing such components. To make our techniques feasible, we define a reengineering process for semi-automatically transforming existing software systems into build-level components. Our techniques are demonstrated in a case study where we decouple the source tree of Graphviz into 47 build-level components.

Presentations

BibTeX Entry

@InProceedings{deJonge2004,
  author    = "de Jonge, M.",
  title     = "Decoupling Source Trees into Build-Level Components",
  booktitle = "Proceedings: Eighth International Conference on Software Reuse",
  editor    = "J. Bosch and C. Krueger",
  year      = 2004,
  month     = jul,
  series    = {LNCS},
  publisher = "Springer-Verlag",
  volume    = 3107,
  pages     = "215--231"
}


-- MerijnDeJonge - 05 Apr 2004