Maintenance and Evolution Flashcards

1
Q

Describe how Canning’s iceberg diagram represents the cost of software engineering

A

The tip of the iceberg represents the acquisition cost - research, design, testing, etc. Below the surface lies many other costs that may not be accounted for:
- operation cost
- product distribution cost
- maintenance cost
- training cost
- retirement and disposal cost
and others

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why is change in software inevitable?

A

Software doesn’t wear out like physical objects but it still needs to be
- fixed (corrective maintenance)
- adapted to changing need (adaptive maintenance)
- improved in performance (perfective maintenance)
- improved by fixing bugs (preventative maintenance)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

List the 3 R’s of SW evolution (3 R’s)

A
  1. Reverse engineering - analyze an existing system
  2. Refactoring - cleaning up code w/o modifying functionality
  3. Reengineering - creating a maintainable system out of an unmaintainable one (at a larger scale than refactoring)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

List the 3 laws of science that the 3 R’s of SW evolution are based off of

A
  1. Reductionism
  2. Repeatability
  3. Refutation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explain what a “legacy system” is

A

A system that is hard to evolve, for any reason

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Define “software evolution”

A

Software evolution refers to the process of developing software initially, then repeatedly updating it for various reasons.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Discuss the impact of Moore’s law on software

A

Software tends to follow the exponential expansion of hardware, but developer’s capabilities do not. Creating new software paradigms yields discontinuous jumps in productivity, but at the expense of existing code bases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe what an S type program is

A

S (specified) type program - all requirements that are important to stakeholders are formally and completely defined. Correctness of the program w.r.t its specification are the only criterion of the acceptability of the program.
Example - calculation of the LCM of two integers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe what a P type program is

A

P (Problem) type program - based on a practical abstraction of the problem instead of relying on completely defined specification
Example - a program that plays chess

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Describe what an E type program is

A

E (Evolving) type program - one that is embedded in the real world and changes as the world does. These programs mechanize a human activity and make simplifying assumptions. The acceptance of an E type program depends on the stakeholders’ opinion and judgment of the solution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is meant by Lehman’s first law - continuing change

A

An E type program must continually be adapted, or else it becomes progressively less satisfactory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is meant by Lehman’s second law - Increasing complexity

A

As an E type program evolves, its complexity increases unless work is done to maintain or reduce it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is meant by Lehman’s third law - Self Regulation

A

The evolution process of an E type program is self regulating.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is meant by Lehman’s fourth law - organizational stability

A

The average effective global activity rate in an evolving E program is invariant over the program’s lifetime

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is meant by Lehman’s 5th law - Conservation of familiarity

A

The average content of successive releases is constant during the life cycle of an E type program

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is meant by Lehman’s 6th law - continuous growth

A

To maintain user satisfaction, the content of an E program must be continually increased.

17
Q

What is meant by Lehman’s 7th law - declining quality

A

The quality of an E type program will appear to decline unless rigorously maintained

18
Q

What is meant by Lehman’s 8th law - Feedback System

A

E type evolution processes constitute multi-agent feedback systems and must be treated as such to achieve significant improvement

19
Q

Explain Wirth’s law

A

Wirth’s law states that software is getting slower more rapidly than hardware is becoming faster

20
Q

Why does Wirth believe software is getting slower?

A
  1. Rapidly growing hardware performance.
  2. Customers’ ignorance of what features are essential and which are “nice to have”
    - non essential features are referred to as “fluff”
21
Q

Define software entropy

A

As a system is modified, its disorder or entropy tends to increase. This is known as software entropy.

22
Q

List the 3 types of software maintenance

A
  1. Bug fixing
  2. Modifying software to work in a new environment
  3. Implementing new or changed requirements