User Tools

Site Tools


principles:generalization_principle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
principles:generalization_principle [2020-10-12 14:20] – old revision restored (2013-04-03 14:13) 159.69.186.191principles:generalization_principle [2020-10-12 14:20] – old revision restored (2013-03-18 09:44) 159.69.186.191
Line 3: Line 3:
 ===== Variants and Alternative Names ===== ===== Variants and Alternative Names =====
  
-  * Build Generality into Software((Alan M. David: //201 Principles of Software Development//))+  * Build Generality into Software
  
  
Line 33: Line 33:
   * Use parameterizable modules   * Use parameterizable modules
   * Find suitable abstractions   * Find suitable abstractions
- 
- 
 ===== Caveats ===== ===== Caveats =====
  
-Making a [[glossary:module]] (typically layer, a subsystem or an API) too general leads to the [[wp>inner-platform effect]]. This means that the module is so general that it mirrors the functionality of the underlying platform without adding a benefit but only complexity.+Making a [[glossary:module]] (typically layer, a subsystem or an API) too general leads to the [[wp>inner-platform effect]]. This means that the module is so general that it mirrors the functionality of the underlying platform without adding a benefit but only complexity.
  
 Another problem is the [[wp>turing tarpit]]. This means that the module is so general that arbitrarily complex tasks can be performed but those of interest, meaning the rather simple tasks that occur over and over again, are also difficult to do. This is a violation of the [[Easy to Use and hard to Misuse|EUHM]] principle. Another problem is the [[wp>turing tarpit]]. This means that the module is so general that arbitrarily complex tasks can be performed but those of interest, meaning the rather simple tasks that occur over and over again, are also difficult to do. This is a violation of the [[Easy to Use and hard to Misuse|EUHM]] principle.
Line 46: Line 44:
 ===== Origin ===== ===== Origin =====
  
-The term "generalization principle" is proposed here. Nevertheless the value of generalized solutions is well known at least since: +FIXME
- +
-David Parnas: //Designing Software for Ease of Extension and Contraction// +
  
 ===== Evidence ===== ===== Evidence =====
Line 87: Line 82:
 ===== 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:Stub]]*/ +[[wiki:Stub]] 
-[[wiki:Incomplete]]+/*[[wiki:Incomplete]]*/
 /*[[wiki:Complete]]*/ /*[[wiki:Complete]]*/
  
principles/generalization_principle.txt · Last modified: 2021-10-20 21:20 by christian