Chapter 10 Software Evolution

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Get a hint
Hint

What are the fundamental activities for software evolution process?

Get a hint
Hint

– Change analysis

– Release planning

– System implementation

– System release

Get a hint
Hint

What does software maintenance mean?

Get a hint
Hint

The process of changing a system after it has been delivered and is in use is called software maintenance.

Card Sorting

1/11

Anonymous user
Anonymous user
encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

12 Terms

1
New cards

What are the fundamental activities for software evolution process?

– Change analysis

– Release planning

– System implementation

– System release

2
New cards

What does software maintenance mean?

The process of changing a system after it has been delivered and is in use is called software maintenance.

3
New cards

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

4
New cards

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

5
New cards

What is software re-engineering?

Software re-engineering is concerned with taking existing legacy systems and re-implementing them to make them more maintainable.

6
New cards

What are the main objectives of system-reengineering?

  • improve the system structure

  • create new system documentations

  • make it easier to understand.

7
New cards

What are the software re-engineering process?

  1. 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

  2. Reverse Engineering - Reverse engineering is the process of deriving a system's design and specification from its source code.

  3. Program Structure Improvement - The control structure of the program is analysed and modified

  4. Program Modularization - Related parts of the program are grouped together and redundancy is removed.

  5. Data re-engineering - Convert old data structure into new structure to ensure all the data values are stored consistently

8
New cards

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

9
New cards

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.

10
New cards

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

11
New cards

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

12
New cards

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