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

UML-Klassendiagramme als Werkzeug im Unterrichtinformatik.bildung-rp.de/.../SW-150429-Schauer-SWT-3-UML.pdf · Blitzlicht 29.04.2015 Dr. Hanno Schauer 2 ? Was sind Ihre Erwartungen

  • Upload
    ngonga

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur

UML-Klassendiagramme als Werkzeug im Unterricht

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? ?

UML-Klassendiagramme: Sprachkonzepte

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

Grundlegende Sprachkonzepte

29.04.2015 5 Dr. Hanno Schauer

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).

!

29.04.2015 7 Dr. Hanno Schauer Was wird hier modelliert ? ?

Weitere Konzepte i

29.04.2015 8 Dr. Hanno Schauer

Weitere Sprachelemente können den Unterricht unterstützen. !

Vererbungs-beziehung

Abstrakte Klasse

Aggregation

Domänen vs. Implementierungsmodelle

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.

!

A

Implementierungsmodelle

• 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

Beispiel

29.04.2015 13 Dr. Hanno Schauer

Beispiel i Was wird hier modelliert ? ?

• 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

!

Gesucht:

Repräsentation von Rechtecken und Quadraten für ein Geometrie-Programm.

Entwurfsentscheidungen diskutieren Beispiel: Rechteck – Quadrat

29.04.2015 15 Dr. Hanno Schauer

1. Rechtecke sind spezielle Quadrate

2. Quadrate sind spezielle Rechtecke

Entwurf 1 + 2

29.04.2015 16 Dr. Hanno Schauer

3. Alles ist ein Rechteck

4. Alles ist ein Graphical Object

Entwürfe 3 + 4

29.04.2015 17 Dr. Hanno Schauer

Welcher Entwurf ist geeignet?

29.04.2015 18 Dr. Hanno Schauer

1. 2.

3.

4.

• 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

!

B

Implementierungsmodelle

• 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. !

• Ü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.

!

C

Software-Entwicklung

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

• 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

Zusammenfassung, Tipps und Tools

• 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

• 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

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

Fragen?

Vielen Dank!

29.04.2015 30 Dr. Hanno Schauer

Ergänzungen / Ausblick

29.04.2015 31 Dr. Hanno Schauer

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

Aus Klassendiagrammen lernen Beispiel „Delegationsproblematik“

11.11.2014 33 H. Schauer: Debugging-Aufgaben Was ist hiervon zu halten? ?

… dann doch besser so

11.11.2014 34 H. Schauer: Debugging-Aufgaben