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:
- Fachkonzept-Methoden, Beispiel für die allgemeine Liste
- GUI-Methoden-Beispiel
- 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 ...
Der Bildungsserver Berlin-Brandenburg ist ein Service des Landesinstituts für Schule und Medien Berlin-Brandenburg im Auftrag der Senatsverwaltung für Bildung, Jugend und Familie (Berlin) und des Ministeriums für Bildung, Jugend und Sport Land Brandenburg.