Programmierprinzipien

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg

Zweck

Um nützliche und dennoch preiswerte Programme und Anwendungen erstellen zu können, sollte man eine Reihe von Programmierprinzipien beachten.

Bevor die Programmierprinzipen näher beschrieben werden können, sollen erst die Ziele genannt werden, die mit diesen Prinzipien erreicht werden sollen.

Ziele

Ziel eines jeden Softwareentwicklungs-Vorhaben sollte die Erstellung von Software sein, die zwei Eigenschaften aufweist:

nützlich (useful)
Die Software sollte für den Benutzer nützlich sein.
preiswert (inexpensive)
Die Software sollte so geringe Kosten und Folgekosten verursachen wie möglich.

Software-Eigenschaften zur Erfüllung der beiden Ziele

Um die beiden vorgenannten Ziele zu erreichen, sollte ein Softwarepaket folgende Eigenschaften haben:

spezifiziert (specified)
Um die Nützlichkeit und die Korrektheit des Softwarepakets beurteilen zu können, sollte eine Spezifikation vorliegen, die detailliert die Aufgaben und Eigenschaften des Paketes beschreibt.
⇒ Nützlichkeit (ist abschätzbar)
korrekt (correct)
Die Implementierung des Paketes sollte korrekt sein, es sollte also die Spezifikation in allen Punkten erfüllen.
⇒ keine Kosten durch falsches oder unerwartetes Verhalten
robust (robust)
Das Softwarepaket sollte auch in abnormalen (nicht-spezifizierten) Situationen stabil laufen.
⇒ keine Kosten durch Inkonsitenzen
⇒ geringe Kosten bei Bedienungsfehlern und Systemausfällen
benutzbar (usable)
Das Softwarepaket sollte einfach zu erlernen und zu benutzen sein.
⇒ Nützlichkeit wird verbessert
⇒ geringe Schulungskosten
⇒ geringe Kosten durch Falschnutzung
⇒ keine Kosten durch frustierte Benutzer
sicher (secure)
Unautorisierter Zugriff auf Daten oder Programme sollte unmöglich sein.
⇒ keine Kosten durch Sicherheitsmängel
effizent (efficent)
Das Softwarepakt sollte eine möglichst gute Laufzeit- und Speichereffizienz aufweisen, d.h. die vorhandenen Ressourcen möglichst gut ausnutzen.
⇒ geringe Kosten durch geringe Hardwareanforderungen
wartbar (maintainable)
Das Softwarepaket sollte leicht an neue Gegebenheiten angepasst werden können. Fehler sollen leicht behoben werden können (da sie sich nie ganz vermeiden lassen).
⇒ geringe Wartungskosten

Für die Eigenschaft „wartbar“ gibt es drei Spezialfälle, die hier gesondert genannt werden sollen:

kompatibel (compatible)
Das Softwarepaket sollte komaptibel zu bestehenden Systemen sein, es sollte also standardisierte Schnittstellen unterstützen.
⇒ geringe Intergrations- und Anpassungskosten
portabel (portable)
Das Softwarepaket sollte einfach auf neue Systeme portiert werden können.
⇒ geringe Kosten bei Änderung der Hardwareumgebung
erweiterbar (extensible)
Erweiterungen der Spezifikation sollten schnell implementiert werden können.
⇒ geringe Wartungskosten

Programmierprinzipien

Um die vorgenannten Ziele zu Erreichen, sollten folgende Programmierprinzipien beachtet werden:

Teile und herrsche (Divide et impera, Separation of concerns[1], Single responsibility principle[2], Modularität[3])
Ein komplexes Problem (Vorhaben, Projekt, ...) kann man nur dadurch in den Griff bekommen, dass man es solange in kleinere, möglichst unabhängige Teilprobleme (Teilvorhaben, Phasen, Vorgänge, ...) zerlegt, bis diese lösbar (= beherrschbar) sind. Ein Programm sollte daher modularisiert werden. Jedes Modul sollte möglichst nur eine einzige Aufgabe erfüllen. Bei der objektorientierten Programmierung verlangt das „Single responsibility principle“ sogar, gass jedes Objekt nur für eine einzige Aufgabe verantwortlich ist.

Quellen

Siehe auch

Software-Engineering


Dieser Artikel ist GlossarWiki-konform.