I
,NF3705 Assignment 2 (COM
Question 1: How Advances in Technology Can Force a Software
Subsystem to Undergo Change or Risk Becoming Useless
Introduction
Technology evolves rapidly, and software systems must adapt to
these changes to remain functional and relevant.
Reasons Advances Force Software Changes
Hardware Changes: New hardware architectures (e.g.,
multi-core processors, GPUs) require software subsystems
to be optimized or redesigned for performance
improvements.
Operating System Upgrades: Updates or changes in the OS
can deprecate APIs or change system behavior, forcing
software to adapt.
New Standards and Protocols: Introduction of new
communication protocols, data formats, or security
standards require software to support them to maintain
interoperability.
User Expectations and Features: Advances like cloud
computing, mobile platforms, or AI require software to
integrate new features or interfaces.
, Security Requirements: Emerging security threats drive
the need to update software subsystems to protect against
vulnerabilities.
Integration with Other Systems: As other systems evolve,
software subsystems must change to interface correctly
with updated services or databases.
Risk of Becoming Useless
If software subsystems do not evolve:
They may become incompatible with new hardware or OS.
They may fail to meet user needs or security standards.
They may lose performance efficiency compared to
modern alternatives.
They can become obsolete, replaced by newer solutions.
Question 2: Strategic Options for Legacy System Evolution and
When to Replace Rather Than Maintain
Strategic Options for Legacy System Evolution
1. Re-engineering (Code Refactoring):
o Restructure or improve existing code without
changing functionality.
2. Re-hosting (Lift and Shift):
,NF3705 Assignment 2 (COM
Question 1: How Advances in Technology Can Force a Software
Subsystem to Undergo Change or Risk Becoming Useless
Introduction
Technology evolves rapidly, and software systems must adapt to
these changes to remain functional and relevant.
Reasons Advances Force Software Changes
Hardware Changes: New hardware architectures (e.g.,
multi-core processors, GPUs) require software subsystems
to be optimized or redesigned for performance
improvements.
Operating System Upgrades: Updates or changes in the OS
can deprecate APIs or change system behavior, forcing
software to adapt.
New Standards and Protocols: Introduction of new
communication protocols, data formats, or security
standards require software to support them to maintain
interoperability.
User Expectations and Features: Advances like cloud
computing, mobile platforms, or AI require software to
integrate new features or interfaces.
, Security Requirements: Emerging security threats drive
the need to update software subsystems to protect against
vulnerabilities.
Integration with Other Systems: As other systems evolve,
software subsystems must change to interface correctly
with updated services or databases.
Risk of Becoming Useless
If software subsystems do not evolve:
They may become incompatible with new hardware or OS.
They may fail to meet user needs or security standards.
They may lose performance efficiency compared to
modern alternatives.
They can become obsolete, replaced by newer solutions.
Question 2: Strategic Options for Legacy System Evolution and
When to Replace Rather Than Maintain
Strategic Options for Legacy System Evolution
1. Re-engineering (Code Refactoring):
o Restructure or improve existing code without
changing functionality.
2. Re-hosting (Lift and Shift):