Page 302 -
P. 302
10.5 System operation 285
Legacy systems
Legacy systems are sociotechnical computer-based systems that have been developed in the past, often using
older or obsolete technology. These systems include not only hardware and software but also legacy processes
and procedures—old ways of doing things that are difficult to change because they rely on legacy software.
Changes to one part of the system inevitably involve changes to other components. Legacy systems are often
business-critical systems. They are maintained because it is too risky to replace them.
http://www.SoftwareEngineering-9.com/LegacySys/
System evolution, like software evolution (discussed in Chapter 9), is inherently
costly for several reasons:
1. Proposed changes have to be analyzed very carefully from a business and a tech-
nical perspective. Changes have to contribute to the goals of the system and
should not simply be technically motivated.
2. Because subsystems are never completely independent, changes to one subsys-
tem may adversely affect the performance or behavior of other subsystems.
Consequent changes to these subsystems may therefore be needed.
3. The reasons for original design decisions are often unrecorded. Those responsi-
ble for the system evolution have to work out why particular design decisions
were made.
4. As systems age, their structure typically becomes corrupted by change so the
costs of making further changes increases.
Systems that have evolved over time are often reliant on obsolete hardware and soft-
ware technology. If they have a critical role in an organization, they are known as
‘legacy systems’. These are usually systems that the organization would like to
replace but don’t do so as the risks or costs of replacement cannot be justified.
From a dependability and security perspective, changes to a system are often a
source of problems and vulnerabilities. If the people implementing the change are dif-
ferent from those who developed the system, they may be unaware that a design deci-
sion was made for dependability and security reasons. Therefore, they may change the
system and lose some safeguards that were deliberately implemented when the system
was built. Furthermore, as testing is so expensive, complete retesting may be impossi-
ble after every system change. Adverse side effects of changes that introduce or
expose faults in other system components may not then be discovered.