Abstract Architecture Analysis and Repair of Open Source Software.pdf
文本预览下载声明
Architecture Analysis and Repair of Open Source Software
John B. Tran, Michael W. Godfrey, Eric H. S. Lee, and Richard C. Holt
Dept. of Computer Science
University of Waterloo
Waterloo, ON, Canada
fj3tran, migod, ehslee, holtg@plg.uwaterloo.ca
Abstract
As a software system evolves, its architecture will drift. Sys-
tem changes are often done without considering their eects
on the system structure. Consequently, the concrete (as-built)
architecture becomes convoluted over time making continuing
development and maintenance activities increasingly dicult
and highly error prone. This problem of architectural drift
is especially pronounced in open source systems, where many
developers may work in isolation on distinct features with lit-
tle co-ordination. In this paper, we present our experiences
with analyzing and repairing the architectures of two large
open source systems: the Linux operating system kernel and
the VIM text editor. For both systems, we were successful in
removing many structural anomalies from their architectures.
1 Introduction
Useful software systems must evolve or they risk becoming
obsolete [13]. A system changes because it needs to satisfy
user demands and keep up with changing technology. A soft-
ware system that cannot adapt quickly may lose market share
to competitors. Unfortunately, as a system evolves, its con-
crete (as-built) architecture tends to drift from its conceptual
(as-designed) architecture. This gap between the conceptual
and the concrete architecture hinders program understanding
and leads to development and maintenance activities that are
increasingly dicult and highly error prone.
Software developed under the open source concept [4] is es-
pecially susceptible to architectural drift. Open source soft-
ware (OSS) development is highly collaborative, but because
it is also usually highly distributed in nature, co-ordinating
the development and managing the design of an OSS system
can be very dicult. Most developers are involv
显示全部