Collected Concepts Flashcards
1
Q
Types of Maintenance
A
- Corrective change
- Adaptive change
- Perfective change
- Preventive change
2
Q
Corrective Change
A
- Deals with the repair of faults or defects found in day-today system functions
3
Q
Adaptive Change
A
- Implementing changes in a part of the system, which has been affected by a change that occurred in some other part of the system.
- Business or Environment causes
4
Q
Perfective Change
A
- implementing new or changed user requirements
- involves making functional enhancements to the system
- Increase the system’s performance
5
Q
Preventive Change
A
- Involves performing activities to prevent the occurrence of errors
- Tends to reduce the software complexity
- Improves program understandability
- Increases software maintainability
6
Q
Top-Down Code Reading
A
- Use context and prior assumptions to gain overall understanding from selected details
- Examining high-level structuring of system
- Create hypotheses from these
- Go progressively deeper into the code, looking for evidence for or against
7
Q
Top-Down Strategy Aim
A
- Squeeze maximum useful information out of each examination of the system
- At each examination of the system, just look for the smallest useful unit of information
8
Q
Top-Down Exploit Beacons
A
- Cues that suggest instant hypotheses
- Should stand out (be visible at a glance)
9
Q
Top-Down Exploit System Diagrams
A
- Give an overview of the program
- Hide unimportant and distracting details
- Only useful for code reading if can be automatically generated (or if very small)
10
Q
Top-Down Strategy Key Features
A
- Importance of context and prior understanding
- Confirms domain assumptions through verification reading
- Don’t need to understand every word to understand overall meaning
- Meaning is brought to print, not extracted from print
11
Q
Bottom-Up Code Reading
A
- Start with individual statements and build up picture incrementally
- Applies when class/method/etc to be examined already identified
- Skim over code, looking for recognisable idioms
- Form abstract view of the task of the idiom
- Combine recognised units to make conjectures about ever larger sections of code
12
Q
Bottom-Up Code Reading Cons/Pros
A
- Pros
- Gives detailed understanding of fragments of code
- Cons
- Can be difficult to understand full meaning of fragments without knowing their context
- Difficult to know where to start, if program is big or unfamiliar
13
Q
Opportunistic/Hybrid Code Reading
A
- A hybrid of top-down and bottom-up
- Begin with top-down, to gain the overview
- Then selectively apply bottom-up, when nearing ‘code-level’
- Presence of beacons can indicate opportunity for change in strategy
14
Q
Program Slicing
A
- Understand how particular variable got its value, at particular point in the program
- Remove all program statements that don’t affect the value at this point
15
Q
Data Dependency Graphs
A
- Create graph from code
- 1 node for each program statement
- Directed edges between nodes indicate patterns of variable usable and dependency