strukturierte Programmierung - Kekziie/Informatik-II-SS-2017 GitHub Wiki

Programmentwicklung

-> Problem

  1. Analyse + Dokumentation
  2. Entwurf + Dokumentation
  3. Implementierung + Dokumentation
  4. Test + Dokumentation

-> Programm

Phase 1: Analyse

  • Untersuchung des Problems
  • Diskussion mit mehreren Personen (arbeiten in Teams)
  • Tätigkeiten:
    • Problemstellung exakt/ vollständig beschreiben
    • Initialzustände/ Eingabedaten/ Parameter festlegen
    • gewünschte Endzustände/ Ergebnisse/ Ausgabewerte angeben
    • Randbedingungen, Einschränkungen, Voraussetzungen spezifizieren

Phase 2: Entwurf

  • Entwicklung des Algorithmus
  • kreativer Prozess
  • Tätigkeiten:
    • existierende Lösungen für vergleichbare Probleme betrachten
    • allgemeine Probleme suchen
    • rekursiv in kleiner Teilprobleme aufteilen
    • Entwurfsprozess für Teilprobleme durchführen
    • Lösungen der Teilprobleme zur Lösung des Gesamtproblems zusammensetzen

Phase 3: Implementierung

  • Übertragung des Entwurfs in eine Programmiersprache
  • Tätigkeiten:
    • editieren
    • übersetzen des Programms (kompilieren)
    • optimieren des Ablaufs

Phase 4: Test und Revision

  • Überprüfung des Programms auf logische/ technische Fehler
    • im allgemeinen nur die Existenz der Fehler nachweisbar
  • Fragestellung/ Tätigkeiten:
    • Korrektheit
    • Vollständigkeit
    • Fehlerbeseitigung
    • Debugging
  • Teststrategien:
    • Testmengen konstruieren (Randfälle, Grenzwerte)
    • nach Fehlerbeseitigung erneut testen
    • Wartung

Prozessbegleitend: Dokumentation

  • exakte Problemstellung und Beschreibung der generellen Lösungsidee
  • Beschreibung des Algorithmus
  • Beschreibung der Testdatenmengen und Protokolle der Testläufe
  • aufgetretene Probleme und alternative Lösungsansätze

Werkzeuge für Programmentwicklung

  • Editoren:
    • Eingabe und Änderung des Programmcodes
    • häufig kontextsensitiv mit speziellen Eingabehilfen z.B. Nano
  • Entwicklungsumgebung:
    • Eclipse
    • Visual Studio
  • Compiler:
    • Transformation eines Quellprogramms in ein Zielprogramm
    • syntaktische Überprüfung der Quelle
  • Interpreter:
    • inkrementelle Abarbeitung des Quellcodes
    • Quellprogramm wird nicht übersetzt, dondern direkt in einer Umgebung ausgeführt
  • Debugger:
    • setzen spezieller Unterbrechungspunkte
    • Erkennung von Laufzeitfehlern
  • Dokumentationshilfen: