Legacy Software
{tocify}
$title= {Table of Contents}
Legacy software systems
Legacy software were developed decades ago
and have been continually modified to meet changes in business requirements and
computing platform. The proliferation of such systems in causing headaches for
large organizations who find them costly to maintain and risky to evolve.
Liu and his colleagues extend this
description by nothing that “many legacy systems remain supportive to core
business functions and are ’indispensable’ to the business.” Hence, legacy
software is characterized by longevity and business critically.
What do I do if I encounter a legacy
system that exhibits poor quality?
Unfortunately, there is sometimes one
additional characteristic that is present in legacy software—poor quality.
Legacy systems sometimes have inextensible designs, convoluted code, poor or
nonexistent documentation, test cases and results that were never archived, a poorly managed change
history—the list can be quite long. And yet, these systems support “core
business functions and are indispensable to the business.” What to do?
What types of changes are made to legacy
systems?
The only reasonable answer may be: Do
nothing, at least until the legacy system must undergo some significant change.
If the legacy software meets then needs of its users and runs reliably, it
isn’t broken and does not need to be fixed. However, as time passes, legacy
systems often evolve for one or more of the following reasons:
- The software must be adapted to
meet the needs of new computing environments or technology.
- The software must be enhanced to implement new
business requirements.
- The software must be extended to make it interoperable with other more modern systems or databases.
- · The software must be re-architected to make it viable within a evolving computing environment.
Every software engineer must recognize
that change is natural don’t try to light it
When these modes of evolution occur, a
legacy system must be reengineered so that it remains viable into the future.
The goal of modern software engineering is to “devise methodologies that are
founded on the notion of evolution;” that is, the notion that software systems
continually change, new software systems are built from the old ones, and . . .
all must interoperate and cooperate with each other.”