Patterns of component evolution

  • Authors:
  • Rajesh Vasa;Markus Lumpe;Jean-Guy Schneider

  • Affiliations:
  • Faculty of Information & Communication Technologies, Swinburne University of Technology, Hawthorn, VIC, Australia;Department of Computer Science, Iowa State University, Ames, IA;Faculty of Information & Communication Technologies, Swinburne University of Technology, Hawthorn, VIC, Australia

  • Venue:
  • SC'07 Proceedings of the 6th international conference on Software composition
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Contemporary software systems are composed of many components, which, in general, undergo phased and incremental development. In order to facilitate the corresponding construction process, it is important that the development team in charge has a good understanding of how individual software components typically evolve. Furthermore, software engineers need to be able to recognize abnormal patterns of growth with respect to size, structure, and complexity of the components and the resulting composite. Only if a development team understands the processes that underpin the evolution of software systems, will they be able to make better development choices. In this paper, we analyze recurring structural and evolutionary patterns that we have observed in public-domain software systems built using object-oriented programming languages. Based on our analysis, we discuss common growth patterns found in present-day component-based software systems and illustrate simple means to aid developers in achieving a better understanding of those patterns. As a consequence, we hope to raise the awareness level in the community on how component-based software systems tend to naturally evolve.