* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Download Introduction to System Maintenance
Survey
Document related concepts
Transcript
Software Maintenance • The process of changing the system after it has been delivered and in operation • Software change is inevitable – New requirements emerge – The business environment changes – Errors must be repaired – New equipment must be accommodated – The performance or reliability may have to be improved 1 Types of maintenance • Maintenance to repair software faults (Corrective) – Changing a system to correct deficiencies in the way meets its requirements • Maintenance to adapt software to a different operating environment (Adaptive) – Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation • Maintenance to add to or modify the system’s functionality (Perfective) – Modifying the system to satisfy new requirements 2 Legacy systems • Older software systems that remain vital to an organisation • Many software systems that are still in use were developed many years ago using technologies that are now obsolete • These systems are still business critical that is, they are essential for the normal functioning of the business 3 Legacy system change • Systems must change in order to remain useful • However, changing legacy systems is often expensive – Different parts implemented by different teams so no consistent programming style – The system may use an obsolete programming language – The system documentation is often out-of-date – The system structure may be corrupted by many years of maintenance • It is expensive and risky to replace the legacy system • It is expensive to maintain the legacy system 4 Software re-engineering • Reorganising and modifying existing software systems to make them more maintainable • Re-structuring or re-writing part or all of a legacy system without changing its functionality • The system may be re-structured and re-documented • Advantages – Reduced risk • There is a high risk in new software development. – Reduced cost • The cost of re-engineering is often significantly less than the costs of developing new software 5 Forward engineering and reengineering System specification Design and implementation Ne w system Understanding and transformation Re-engineered system Forward engineering Existing software system Software re-engineering 6 The re-engineering process Program documentation Original program Modularised program Original data Reverse engineering Program modularisation Source code translation Data reengineering Program structure improvement Structured program Reengineered data 7 Source code translation • Involves converting the code from old programming language (or language version) to another e.g. FORTRAN to C • May be necessary because of: – Hardware platform update – Staff skill shortages – Organisational policy changes • Only realistic if an automatic translator is available 8 Reverse engineering • Analysing software to understanding its design and specification • The program is unchanged • Program understanding tools may be used in this process • The output is documents showing: – Program structure diagrams – Data structure diagrams – Traceability matrices (where system entities are defined and referenced) 9 Program structure improvement • The control structures of the program is analysed to make it easier to read and understand • Maintenance tends to corrupt the structure of a program. – The program may be automatically restructured to remove unconditional branches – Conditions may be simplified to make them more readable 10 Program modularisation • The process of re-organising a program so that related program parts are collected together in a single module – Redundancy is removed – Simplify interfaces • Usually a manual process that is carried out by program inspection and reorganisation 11 Data re-engineering • Involves analysing and reorganising the data structures (and sometimes the data values) in a program to match new changes • May be part of the process of migrating from a filebased system to a DBMS-based system or changing from one DBMS to another • Data re-engineering approaches – Data cleanup: duplicate removal, formats improved – Data extension: increase fields length, storage capacity – Data migration: move data to different storage 12 Re-engineering approaches Automated progr am restructuring Automated source code conversion Program and data restructuring Automated r estructuring with manual changes Restructuring plus architectural changes Increased cost • Disadvantage of re-engineering is the limited program improvement possible 13