CH 9 Software Evolution

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

1/23

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.

24 Terms

1
New cards

Evolution

The stage in a software system’s life cycle where it is in operational use and is evolving as new requirements are proposed and implemented

2
New cards

Servicing

At this stage, the software remains useful but the only changes made are those required to keep it operational (bug fixes etc), no new functionality is added

3
New cards

Phase-out and Retirement

The software may still be used but no further changes are made to it (have to ‘live with’ any problems)

eventually, the software (and the system it runs on) is taken out of service

<p>The software may still be used but no further changes are made to it (have to ‘live with’ any problems)</p><p>eventually, the software (and the system it runs on) is taken out of service</p>
4
New cards

Evolution Processes

processes depend on

  • type of software being maintained

  • the development processes used

  • the skills and exp of ppl involved

proposals for change are driver for system evolution

5
New cards

Change Identification and Evolution

depending on organization, the change request process may be informal or formal

<p>depending on organization, the change request process may be informal or formal</p>
6
New cards

General Model of Software Evolution Process

documentation should be updated

new requirements added, analyzed, and validated

<p>documentation should be updated</p><p>new requirements added, analyzed, and validated</p>
7
New cards

Change Implentation

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

critical difference: 1st stage of change imp may involve program understanding, especially if the original system developers are not responsible for the change implementation

<p>iteration of the development process where the revisions to the system are designed, implemented, and tested</p><p>critical difference: 1st stage of change imp may involve program understanding, especially if the original system developers are not responsible for the change implementation</p>
8
New cards

Urgent Change Request

urgent changes may have been implemented without going through all the stages of the software engineering process

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

<p>urgent changes may have been implemented without going through all the stages of the software engineering process</p><p>if a serious system fault has to be repaired to allow normal operation to continue</p>
9
New cards

Legacy Systems (LS)

older systems that rely on languages and tech that are no longer used for new systems development

replacing LS is expensive and risky

<p>older systems that rely on languages and tech that are no longer used for new systems development</p><p>replacing LS is expensive and risky</p>
10
New cards

Legacy Systems Assessment Categories

Low-quality, high-business value: should be re-engineering or replaced is suitable system is available

Low-quality, low-business value: should be scrapped

High-quality, low-business value: replace with COTS, scrap completely or maintain

High-quality, high-business value: continue in operation using normal system maintenance

11
New cards

Assessing Business Value

The use of the system: lower use = low business value

the business processes that are supported: LBV if it forces the use of inefficient business processes

system dependability: if not dependable and directly affects customers, LBV

the system outputs: if depends on system outputs, then the system had HBV

12
New cards

Environmental Assessment Factors

supplier stability, failure rate, age, performance, support requirements, maintenance costs, interoperability

13
New cards

Application Assessment Factors

understandability, documentation, data, performance, programming language, configuration management, test data, personnel skills

14
New cards

System Measurement

number of system change requests: higher value = lower sys quality

number of different user interfaces used by system: more interfaces = more inconsistencies and redundancies

volume of data used by the system: as the volume of data processed by the system increases, so too do the inconsistencies and errors in that data

cleaning up old data is a very expensive and time consuming process

15
New cards

Types of Maintenance

to repair SW faults, to adapt SW to a different operating environment, to add or to modify the system’s functionality

16
New cards

Maintenance Cost Factors

team stability, contractual responsibility, staff skills, program age and structure

17
New cards

Maintenance Costs

it is usually more expensive to add new features to a system during maintenance than it is to add the same features during development

18
New cards

Maintenance Prediction

assess which parts of the system may cause problems and have higher maintenance costs

costs depend on maintainability and number of changes

<p>assess which parts of the system may cause problems and have higher maintenance costs</p><p>costs depend on maintainability and number of changes</p>
19
New cards

Change Prediction

predicting the number of changes requires an understanding of relationships between system and its environment

factors include number and complexity of sys interfaces, number of inherently volatile sys req, business processes where system is used

20
New cards

Process Metrics

process measurements may be used to assess maintainability

  • number of requests for corrective maintenance

  • average time req for impact analysis

  • average time taken to implement a change request

  • number of outstanding change requests

if any of these increase, there may be a decline in maintainability

21
New cards

SW Re-engineering

restructuring or rewriting part or all of a legacy system without changing its functionality

takes place after a system has been maintained for some time and maintenance costs are increasing

pros: reduced risk and cost

<p>restructuring or rewriting part or all of a legacy system without changing its functionality</p><p>takes place after a system has been maintained for some time and maintenance costs are increasing</p><p>pros: reduced risk and cost</p>
22
New cards

Re-engineering Approaches

organized from lower to higher cost options

cost factors

  • quality of software

  • tool support available

  • extent of the data conversion

  • availability of expert staff

<p>organized from lower to higher cost options</p><p>cost factors</p><ul><li><p>quality of software</p></li><li><p>tool support available</p></li><li><p>extent of the data conversion</p></li><li><p>availability of expert staff</p></li></ul><p></p>
23
New cards

Refactoring

process of making improvements to a program to slow down degradation through change (preventative maintenance)

should not add functionality, concentrate on improvement

continuous process of improvement throughout the development and evolution process

24
New cards

“Bad Smells”

duplicate code, long methods, switch (case) statements, data clumping, speculative generality