Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Größe: px
Ab Seite anzeigen:

Download "Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht"

Transkript

1 Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht

2 Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung?? Was sind Ihre Erwartungen an diese Fortbildung? 2

3 UML-Klassendiagramme: Sprachkonzepte

4 Übung zum Einstieg Ein Pizza-Lieferdienst möchte seine Bestellungen elektronisch verwalten. Welche Informationen muss das geplante Informationssystem erfassen bzw. vorhalten? Modellieren Sie ein UML-Klassendiagramm. 4

5 Grundlegende Sprachkonzepte 5

6 Klasse: Klassenname Attribute Methoden UML-Klassendiagramme: Grundlegende Sprachkonzepte (1) Assoziation Achtung: Assoziationen müssen bei der Implementierung! übersetzt werden (i. d. R. zu Attributen). 6

7 i Weitere Konzepte? Was wird hier modelliert? 7

8 Aggregation Abstrakte Klasse Vererbungsbeziehung! Weitere Sprachelemente können den Unterricht unterstützen. 8

9 Domänen vs. Implementierungsmodelle

10 Klassendiagramme werden in unterschiedlichen Phasen der Software-Entwicklung genutzt insb.: Domänenmodelle (frühe Entwurfsphasen) Implementierungsmodelle (späte Entwurfsphasen) Übersicht! Werden im Schulunterricht in unterschiedlichen Aufgabentypen genutzt. 10

11 A Implementierungsmodelle

12 Modellieren die Domäne einer Software aus Anwendersicht insb. Verwaltete Informationen Zentrale Funktionalitäten Domänenmodelle Kommunikationsinstrument zwischen den Beteiligten Programmierer Anwender Auftraggeber Abstraktionsebene: Verzicht auf Besonderheiten einer Programmiersprache Häufig unvollständige Modellierung 12

13 ? Was wird hier modelliert? i Beispiel Beispiel 13

14 Gemeinsam modellieren (Gruppenarbeit, Plenum) Bestehende Modelle interpretieren (siehe vorangegangene Beispiele) Modelle vergleichen Anwendung im Unterricht Entwurfsentscheidungen diskutieren! Domänenmodellierung ist Programmieren im Großen 14

15 Entwurfsentscheidungen diskutieren Beispiel: Rechteck Quadrat Gesucht: Repräsentation von Rechtecken und Quadraten für ein Geometrie-Programm. 15

16 1. Rechtecke sind spezielle Quadrate Entwurf Quadrate sind spezielle Rechtecke 16

17 Entwürfe Alles ist ein Rechteck 4. Alles ist ein Graphical Object 17

18 Welcher Entwurf ist geeignet?

19 Bewertung von Modellen Es gibt häufig verschiedene Lösungen für eine Problemstellung. Die Entscheidung für einen Entwurf wirkt sich auf nachfolgende Design- und Technologieentscheidungen aus.! Diskussion von Entwürfen ist typische Aufgabe aller Ingenieurs- und Technikfächer 19

20 B Implementierungsmodelle

21 Spezifikation und Dokumentation von Softwarekomponenten. Zielgruppe: Software-Entwickler Implementierungsmodelle Modelliert auch Implementierungsdetails (z. B. View- und Control-Klassen) Verfasst in der Notation der Programmiersprache Attribute (z. B. protected int zahl1) Methodendeklaration (z. B. public int setzahl1(int wert))! Besonderes Augenmerk gilt Softwareschnittstellen. 21

22 Übersetzungsaufgaben: Klassendiagramm -> Code. Anwendung im Unterricht Ergänzungsaufgaben: Klassendiagramme dokumentieren den bereitgestellten Code. Verteilte Entwicklung: Klassendiagramme spezifizieren die Softwareschnittstellen. (z. B. elektronischer Spieler)! Herausforderung: Assoziationen in Programmierkonzepte übersetzen. 22

23 C Software-Entwicklung

24 IT Perspektive Anwender-Perspektive Software-Entwicklung: Durchgängige Nutzung der Diagramme Analyse der Domäne Domänenmodell Entwurf: Implementierungsmodell Implementierung: Quellcode 24

25 Software-Entwicklung im Unterricht Modellierung ermöglichen schülerzentrierten Zugang zu den Phasen der Softwareentwicklung Klassendiagramme sind intuitiver als (nur) Pflichten- und Lastenheft. Durchgängige Beispiele sind möglich z. B. Freundesnetzwerk ( Class Book ) Stundenplanverwaltung Pizzalieferdienst Allgemein: Datengetriebene Anwendungen 25

26 Zusammenfassung, Tipps und Tools

27 Dienen statischem Entwurf (Komponenten, Daten) (in Abgrenzung zu dynamischem Entwurf: Prozesse) Fokus auf Klassen (OO-Sprachen) bzw. Module (nicht oo Sprachen) UML-Klassendiagramme Software-Entwicklung: Durchgängige Verwendung möglich (Domänenmodell, Implementierungsmodell, Code) 27

28 Klassendiagramme als Werkzeug im Unterricht nutzen (nicht nur Klassendiagramme unterrichten) Verdeutlichen, dass man je nach Zweck des Modells unterschiedlich präzise (und damit durchgängig) modellieren kann. Tipps Modellieren ist Programmieren im Großen: Man kann Software modellieren, die man im Unterricht sinnvoll nicht programmieren könnte. 28

29 Modellierungswerkzeuge Tools für Analyse und Design Modellierungswerkzeuge +Entwicklungsumgebung Microsoft Visio yed Violet UML Editor BlueJ JavaEditor AmaterasUML/Eclipse 29

30 Vielen Dank! Fragen? 30

31 Ergänzungen / Ausblick 31

32 Modelle vergleichen: Beispiel / Übung Erstelle ein UML-Klassendiagramm für die Mitgliederverwaltung von Sportvereinen. Modelliere die Klassen Verein, Person, Mitglied und Vorstandsmitglied und verbinde sie sinnvoll mit Assoziationen. Gibt es unterschiedliche Wege, das Modell korrekt zu erstellen? 32

33 Aus Klassendiagrammen lernen Beispiel Delegationsproblematik? Was ist hiervon zu halten? H. Schauer: Debugging-Aufgaben 33

34 dann doch besser so H. Schauer: Debugging-Aufgaben 34