Programmzustand ist immer implizit (d. h. unsichtbar).
⇒ jede Zustandsänderung (eines Attributes eines Objektes, 
einer Variablen in einem Block) erschwert 
- Spezifikation,  Tests, Korrektheitsbeweis,
 
- Lesbarkeit, Nachnutzung.
 
Code smells: 
- Variable wird deklariert, aber nicht initialisiert 
  (Refactoring: Variable später deklarieren)
 
- Konstruktor, der Attribute nicht initialisiert 
  (d. h., der die Klasseninvariante nicht garantiert)
 
Johannes Waldmann
2013-06-11