Assignment 9
Assignment 9
9.1 Explain how advances in technology can force a software subsystem to undergo change or
run the risk of becoming useless.
If software is not updated, it may become outdated due to technological advances. New
hardware, such as faster computers or operating systems may not be compatible with older
programs. Security vulnerabilities evolve, necessitating updates to keep software secure. If a
software subsystem does not adapt to work with new technology (increase its performance, or
meet modern standards) it may become inefficient because it fails to satisfy current needs and
expectations.
9.4 Some software subsystems are seen as “low quality, high business value.” Discuss how
those subsystems can be re-engineered with minimal impact on the operations of the
organization.
It is vital to begin by addressing the biggest problems first and incrementally improving
the system rather than rebuilding it entirely at once. Running a new version enables for
extensive testing of each modification to guarantee proper functionality. This strategy allows the
system to continue working during the improvement process, lowering the likelihood of serious
issues of downtime.
9.5 What are the strategic options for legacy system evolution? When would you normally
replace all or part of a system rather than continue maintenance of the software?
Continued maintenance, incremental improvements of the system, and complete
replacement are all strategic alternatives for modernizing a legacy system. Maintenance is
typically chosen when the system still fulfills business requirements but needs minor changes.
Gradual changes, or “refactoring” are performed when elements of the system require
improvement without complete redesign. If the program no longer meets the current company’s
goal, is too costly to maintain or has security problems, it is advisable to replace it entirely.
9.8 Briefly describe the three main types of software maintenance. Why is it sometimes difficult
to distinguish between them?
Corrective, adaptive and perfective software maintenance are the three primary
categories. Corrective maintenance repairs software faults and bugs. Updating the program to
accommodate changes in the environment, such as new hardware or operating systems is
known as adaptive maintenance. The goal of perfective maintenance is to enhance the
functionality of the program or add new features in response to user input. Because various
types of modification frequently overlap, it can be challenging to distinguish between them.