Zum Inhalt springen

Strukturierte Programmierung/ Checkliste

Aus Wikibooks

Diese Checkliste soll dazu dienen, wichtige Kriterien für die Erstellung von strukturierten Programmen schnell überprüfen zu können.

Kopfkommentar

[Bearbeiten]

Hat jede Quelltextdatei im Dateikopf einen Kommentar mit wichtigen Angaben ?

Dazu können beispielsweise die folgenden Merkmale gehören:

  • Dateiname
  • Urheber
  • Ort
  • Nutzungsrecht
  • Erstellungsdatum
  • Datum der letzten Änderung
  • Versionsbezeichnung / Versionshistorie
  • Programmiersprache
  • Entwicklungssystem
  • Beschreibung des Dateiinhalts

Unterprogramme

[Bearbeiten]

Hat jedes Unterprogramm einen Kommentar mit den folgenden Angaben ?

  • Beschreibung zum Inhalt oder zur Funktion.
  • Beschreibung aller Parameter mit Datentyp.
  • Beschreibung des Rückgabewerts mit Datentyp.

Bezeichner

[Bearbeiten]

Sind alle Bezeichner von Variablen oder Unterprogrammen ihrer Bedeutung gemäß sprechend bezeichnet ?

Beispiele:

  • Variablenname "breite" statt nur "b".
  • Parameter von Unterprogrammen sind sprechende Bezeichner und nicht (komplexe) Ausdrücke oder Literale (direkt eingegebene Werte).
  • Verwendung von i, j und k für ganzzahlige Zählvariablen.
  • Verwendung von x, y und z für Koordinaten.
  • Hinzufügung eines erläuternden Kommentars.

Anweisungsstrukturen

[Bearbeiten]

Sind die Anweisungsfolgen sowie Kontrollstrukturen vom Umfang her so gestaltet, so dass sie vollständig und bequem auf einer Bildschirmseite gelesen werden können ?

  • Zu lange Anweisungsfolgen können durch geschickte und sinnvolle Auslagerung von Programmcodeblöcken in Unterprogramme eingekürzt werden.
  • Komplexe Datenstrukturen können durch Unterdatenstrukturen übersichtlicher gestaltet werden.

Codewiederholung

[Bearbeiten]

Wird Codewiederholung konsequent vermieden ?

  • Verwendung von Konstanten statt wiederholten literalen Werten.
  • Verwendung von Variablen für Zwischenergebnisse.
  • Verwendung von Unterprogrammen für wiederholt erforderliche Anweisungen.
  • Verwendung von Objektstrukturen für ähnliche Daten und Funktionen.

Lokalität

[Bearbeiten]

Wird bei den Sichtbarkeiten von allen Bezeichnern in der jeweiligen Deklaration das Prinzip der Lokalität berücksichtigt ?

  • Vermeidung von überflüssigen globalen Variablen.
  • Vermeidung von nicht erforderlichen Exporten in Programmschnittstellen.
  • Vermeidung der mehrfachen Verwendung von Variablen für verschiedene Zwecke.

Qualifizierte Bezeichnung

[Bearbeiten]

Werden alle externen Bezeichner qualifiziert referenziert ?

  • Globale Import-Anweisungen unterlassen, sondern importierte Bezeichner im Quelltext vor Ort qualifiziert bezeichnen.
  • Rückgabewerte von qualifiziert bezeichneten Unterprogrammaufrufen in korrekt deklarierten Variablen zwischenspeichern und nicht als Ersatzausdruck verwenden.

Rückgabewerte

[Bearbeiten]

Haben alle Methoden mit Rückgabewert eine einzige Rücksprunganweisung ?

  • Es gibt nur eine einzige Rücksprunganweisung.
  • Die Rücksprunganweisung ist die letzte Anweisung eines Unterprogramms.

Komplexe Operatoren

[Bearbeiten]

Sind alle Operatoren, die Variablen unmittelbar verändern oder den Programmablauf steuern sollen, in einer isolierten vollständigen Anweisung und nicht Bestandteil eines anderen Ausdrucks ?

  • Alle Inkrement- und Dekrement-Anweisungen werden als einzelne Anweisung ausgeführt.
  • Alle Zuweisungsoperatoren werden ohne eine direkte Kombination mit einem anderen Operator verwendet.
  • Keine Verwendung von bedingten Ausdrücken, sondern von Kontrollstrukturen mit Variablen.

Kontrollstrukturen

[Bearbeiten]

Werden Kontrollstrukturen überall so eingesetzt, dass der Programmablauf immer nachvollziehbar und betriebssicher sowie leicht zu warten ist ?

  • Alle Bedingungen von Fallunterscheidungen und Schleifen sind eindeutig und leicht erkennbaren Blockstrukturen zugeordnet.
  • Optionale, eine Kontrollstruktur unterbrechende Anweisungen wie goto, break oder continue, sind kategorisch zu unterlassen.
  • Sicherstellung von unerlaubten Operanden oder Parametern.

Unerreichbarer Code

[Bearbeiten]

Ist Quellcode entfernt, der nie ausgeführt werden oder keinen Einfluss auf den Programmablauf nehmen kann ?

  • Keine Unterprogramme, die nie aufgerufen werden (können).
  • Keine Bedingungen, die nie oder immer erfüllt sind.
  • Keine Endlosschleifen, da diese das Erreichen des Programmendes verhindern.

Mensch-Maschine-Schnittstellen

[Bearbeiten]

Ist das Programm so gestaltet, dass die Benutzerführung benutzerfreundlich ist ?

  • Evaluation aller Eingaben.
  • Hinweise auf fehlerhafte oder unplausible Werte.
  • Leicht verständliche Ausgaben.