Chapter 7 - Modifiability Flashcards
definition of modifiability
pertains to the cost and risks of making changes
3 issues with regards to modifiability
- what can change?
- what is the likelihood of change?
- when is the change made and who makes it?
In general scenario, 3 possible values for “Source”
end user
developer
system administrator
In general scenario, 2 possible values for “Stimulus”
directive to:
- add/delete/modify functionality
- change quality attribute, capacity, or technology
In general scenario, 6 possible values for “Artifact”
code data interfaces components resources configurations
In general scenario, 3 possible values for “Response”
- make modification
- test modification
- deploy modification
In general scenario, 5 possible values for “Environment”
- runtime
- compile time
- build time
- initiation time
- design time
In general scenario, 6 possible values for “Response Measure”
- number, size, complexity of artifacts affected
- effort
- calendar time
- money
- extent to which modifications affect functions or quality attributes
- new defects introduced
2 Primary goal of modifiability tactics
- control the complexity of making changes
- control the time and costs to make changes
4 categories of modifiability tactics
- reduce the size of a module
- increase cohesion
- reduce coupling
- defer binding
1 tactics for reducing the size of a module
split module
what does it mean to split a module?
refining modules with a great deal of capability into several smaller modules to reduce the average cost of future changes
1 tactic increasing cohesion
increase semantic coherence
what does it mean to increase semantic coherence
and two program units A and B whose responsibilities do not serve the same purpose should be placed in separate modules
5 tactics for reducing coupling
- encapsulate
- use an intermediary
- restrict dependencies
- refactor
- abstract common services