Software Evolution

0.0(0)
studied byStudied by 1 person
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/58

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.

59 Terms

1
New cards

Evolution

Stage in a software system's life cycle where it is in operational use and is evolving as new requirements are proposed and implemented in the system

2
New cards

Servicing

Software remains useful but the only changes made are those required to keep it operational to reflect changes in the software's environment

3
New cards

Phase-Out

Software may still be used but no further changes are made to it

4
New cards

Change implementation

  • Iteration of the development process where the revisions to the system are designed, implemented and tested

  • Critical difference is that the first stage of change implementation may involve program understanding especially if the original system developers are not responsible for the change implementation

5
New cards

Program Understanding Phase

Understanding how the program is structured, how it delivers functionality, and how the proposed change might affect the program

6
New cards

Urgent Change Requests

  • If a serious system fault has to be repaired to allow normal operation to continue

  • If changes to the system's environment have unexpected effects

  • If there are business changes that require a very rapid response

7
New cards

Agile Methods

Based on incremental development so the transition from development to evolution is seamless

8
New cards

Evolution

Continuation of development process based on frequent system releases

9
New cards

Automated regression testing

valuable when changes are made to a system

10
New cards

Handover Problems

  • Where the development team have used an agile approach but the evolution team is unfamiliar with agile methods and prefer a plan-based approach

  • Where a plan-based approach has been used for development but the evolution team prefer to use agile methods

11
New cards

Program evolution dynamics

Study of processes of system change

12
New cards

Lehman's Laws

  • Generally applicable to large tailored systems developed by large organisations

  • describe a number of insights derived from long-term studies of system evolution.

13
New cards

Conservation of familiarity

-Over the lifetime of a system, incremental change in each release is approximately constant

14
New cards

Continuing growth

-Functionality offered by systems has to continually increase to maintain user satisfaction

15
New cards

Declining quality

-Quality of systems will decline unless they are modified to reflect changes in their operational environment

16
New cards

Feedback System

-Evolution processes incorporate multiagent, multiloop feedback systems and we have to treat them as feedback systems to achieve significant product improvement

17
New cards

Software development and Evolution

Integrated, iterative process that can be represented using a spiral model

18
New cards

Software maintenance

  • Modifies the program after being put into use

  • used for changing custom software

  • does not normally involve major changes to the system's architecture

  • Changes are implemented by modifying existing components and adding new components to the system.

19
New cards

Generic Software Products

Said to evolve to create new versions

20
New cards

Maintenance to repair software faults

Changing a system to correct deficiencies in the way meets its requirements

21
New cards

Maintenance to adapt software to a different operating environment

Changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation.

22
New cards

Maintenance to add to or modify the system’s functionality

Modifying the system to satisfy new requirements.

23
New cards
24
New cards

Maintenance Costs

  • Usually greater than development costs (2* to 100* depending on the application).

  • Affected by both technical and non-technical factors.

  • Increases as software is maintained.

  • Maintenance corrupts the software structure so makes further maintenance more difficult.

  • Ageing software can have high support costs

25
New cards

Team Stability

Maintenance costs are reduced if the same staff are involved with them for some time.

26
New cards

Contractual Responsibility

The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change

27
New cards

Staff Skills

Maintenance staff are often inexperienced and have limited domain knowledge.

28
New cards

Program age and structure

As programs age, their structure is degraded and they become harder to understand and change

29
New cards

Maintenance Prediction

concerned with assessing which parts of the system may cause problems and have high maintenance costs

30
New cards

Change Acceptance

depends on the maintainability of the components affected by the change

31
New cards

Implementing changes

degrades the system and reduces its maintainability

32
New cards

Maintenance Costs

depend on the number of changes and costs of change depend on maintainability.

33
New cards

Change prediction

  • requires and understanding of the relationships between a system and its environment.

  • Tightly coupled systems require changes whenever the environment is changed.

34
New cards

Factors influencing this are:

  • Number and complexity of system interfaces;

  • Number of inherently volatile system requirements;

  • The business processes where the system is used.

35
New cards

Complexity Metrics

  • Predictions of maintainability can be made by assessing the complexity of system components

  • Studies have shown that most maintenance effort is spent on a relatively small number of system components.

36
New cards

Complexity depends on:

  • Complexity of control structures;

  • Complexity of data structures;

  • Object, method (procedure) and module size.

37
New cards

Process Metrics

  • may be used to assess maintainability

  • Number of requests for corrective maintenance;

  • Average time required for impact analysis;

  • Average time taken to implement a change request;

  • Number of outstanding change requests

38
New cards

System re-engineering

  • Re-structuring or re-writing part or all of a legacy system without changing its functionality

  • Applicable where some but not all sub-systems of a larger system require frequent maintenance.

  • involves adding effort to make them easier to maintain. The system may be re-structured and re-documented.

39
New cards

Reduced Risk

high risk in new software development. There may be development problems, staffing problems and specification problems.

40
New cards

Reduced Cost

The cost of re-engineering is often significantly less than the costs of developing new software.

41
New cards

Source code translation

Convert code to a new language.

42
New cards

Reverse engineering

Analyse the program to understand it;

43
New cards

Program structure improvement

Restructure automatically for understandability;

44
New cards

Program modularisation

Reorganise the program structure;

45
New cards

Data reengineering

Clean-up and restructure system data.

46
New cards

Cost factors

  • The quality of the software to be reengineered.

  • The tool support available for reengineering.

  • The extent of the data conversion which is required.

  • The availability of expert staff for reengineering

47
New cards

Data Clumping

  • occur when the same group of data items (fields in classes, parameters in methods) re-occur in several places in a program.

  • These can often be replaced with an object that encapsulates all of the data.

48
New cards

Speculative Generality

occurs when developers include generality in a program in case it is required in the future. This can often simply be removed

49
New cards

Low Quality, Low Business Value

These systems should be scrapped.

50
New cards

Low-quality, high-business value

make an important business contribution but are expensive to maintain. Should be re-engineered or replaced if a suitable system is available

51
New cards

High-quality, low-business value

Replace with COTS, scrap completely or maintain.

52
New cards

High-quality, high business value

Continue in operation using normal system maintenance.

53
New cards

Use of system

If systems are only used occasionally or by a small number of people, they may have a low business value.

54
New cards

Business processes that are supported

A system may have a low business value if it forces the use of inefficient business processes.

55
New cards

System dependability

If a system is not dependable and the problems directly affect business customers, the system has a low business value.

56
New cards

System Outputs

If the business depends on system outputs, then the system has a high business value.

57
New cards

Business Process Assessment

  • How well does the business process support the current goals of the business?

  • Use a viewpoint-oriented approach and seek answers from system stakeholders

58
New cards

Environment Assessment

How effective is the system’s environment and how expensive is it to maintain?

59
New cards

Application Assessment

What is the quality of the application software system?