definition of modifiability
pertains to the cost and risks of making changes
3 issues with regards to modifiability
In general scenario, 3 possible values for “Source”
end user
developer
system administrator
In general scenario, 2 possible values for “Stimulus”
directive to:
In general scenario, 6 possible values for “Artifact”
code data interfaces components resources configurations
In general scenario, 3 possible values for “Response”
In general scenario, 5 possible values for “Environment”
In general scenario, 6 possible values for “Response Measure”
2 Primary goal of modifiability tactics
- control the time and costs to make changes
4 categories of modifiability tactics
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
what does it mean to encapsulate
to introduce an explicit interface to a module including an API and associated responsibilities
what does it mean to use an intermediary
using some intermediate responsibility to break a dependency between to responsibilities A and B
what does it mean to restrict dependencies
restrict modules which a given module interacts with or depends on
what does it mean to refactor
undertaken when tow modules are affected by the same change because they are at least partial duplicates
what does it mean to abstract common services
implement a single service used slightly differently by two different modules one time in a more general and abstract form
what does it mean to defer binding
the later in the life cycle in which things are bound typically leads to greater flexibility (in terms of modifiability)
the importance of allocation of responsibilities with regards to modifiability
determine which changes or categories of changes are likely to occur through consideration of changes in technical, legal, social, business and customer forces
3 important tasks pertaining to allocation of responsibilities with regard to modifiability for each potential change or category of changes
3 issues with the coordination model in regards to modifiability