Komplexes Beispiel für saubere Programmierung mit strenger OOP, Design Patterns, Unittests und mit UML Diagrammen