* Your assessment is very important for improving the workof 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