principles:generalization_principle
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
principles:generalization_principle [2020-10-12 14:20] – old revision restored (2013-03-03 11:04) 159.69.186.191 | principles:generalization_principle [2021-09-02 17:50] – old revision restored (2021-05-12 02:04) 65.21.179.175 | ||
---|---|---|---|
Line 3: | Line 3: | ||
===== Variants and Alternative Names ===== | ===== Variants and Alternative Names ===== | ||
- | * Build Generality into Software | + | * Build Generality into Software((Alan M. David: //201 Principles of Software Development// |
+ | * Abstractions Live Longer than Details((Andrew Hunt and David Thomas: //The Pragmatic Programmer// | ||
===== Context ===== | ===== Context ===== | ||
* [[contexts: | * [[contexts: | ||
+ | * [[contexts: | ||
+ | * [[contexts: | ||
+ | * [[contexts: | ||
===== Principle Statement ===== | ===== Principle Statement ===== | ||
Line 21: | Line 24: | ||
A general solution abstracts from the specific tasks and solves a superset of them. Parameterization of some kind is used to specify what has to be done in a given situation. | A general solution abstracts from the specific tasks and solves a superset of them. Parameterization of some kind is used to specify what has to be done in a given situation. | ||
+ | A module can be more general than another one. But there are two aspects of this: First of all there is functionality. If module '' | ||
===== Rationale ===== | ===== Rationale ===== | ||
Line 33: | Line 36: | ||
* Use parameterizable modules | * Use parameterizable modules | ||
* Find suitable abstractions | * Find suitable abstractions | ||
+ | |||
+ | |||
===== Caveats ===== | ===== Caveats ===== | ||
- | Making a [[glossary: | + | Making a [[glossary: |
Another problem is the [[wp> | Another problem is the [[wp> | ||
Line 44: | Line 49: | ||
===== Origin ===== | ===== Origin ===== | ||
- | FIXME | + | The term " |
+ | |||
+ | David Parnas: //Designing Software for Ease of Extension and Contraction// | ||
===== Evidence ===== | ===== Evidence ===== | ||
Line 77: | Line 85: | ||
{{page> | {{page> | ||
- | ===== Example | + | ===== Examples |
===== Description Status ===== | ===== Description Status ===== | ||
/* Choose one of the following and comment out the rest: */ | /* Choose one of the following and comment out the rest: */ | ||
- | [[wiki: | + | /*[[wiki: |
- | /*[[wiki: | + | [[wiki: |
/ | / | ||
principles/generalization_principle.txt · Last modified: 2021-10-20 21:20 by christian