![]() |
subject > criterion > principle > design principle |
![]() ![]() | |||||||||||
design principle comparison table |
Subject | make | state | have benefits | assume that | involve | has definition | accomplish by | have goal | is a subtopic of | have advantage | mean |
---|---|---|---|---|---|---|---|---|---|---|---|
anticipating obsolescence | changes will inevitably occur in the technology a software system uses and the environment in which it runs |
| 9.2 - Principles Leading to Good Design | planning for changes in the technology or environment so the software will continue to run or can be easily changed | |||||||
decreasing coupling | 9.4 - Software Architecture | decreasing the number of dependencies between packages as much as possible | |||||||||
designing for flexibility | actively anticipating changes that a design may have to undergo in the future and preparing for them |
| 9.2 - Principles Leading to Good Design | ||||||||
designing for portability | avoiding the use of facilities that are specific to one particular environment | the ability to have the software run on as many platforms as possible | 9.2 - Principles Leading to Good Design | ||||||||
designing for testability | ensuring that all the functionality of the code can by driven by an external program, bypassing a graphical user interface | 9.2 - Principles Leading to Good Design | |||||||||
divide and conquer |
| The principle of dividing something large into smaller units, so it can be dealt with more easily | 9.2 - Principles Leading to Good Design | ||||||||
increasing cohesion | a module easier to understand and change | that you should divide things into smaller chunks intelligently; divide things up, but keep things together that belong together | 9.2 - Principles Leading to Good Design | ensuring that a package only has related classes | |||||||
increasing reusability |
| 9.2 - Principles Leading to Good Design | |||||||||
keeping the level of abstraction high | 9.2 - Principles Leading to Good Design | it allows you to understand the essence of a subsystem and make important decisions without knowing unnecessary details | |||||||||
reducing coupling | 9.2 - Principles Leading to Good Design | ||||||||||
reusing existing designs and code where possible | 9.2 - Principles Leading to Good Design | it allows you to take advantage of the investment you or others have made in reusable components |
Next principle: ethical principle of usability evaluation Up: principle Previous principle: cost estimation principle