文档详情

Abstract Architecture Analysis and Repair of Open Source Software.pdf

发布:2017-04-12约4.34万字共10页下载文档
文本预览下载声明
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 e ects 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
显示全部
相似文档