Zum Inhalt springen

objektorientiert

Suchen und Sortieren (objektorientiert)

Unterrichtsvoraussetzungen:

Die Schülerinnen kennen große objektorientierte Programmsysteme und sie kennen Elemente von grafischen Bedienoberflächen. Sie haben mit den Listen-Typen, z.B. von der Patientenverwaltung gearbeitet.

Ziel:
Das Projekt dient zum Kennenlernen des Software-Engineering und des objektorientierten Entwurfs, sowie zur Einarbeitung in grafische Benutzeroberflächen mit Python/Tkinter und in die Listenbearbeitung, jeweils mit vorgefertigten Modulbibliotheken. Eigene Such- und Sortieralgorithmen werden eingebettet.

So soll's aussehen:
Screenshot (pdf - 54 KB) des teilfertigen Programms.

OODesign-Phase:
Klassenübersicht (pdf - 16 KB) (mit MVC) als Produkt der Designphase.

Verwendung von Software-Werkzeugen:
Fertige Klassen werden in Modulen (Quelltext- oder Pseudocode-Dateien, d.h. vorübersetzt) zur Verfügung gestellt - für

Unterrichtseinsatz:
Eine teilfertige Lösung der grafischen Bedienoberfläche wird als Quelltext verteilt. Aus diesem Entwurf der Bedienoberfläche und dem UML-Diagramm (s.o.) werden Datenobjekte und Methoden abgeleitet, die von den Klassen "WortListe" und "WortGenerator" bereit gestellt werden müssen.
An einem Beispiel (Methode "GetSuchPos") wird das Einbinden eigener Such- und Sortieralgorithmen in den Quelltext der "<media 25398>WortListe</media>" besprochen.
Die Methode "SuchListeFuellen" der Bedienoberfläche zeigt ein Beispiel für die korrekte Anbindung des Fachkonzepts (Model) an das "View/Control"-Modul über die Standard-"Set"- und -"Get"-Methoden.

Die Übergabe des "Aktionswunsches" aus dem Wahlfeld "WAktion" der Bedienoberfläche stellt einen komplexen Transfer dar. Die Methoden und ggf. Attribute der "WortListe" müssen dann entsprechend erzeugt oder angepasst werden. Eine Lösung wird hier nicht vorgegeben.

Quelle:
Die Idee zur grafischen Bedienung der Such- und Sortier-Algorithmen wurde im OSZ Handel (S. Spolwig) in Berlin entwickelt. Der Aufbau und die Benennung, auch der Fach-Klassen, lehnt sich an deren Delphi-Quellen an.

Redaktionell verantwortlich: