Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Software maintenance
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Alternatives to maintenance== In software engineering, the term [[legacy system]] does not have a fixed meaning, but often refers to older systems which are large, difficult to modify, and also necessary for current business needs. Often legacy systems are written in obsolete [[programming language]]s, lack documentation, have a deteriorating structure after years of changes, and depend on experts to keep it operational.{{sfn|Tripathy |Naik|2014|pp=187-188}} When dealing with these systems, at some point so much technical debt accumulates that maintenance is not practical or economical.{{sfn|Tripathy |Naik|2014|p=89}} Other choices include: *Freezing—do no more work on the legacy system.{{sfn|Tripathy |Naik|2014|p=188}} This option may be chosen if the vendor wants to continue to extract revenue as long as possible while avoiding maintenance costs.{{sfn|Tripathy |Naik|2014|p=89}} *[[Outsourcing]] functionality of the legacy system to a different company, especially if it is not considered a core business function.{{sfn|Tripathy |Naik|2014|p=188}} *Discarding the existing legacy system and redeveloping a new application from scratch to fulfill the same purpose as the legacy system.{{sfn|Tripathy |Naik|2014|p=188}} However, this approach is inefficient due to discarding a working system, and with this approach there is a danger that the new system will not fulfill changing business requirements.{{sfn|Tripathy |Naik|2014|p=188}} *Wrapping the legacy application in an [[abstraction layer]] to simplify outdated interfaces.{{sfn|Tripathy |Naik|2014|p=188}} The source code is not modified but the new interface allows a tried and tested component to be accessed by newer applications. This approach does not fix any of the issues with maintaining a legacy system.{{sfn|Tripathy |Naik|2014|p=189}} Databases, functions, and entire applications may be wrapped in this way.{{sfn|Tripathy |Naik|2014|p=191}} *Migrating the legacy system to a new platform, which can reduce the expense of new software development by reusing the implementation, design, specification, and requirements of the legacy system.{{sfn|Tripathy |Naik|2014|pp=188-189}} Migration can take 5 to 10 years, but results in greater flexibility and long-term savings in software maintenance.{{sfn|Tripathy |Naik|2014|p=195}} As much as 80 percent of the expense is in testing; that is, ensuring that the new system has the same output as the old system.{{sfn|Tripathy |Naik|2014|p=196}} After the new system is finished, there needs to be a transition from the old system to the new system with minimum disruption to business functions.{{sfn|Tripathy |Naik|2014|p=196}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)