Decoupling Source Trees Into Build-LevelComponents
Stc
ComputingScienceColloquium
Date: April 1
Time: 11:00
Room: Unnik Room 311
Title: Decoupling Source Trees into Build-Level Components (slides in pdf)
Abstract
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 it suitable
for reuse. Consequently, software may not come available for reuse at all,
or only in rather large chunks of functionality, which may introduce
additional software dependencies.
In this talk I'll propose to improve this situation by applying
component-based software engineering (CBSE) principles to the build level. I'll
first show how existing software systems break CBSE principles. Then I'll introduce
the notion of build-level components, and define rules for developing such
components. To make these techniques feasible, a reengineering
process is proposed for semi-automatically transforming existing software systems into
build-level components. The techniques are demonstrated in a case study where
the source tree of Graphviz is decoupled into 47 build-level components.