Flexibility Flashcards
Achieving Flexibility
Practices that enhance a designs quality will in and of themselves help to make systems more flexible
-strengthening cohesion
relaxing module coupling
streamlining intermodule dependency
improving the clarity
Additional practices include the 0,1 or infinity principle collection
isolating risk
providing support for data driven system configurability
What is the 0,1 or infinity Principle?
When considering whether to support a collection of items, plan for one of three situations:
1) Support for NO instances of that item
2) Supporting EXACTLY ONE instance of that item
3) Supporting INFINITE instances of that item
Isolating Risk
You can isolate risk, by isolating likely areas of functional instability with interfaces that abstract the functionality key concerns: eg(Platforms, data exchange formats, user interface designs)
Concerns: Contain “damage” to other parts of implementation due to change.
Data Driven Configurability
Use a well known persistent store to parameterize variable aspects of an applications behavior.
Define a multilevel (label, value) based structure aka XML or JSON
Advantages includes the elimination of the need to revise and recompile source code to modify an applications behavior.
Disadvantages: Can be time consuming and difficult to implement.
Can be difficult to present options In user friendly ways without overwhelming users with choices