Please enable JavaScript.
Coggle requires JavaScript to display documents.
4.0 Techniques for maintenance - Coggle Diagram
4.0 Techniques for maintenance
Legacy Systems
2.120 billion lines of source code in existence
(Programming language - COBOL, FORTRAN)
Legacy systems are critical to the operation of organization
Old systems that must be maintained
Maintenance problem is compounded because legacy systems are not simply a single problem.
4.1 Program Comprehension
Programmers spend considerable time reading and understanding programs to implement changes
Code browsers - key tools for program comprehension
Documentation (clear and concise)
4.2 Re-engineering
Software re-engineering is concerned with taking legacy systems and re-implementing them to make them more maintainable.
The system may be re-documented or restructured.
It may be translated to a more modern programming language, implemented on a distributed platform rather than a mainframe
Hammer (1990) claimed that re-engineering is concerned with redesigning business processes to reduce the number of activities and improve process efficiency.
Objective:
produce new, more maintainable system
The organization depends on that system and the system is regularly maintained
Re-engineering improves the system structure, creates new system documentation and
makes it easier to understand.
The principal factors which affect re-engineering costs are:
The quality of software to be re-engineered
The tool support available for re-engineering
The extent of data conversion required.
The availability of expert staff.
As well as maintenance cost reduction, the morale of the maintenance staff may be
improved – higher quality system
The alternative to re-engineering – redevelop that system using modern software
engineering techniques.
The structure are very bad and the costs for these systems likely to be high.
Forward engineering vs software
reengineering
Forward engineering
System specification
Design and implementation
New System
Software re-engineering
Exciting Software System
Understanding and transformation
Re-engineered System
4.3 Reverse Engineering
The process of analyzing software to identify the software’s components and their interrelationships and to create representations of the software in another form or at higher
levels of abstraction.
“Passive” (not change the software/result in new software)
But produce call graphs and control flow graphs from source code such as documentation and design recovery.
Data reverse engineering (logical schemas)- recovered from database
Process of analysing software with the objective of recovering design and specification.
Software source code acts as the input to the reverse engineering process.
Design and specification are recovered to help understand a program before reorganizing its structure.
4.4 Migration
Definition
: The practice of transferring data, accounts and functionality from one operating environment to another.
Software’s life may have to be modified to run in different
environment.
To migrate it to a new environment, the maintainers needs to
determine the actions needed to accomplish the migration
The migration plan should cover :
i. Migration requirements
ii. Migration tools
iii. Conversion of product and data
iv. Execution
v. Verification
vi. Support
Migrating software can also entail a number of additional activities such as
Notification of intent
Parallel operations
Notification of completion
Postoperation review
Data archival
4.5 Retirement
Software reached the end of its useful life- retired
It should be included in the retirement plan (requirements, impact, replacement, schedule and effort.
Accessibility of archive copies is very important.
It also entails a number of activities similar to migration.