20.1 Prinzipien

In der Softwareentwicklung stellen Prinzipien allgemeine Grundsätze dar, deren Einhaltung sich in der Praxis vielfach bewährt hat und die deshalb in Fachkreisen allgemein anerkannt sind. Prinzipien sind unabhängig von konkreten Anwendungsfällen und enthalten keine konkreten Vorgaben, wie etwas getan werden soll.

Geheimnisprinzip

Außerhalb eines Teilsystems ist lediglich bekannt, welche Dienste es anderen Teilsystemen anbietet. Wie ein Teilsystem diese erbringt und wie es intern aufgebaut ist, bleibt vor den anderen Teilsystemen verborgen.

Dies hat den Vorteil, dass diese – verborgenen – Dinge geändert bzw. erweitert werden können, ohne dass dadurch Modifikationen bei den Nutzern der Dienste erfordrlich werden.

Lose Kopplung

Nutzen Teilsysteme die Dienste anderer Teilsysteme, entstehen zwischen ihnen Abhängigkeiten. Je größer die Zahl dieser Abhängigkeiten wird, desto komplexer und unverständlicher wird das System. Änderungen an einer Stelle erfordern Modifikationen an vielen anderen abhängigen Stellen.

Es ist daher sinnvoll ein System so zu entwerfen, dass zwischen seinen Teilsystemen möglichst wenige Abhängigkeiten bestehen. Man spricht in diesem Fall von einer losen Kopplung.

Kohäsion

Abhängigkeiten zwischen Teilsystemen lassen sich reduzieren, wenn jedes Teilsystem einen genau abgegrenzten fachlichen oder technischen Aufgabenbereich übernimmt. In der objektorientierten Softwareentwicklung spricht man von starker Kohäsion, wenn dies für jede Methode und jede Klasse gilt.

Klare und voneinander abgegrenzte Zuständigkeiten erleichtern:

  • das Verständnis des Systems,
  • die Bildung spezialisierter Entwicklerteams,
  • die Wartbarkeit und die Erweiterbarkeit des Systems und
  • die Wiederverwendbarkeit einzelner Teilsysteme.