Practical perspectives on software architectures, high-level design, and evolution

  • Authors:
  • Tommi Mikkonen;Peeter Pruuden

  • Affiliations:
  • Tampere University of Technology, FIN-33101 Tampere, Finland;Nokia Networks FIN-33101 Tampere, Finland

  • Venue:
  • IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Evolving software gets more complex in each increment. As real-life increments tend to be additive rather than upgrades with more fundamental purpose, the underlying code base keeps extending. With such increments, the associated core architecture of the system gets more and more difficult to modify, because an increasing number of functions are attached to it. Therefore, only the first versions of systems can be properly architected, whereas later versions rely on an already existing architecture into which new features are reflected as change requests. Due to this reason, architecture and high-level design in the scope of evolved software systems becomes primarily impact analysis and reengineering, and only secondarily design of new software artifacts, especially when considering large systems that have a long history. Every now and then, however, it may be possible to upgrade very core structures of a system, resulting in a new generation of the system. Understanding of these basic phenomena gives rise to practices that compensate the increase of complexity of software during software evolution.