4.0 Techniques for maintenance - Coggle Diagram
4.0 Techniques for maintenance
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)
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.
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
The structure are very bad and the costs for these systems likely to be high.
Forward engineering vs software
Design and implementation
Exciting Software System
Understanding and transformation
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.
: 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
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
Migrating software can also entail a number of additional activities such as
Notification of intent
Notification of completion
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.