User Tools

Site Tools


collections:ood_principle_language

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
collections:ood_principle_language [2012-12-10 15:57] – [Box] liked graphic to PL 127.0.0.1collections:ood_principle_language [2021-10-18 21:57] – old revision restored (2014-07-23 11:08) christian
Line 1: Line 1:
 ====== OOD Principle Language ====== ====== OOD Principle Language ======
- 
-:!: This is highly tentative and will change repeatedly :!: 
  
 General Principles: General Principles:
-  * [[principles:Keep It Simple Stupid]] +  * [[principles:Murphy's Law]] (ML) 
-  * [[principles:Generalization Principle]] +  * [[principles:Keep It Simple Stupid]] (KISS) 
-  * [[principles:Don't Repeat Yourself]]+  * [[principles:More Is More Complex]] (MIMC) 
 +  * [[principles:Don't Repeat Yourself]] (DRY) 
 +  * [[principles:Generalization Principle]] (GP) 
 +  * [[principles:Rule of Explicitness]] (RoE)
  
 Modularization Principles: Modularization Principles:
-  * [[principles:Information Expert]] +  * [[principles:Model Principle]] (MP) 
-  * [[principles:Model Principle]] +  * [[principles:High Cohesion]] (HC) 
-  * [[principles:High Cohesion]] +  * [[principles:Encapsulate The Concept That Varies]] (ECV)
-  * [[principles:Low Coupling]]+
  
 +Module Communication Principles:
 +  * [[principles:Tell, don't Ask/Information Expert]] (TdA/IE)
 +  * [[principles:Low Coupling]] (LC)
 +  * [[principles:Dependency Inversion Principle]] (DIP)
 +
 +Interface Design Principles
 +  * [[principles:Easy to Use and Hard to Misuse]] (EUHM)
 +  * [[principles:Principle of Least Surprise]] (PLS)
 +  * [[principles:Uniformity Principle]] (UP)
 +
 +Internal Module Design Principles
 +  * [[principles:Information Hiding/Encapsulation]] (IH/E)
 +  * [[principles:Invariant Avoidance Principle]] (IAP)
 +  * [[principles:Liskov Substitution Principle]] (LSP)
 +  * [[principles:Principle of Separate Understandability]] (PSU)
  
 {{ :collections:ood_principle_language.png?500 |}} {{ :collections:ood_principle_language.png?500 |}}
Line 19: Line 34:
 ===== Origin ===== ===== Origin =====
  
-Christian Rehn//A Principle Language for Object-Oriented Design//, Master's thesis +{{page>resources:A Principle Language for Object-Oriented Design#reference}}
 ===== Further Reading ===== ===== Further Reading =====
  
 ===== Box ===== ===== Box =====
  
-^ [[collections:OOD Principle Language|{{:collections:ood_principle_language.png?nolink&200|}}]] ^                               **[[collections:OOD Principle Language]]**                           ^^^^^^^ +^                               **[[collections:OOD Principle Language]]**                           ^^^^^^^ 
- :::      General Principles       ^^^        Modularization Principles      ^^^^ +        General Principles   ^^^^^^ 
-^  :::  |   [[principles:Keep It Simple Stupid|KISS]]     [[principles:Don't Repeat Yourself|DRY]]     [[principles:Generalization Principle|GP]]     [[principles:Model Principle|MP]]     [[principles:Information Expert|IE]]     [[principles:Low Coupling|LC]]     [[principles:High Cohesion|HC]]   |+^  [[collections:OOD Principle Language|{{:collections:ood_principle_language.png?nolink&220|}}]]  |   [[principles:Murphy's Law|ML]]   |   [[principles:Keep It Simple Stupid|KISS]]        [[principles:More Is More Complex|MIMC]]     [[principles:Don't Repeat Yourself|DRY]]     [[principles:Generalization Principle|GP]]   |   [[principles:Rule of Explicitness|RoE]]      
 +^  :::  ^   Modularization Principles     ^^^^^^  
 +^  :::  |   [[principles:Model Principle|MP]]     [[principles:High Cohesion|HC]]     [[principles:Encapsulate the Concept that Varies|ECV]]   | 
 +^  :::  ^   Module Communication Principles      ^^^^^^ 
 +^  :::  |   [[principles:Tell, don't Ask/Information Expert|TdA/IE]]     [[principles:Low Coupling|LC]]     [[principles:Dependency Inversion Principle|DIP]]      
 +^  :::  ^   Interface Design Principles      ^^^^^^ 
 +^  :::  |   [[principles:Easy to Use and Hard to Misuse|EUHM]]     [[principles:Principle of Least Surprise|PLS]]     [[principles:Uniformity Principle|UP]]   | 
 +^  :::  ^   Internal Module Design Principles      ^^^^^^ 
 +^  :::  |   [[principles:Information Hiding/Encapsulation|IH/E]]     [[principles:Invariant Avoidance Principle|IAP]]     [[principles:Liskov Substitution Principle|LSP]]      [[principles:Principle of Separate Understandability|PSU]]   | 
 + 
 + 
 + 
 +===== Discussion =====
  
 +Discuss this wiki article and the collection on the corresponding [[talk:collections:OOD Principle Language|talk page]].
collections/ood_principle_language.txt · Last modified: 2021-10-18 21:57 by christian