![Page 1: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/1.jpg)
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur
UML-Klassendiagramme als Werkzeug im Unterricht
![Page 2: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/2.jpg)
Blitzlicht
29.04.2015 2 Dr. Hanno Schauer
Was sind Ihre Erwartungen an diese Fortbildung? ?
In welcher Programmiersprache(n) unterrichten Sie? ?
In welchem Umfang unterrichten Sie Objektorientierung? ?
![Page 3: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/3.jpg)
UML-Klassendiagramme: Sprachkonzepte
![Page 4: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/4.jpg)
Ein Pizza-Lieferdienst möchte seine Bestellungen elektronisch verwalten.
Welche Informationen muss das geplante Informationssystem erfassen bzw. vorhalten?
Modellieren Sie ein UML-Klassendiagramm.
Übung zum Einstieg
29.04.2015 4 Dr. Hanno Schauer
![Page 5: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/5.jpg)
Grundlegende Sprachkonzepte
29.04.2015 5 Dr. Hanno Schauer
![Page 6: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/6.jpg)
UML-Klassendiagramme: Grundlegende Sprachkonzepte (1)
29.04.2015 6 Dr. Hanno Schauer
Klasse: • Klassenname • Attribute • Methoden
Assoziation
Achtung: Assoziationen müssen bei der Implementierung übersetzt werden (i. d. R. zu Attributen).
!
![Page 7: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/7.jpg)
29.04.2015 7 Dr. Hanno Schauer Was wird hier modelliert ? ?
Weitere Konzepte i
![Page 8: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/8.jpg)
29.04.2015 8 Dr. Hanno Schauer
Weitere Sprachelemente können den Unterricht unterstützen. !
Vererbungs-beziehung
Abstrakte Klasse
Aggregation
![Page 9: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/9.jpg)
Domänen vs. Implementierungsmodelle
![Page 10: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/10.jpg)
Klassendiagramme werden in unterschiedlichen Phasen der Software-Entwicklung genutzt – insb.:
• Domänenmodelle (frühe Entwurfsphasen)
• Implementierungsmodelle (späte Entwurfsphasen)
Übersicht
29.04.2015 10 Dr. Hanno Schauer
Werden im Schulunterricht in unterschiedlichen Aufgabentypen genutzt.
!
![Page 11: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/11.jpg)
A
Implementierungsmodelle
![Page 12: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/12.jpg)
• Modellieren die „Domäne“ einer Software aus Anwendersicht – insb. – Verwaltete Informationen – Zentrale Funktionalitäten
• Kommunikationsinstrument zwischen den Beteiligten – Programmierer – Anwender – Auftraggeber
• Abstraktionsebene: – Verzicht auf Besonderheiten einer Programmiersprache – Häufig unvollständige Modellierung
Domänenmodelle
29.04.2015 12 Dr. Hanno Schauer
![Page 13: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/13.jpg)
Beispiel
29.04.2015 13 Dr. Hanno Schauer
Beispiel i Was wird hier modelliert ? ?
![Page 14: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/14.jpg)
• Gemeinsam modellieren (Gruppenarbeit, Plenum)
• Bestehende Modelle interpretieren (siehe vorangegangene Beispiele)
• Modelle vergleichen
• Entwurfsentscheidungen diskutieren
Anwendung im Unterricht
29.04.2015 14 Dr. Hanno Schauer
Domänenmodellierung ist Programmieren im Großen
!
![Page 15: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/15.jpg)
Gesucht:
Repräsentation von Rechtecken und Quadraten für ein Geometrie-Programm.
Entwurfsentscheidungen diskutieren Beispiel: Rechteck – Quadrat
29.04.2015 15 Dr. Hanno Schauer
![Page 16: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/16.jpg)
1. Rechtecke sind spezielle Quadrate
2. Quadrate sind spezielle Rechtecke
Entwurf 1 + 2
29.04.2015 16 Dr. Hanno Schauer
![Page 17: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/17.jpg)
3. Alles ist ein Rechteck
4. Alles ist ein Graphical Object
Entwürfe 3 + 4
29.04.2015 17 Dr. Hanno Schauer
![Page 18: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/18.jpg)
Welcher Entwurf ist geeignet?
29.04.2015 18 Dr. Hanno Schauer
1. 2.
3.
4.
![Page 19: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/19.jpg)
• Es gibt häufig verschiedene Lösungen für eine Problemstellung.
• Die Entscheidung für einen Entwurf wirkt sich auf nachfolgende Design- und Technologie-entscheidungen aus.
Bewertung von Modellen
29.04.2015 19 Dr. Hanno Schauer
Diskussion von Entwürfen ist typische Aufgabe aller Ingenieurs- und Technikfächer
!
![Page 20: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/20.jpg)
B
Implementierungsmodelle
![Page 21: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/21.jpg)
• Spezifikation und Dokumentation von Softwarekomponenten.
• Zielgruppe: Software-Entwickler
• 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))
Implementierungsmodelle
29.04.2015 21 Dr. Hanno Schauer Besonderes Augenmerk gilt Softwareschnittstellen. !
![Page 22: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/22.jpg)
• Übersetzungsaufgaben: Klassendiagramm -> Code.
• Ergänzungsaufgaben: Klassendiagramme dokumentieren den bereitgestellten Code.
• Verteilte Entwicklung: Klassendiagramme spezifizieren die Software-schnittstellen. (z. B. elektronischer Spieler)
Anwendung im Unterricht
29.04.2015 22 Dr. Hanno Schauer
Herausforderung: Assoziationen in Programmierkonzepte übersetzen.
!
![Page 23: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/23.jpg)
C
Software-Entwicklung
![Page 24: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/24.jpg)
Software-Entwicklung: Durchgängige Nutzung der Diagramme
29.04.2015 24 Dr. Hanno Schauer
Analyse der Domäne Domänenmodell
An
we
nd
er-
Pe
rsp
ek
tive
Entwurf: Implementierungsmodell
IT P
ers
pe
kti
ve
Implementierung: Quellcode
![Page 25: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/25.jpg)
• 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
Software-Entwicklung im Unterricht
29.04.2015 25 Dr. Hanno Schauer
![Page 26: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/26.jpg)
Zusammenfassung, Tipps und Tools
![Page 27: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/27.jpg)
• Dienen statischem Entwurf (Komponenten, Daten) (in Abgrenzung zu dynamischem Entwurf: Prozesse)
• Fokus auf Klassen (OO-Sprachen) bzw. Module (nicht oo Sprachen)
• Software-Entwicklung: Durchgängige Verwendung möglich (Domänenmodell, Implementierungsmodell, Code)
UML-Klassendiagramme
29.04.2015 27 Dr. Hanno Schauer
![Page 28: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/28.jpg)
• 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.
• Modellieren ist Programmieren im Großen: Man kann Software modellieren, die man im Unterricht sinnvoll nicht programmieren könnte.
Tipps
29.04.2015 28 Dr. Hanno Schauer
![Page 29: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/29.jpg)
Modellierungswerkzeuge
• Microsoft Visio
• yEd
• Violet UML Editor
Modellierungswerkzeuge +Entwicklungsumgebung
• BlueJ
• JavaEditor
• AmaterasUML/Eclipse
Tools für Analyse und Design
29.04.2015 29 Dr. Hanno Schauer
![Page 30: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/30.jpg)
Fragen?
Vielen Dank!
29.04.2015 30 Dr. Hanno Schauer
![Page 31: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/31.jpg)
Ergänzungen / Ausblick
29.04.2015 31 Dr. Hanno Schauer
![Page 32: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/32.jpg)
Modelle vergleichen: 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?
Beispiel / Übung
29.04.2015 32 Dr. Hanno Schauer
![Page 33: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/33.jpg)
Aus Klassendiagrammen lernen Beispiel „Delegationsproblematik“
11.11.2014 33 H. Schauer: Debugging-Aufgaben Was ist hiervon zu halten? ?
![Page 34: UML-Klassendiagramme als Werkzeug im Unterricht · Phasen der Software-Entwicklung genutzt – insb.: •Domänenmodelle (frühe Entwurfsphasen) •Implementierungsmodelle (späte](https://reader036.vdocuments.net/reader036/viewer/2022070113/605a73cdb55c85766a7bbbc3/html5/thumbnails/34.jpg)
… dann doch besser so
11.11.2014 34 H. Schauer: Debugging-Aufgaben