What are the fundamental activities for software evolution process?
– Change analysis
– Release planning
– System implementation
– System release
What does software maintenance mean?
The process of changing a system after it has been delivered and is in use is called software maintenance.
1/11
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What are the fundamental activities for software evolution process?
– Change analysis
– Release planning
– System implementation
– System release
What does software maintenance mean?
The process of changing a system after it has been delivered and is in use is called software maintenance.
What are the types of software maintenance?
Corrective maintenance that concerns with fixing reported errors in the software.
Adaptive maintenance that requires changing the software to some new environment such as a different hardware platform or for use with a different operating system
Perfective maintenance involves implementing new functional or non-functional system requirements. These are generated by software customers as their organization or business changes
What are the factors affecting maintenance cost?
Module independence - If the modules are independent, you can change a part of the program without having to worry it may affect other parts
Programming language - if the program is written using an easy to read language, the changing process will be easy
Programming style - Try to write an understandable style because it leads to easier change
What is software re-engineering?
Software re-engineering is concerned with taking existing legacy systems and re-implementing them to make them more maintainable.
What are the main objectives of system-reengineering?
improve the system structure
create new system documentations
make it easier to understand.
What are the software re-engineering process?
Source Code Translation - The simplest form of software re-engineering is program translation where source code in one programming language is translated to source code in some other language
Reverse Engineering - Reverse engineering is the process of deriving a system's design and specification from its source code.
Program Structure Improvement - The control structure of the program is analysed and modified
Program Modularization - Related parts of the program are grouped together and redundancy is removed.
Data re-engineering - Convert old data structure into new structure to ensure all the data values are stored consistently
What are the problems with data before re-engieering?
Data naming problems - Names are hard to understand
Field length problems - Same item may be assigned different length in different programs
No data dictionary
Problems with data value inconsistencies before re-engineering
Inconsistent default value - Different program assign different default value to the same logical data item.
Inconsistent validation rules - Data written by one program may be rejected by another
Inconsistent handling of negative values - Some programs do not accept –ve value, some programs accept & convert to +ve value.
What are the factors that determine the cost of re-engineering?
the quality of the software to be re-engineered
the tool support available for re-engineering
the availability of expert staff
What are the advantages and disadvantages of reengineering?
Advantages of re-engineering
– reduced risk
– reduced cost
– reduced effort
Disadvantages of Reengineering
• Practical limits - not everything can be reengineered
• Tools support - need automatic tools like CASE
• Knowledge engineers - need ppl who can understand or worked on its development before
What are the strategies for evolving legacy system?
Scrap the system completely
Leave the system unchanged and continue with regular maintenance
Re-engineer the system to improve it maintainability
Replace all or part of the system with a new system