Zum Inhalt springen

Software-Engineering

Ein Projekt zum Kennenlernen des Software-Engineering

Unterrichtsvoraussetzungen:
Die Schülerinnen kennen große Programmsysteme (nicht notwendig objektorientiert, aber besser ist es ...) und sie kennen Elemente von Bedienoberflächen, möglichst bereits GUI

Problemanalyse

Einstieg:

  • Rollenspiel: Arzt als Auftraggeber, Gesprächsleiter, Expertenrunde
  • Anforderungsdefinition entwerfen, ggf. Prüfen einer Vorlage [Spolwig 2002] auf Brauchbarkeit
  • Bedienoberfläche skizzieren

Einschub:

  • Grundzüge des Software-Engineering (SLC)

OOA

  • Objekte und Methoden aus der Anforderungsdef. und der Bedienoberfläche ablesen, auflisten
  • Gruppieren, zusammenfassen, ggf. Vergleich mit vorgegebenem Klassen-Diagrammentwurf; (Unterrichtsergebnis: OOA (pdf - 29 KB))

OOD

  • Klassenhierarchie  (pdf - 14 KB) vorlegen, unvollständig:
    • Vergleich mit OOA-Diagramm, ggf. erst hier Zerlegungs- bzw. Gruppierungskriterien erkennen
    • Beziehungen zwischen den Klassen bzw. Objekten formulieren (ugs.)
    • Formgerechte Beziehungen herstellen (UML-Klassen-Hierarchie (pdf - 12 KB))
  • Methoden analysieren:
  • Beispielspezifikation vorlegen (z.B. Methode "Knopf_Liste_vor"):
    • Aufbau einer Spezifikation kennenlernen
    • weitere (GUI-Methoden-) Spezifikationen erstellen, z.B. arbeitsteilig
  • Schnittstellen der Klassen formulieren: ... benutzt ...
  • Vergleich von GUI-Methoden vs. Fachkonzeptmethoden, z.B. "Knopf_Liste_vor" vs. "Liste.Next"
  • MVC-Prinzip erläutern, Konsequenzen

Implementierung Python

  • Beispielimplementation vorlegen, z.B. "TZahl":
    • Aufbau, Syntax
    • eigene Klassen implementieren, z.B. "TAdresse", "TPerson" und "TPatient"
    • Beispiel für die Spezifikation einer fertigen Patienten-Klasse
  • Listenalgorithmen bzw. -implementierungen vorlegen:
    • Spezifikation der fertigen Listen-Klasse
    • Aufbau, Eigenschaften, Rückgabewert
    • eigene weitere Listenmethoden: Algorithmus/Implementation
  • Zusammenhang PatListe / Liste:
    • Liste allgemein gültig?
    • spezifische Ergänzungen für die PatListe
    • Spezifikation der fertigen Patienten-Listen-Klasse
  • Zusammenhang PatGUI, PatListe, TPatient:
    • Steuerung im GUI
    • Maskenaktualisierung
    • M-VC-Schnittstelle
    • ist das GUI vom Fachkonzept unabhängig implementierbar?
  • Klassentestmethoden:
    • Beispieltestprogramme vorlegen, z.B. test_adresse, test0_person:
    • Tests unabhängig von anderen Modulen planen
    • Testumgebung gestalten, Testwerte, Test
  • Service:
    • Eine Beispielimplementation des Fachkonzepts als ZIP
    • Ein Blick auf das GUI (neuestes Beispiel) gewünscht?
    • Damit das funktioniert, benötigt man allerdings auch das GUI-Modul tkmodule
    • Wenn Sie ein paar Übungsaufgaben bearbeiten möchten ...

Redaktionell verantwortlich: