Authors:
Andreas Fürnweger
;
Martin Auer
and
Stefan Biffl
Affiliation:
Vienna University of Technology, Austria
Keyword(s):
Software Evolution, Migration, Legacy Systems.
Related
Ontology
Subjects/Areas/Topics:
Enterprise Information Systems
;
Information Systems Analysis and Specification
;
Software Engineering
;
Tools, Techniques and Methodologies for System Development
Abstract:
Software ages. It does so in relation to surrounding software components: as those are updated and modernized,
static software becomes evermore outdated relative to them. Such legacy systems are either tried to be
kept alive, or they are updated themselves, e.g., by re-factoring or porting—they evolve. Both approaches carry
risks as well as maintenance cost profiles. In this paper, we give an overview of software evolution types and
drivers; we outline costs and benefits of various evolution approaches; and we present tools and frameworks
to facilitate so-called “soft” migration approaches. Finally, we describe a case study of an actual platform
migration, along with pitfalls and lessons learned. This paper thus aims to give software practitioners—both
resource-allocating managers and choice-weighing engineers—a general framework with which to tackle software
evolution and a specific evolution case study in a frequently-encountered Java-based setup.