IEEE Transactions on Software Engineering
Identifying and Improving Reusability Based on Coupling Patterns
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
Users and developers: an agent-based simulation of open source software evolution
SPW/ProSim'06 Proceedings of the 2006 international conference on Software Process Simulation and Modeling
Review code evolution history in OSS universe
Proceedings of the Fourth Asia-Pacific Symposium on Internetware
Hi-index | 0.00 |
Predicting when and how a software system will evolve is one of the most fascinating challenges of software engineering. No matter what approach one is using to study such evolution, empirical studies, including observations of systems used in the real world, and of their processes, are needed in order to define correlations, find recurring patterns, and eventually predict how systems are likely to evolve. In the empirical study presented in this paper, we take 25 software systems released as Open Source, and observe their evolution. Our focus is not only on how much systems grow in size, but rather on how code structure is adapted and gets modified over time and releases. The goal here is to recognize recurring patterns and practices used in evolving long-lived real world software systems. In our study we find three dominant patterns of code structure evolution of Open Source systems: horizontal expansion, vertical expansion, vertical shrinkag,. By detailed studied of exemplars of these three patterns one can identify under which conditions a particular pattern is more likely to prevail than the others.