UML-Klassendiagramme Als Werkzeug Im Unterricht

Transcription

Dr. Hanno SchauerMons-Tabor-Gymnasium MontabaurUML-Klassendiagramme alsWerkzeug im Unterricht

Blitzlicht29.04.2015?In welcher Programmiersprache(n) unterrichten Sie?In welchem Umfang unterrichten Sie Objektorientierung?Was sind Ihre Erwartungen an diese Fortbildung?Dr. Hanno Schauer2

UML-Klassendiagramme:Sprachkonzepte

Übung zum EinstiegEin Pizza-Lieferdienst möchte seineBestellungen elektronisch verwalten.Welche Informationen muss das geplanteInformationssystem erfassen bzw. vorhalten?Modellieren Sie ein UML-Klassendiagramm.29.04.2015Dr. Hanno Schauer4

Grundlegende Sprachkonzepte29.04.2015Dr. Hanno Schauer5

Klasse: Klassenname Attribute MethodenUML-Klassendiagramme:Grundlegende Sprachkonzepte (1)Assoziation!29.04.2015Achtung: Assoziationen müssen bei der Implementierungübersetzt werden (i. d. R.Dr.zuAttributen).Hanno Schauer6

i?Was wird hier modelliert ?Dr. Hanno Schauer29.04.2015WeitereKonzepte7

re Sprachelemente können den!29.04.2015Unterricht unterstützen. Dr. Hanno Schauer8

Domänen vs.Implementierungsmodelle

ÜbersichtKlassendiagramme werden in unterschiedlichenPhasen der Software-Entwicklung genutzt – insb.: Domänenmodelle(frühe Entwurfsphasen) Implementierungsmodelle(späte Entwurfsphasen)!29.04.2015Werden im Schulunterricht in unterschiedlichenAufgabentypen genutzt.Dr. Hanno Schauer10

AImplementierungsmodelle

Domänenmodelle Modellieren die „Domäne“ einer Software ausAnwendersicht – insb.– Verwaltete Informationen– Zentrale Funktionalitäten Kommunikationsinstrument zwischen den Beteiligten– Programmierer– Anwender– Auftraggeber Abstraktionsebene:– Verzicht auf Besonderheiten einer Programmiersprache– Häufig unvollständige Modellierung29.04.2015Dr. Hanno Schauer12

?Was wird hiermodelliert ?iBeispielBeispiel29.04.2015Dr. Hanno Schauer13

Anwendung im Unterricht Gemeinsam modellieren(Gruppenarbeit, Plenum) Bestehende Modelle interpretieren(siehe vorangegangene Beispiele) Modelle vergleichen Entwurfsentscheidungen diskutieren! Domänenmodellierung istProgrammieren im Großen29.04.2015Dr. Hanno Schauer14

Entwurfsentscheidungen diskutierenBeispiel: Rechteck – QuadratGesucht:Repräsentation von Rechtecken undQuadraten für ein Geometrie-Programm.29.04.2015Dr. Hanno Schauer15

Entwurf 1 21. Rechtecke sindspezielle Quadrate29.04.20152. Quadrate sindspezielle RechteckeDr. Hanno Schauer16

Entwürfe 3 43. Alles ist ein Rechteck29.04.20154. Alles ist einGraphical ObjectDr. Hanno Schauer17

Welcher Entwurf ist geeignet?1.29.04.20152.4.3.Dr. Hanno Schauer18

Bewertung von Modellen Es gibt häufig verschiedene Lösungen für eineProblemstellung. Die Entscheidung für einen Entwurf wirkt sich aufnachfolgende Design- und Technologieentscheidungen aus.Diskussion von Entwürfen ist typische Aufgabe!aller Ingenieurs- und Technikfächer29.04.2015Dr. Hanno Schauer19

BImplementierungsmodelle

Implementierungsmodelle Spezifikation und Dokumentation vonSoftwarekomponenten. 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))!29.04.2015Besonderes Augenmerkgilt Softwareschnittstellen.Dr. Hanno Schauer21

Anwendung im Unterricht Übersetzungsaufgaben:Klassendiagramm - Code. Ergänzungsaufgaben:Klassendiagramme dokumentieren denbereitgestellten Code. Verteilte Entwicklung:Klassendiagramme spezifizieren die Softwareschnittstellen. (z. B. elektronischer Spieler)!29.04.2015Herausforderung:Assoziationen in Programmierkonzepteübersetzen.Dr. Hanno Schauer22

CSoftware-Entwicklung

IT g:Durchgängige Nutzung der Diagramme29.04.2015Analyse der Domäne DomänenmodellEntwurf: ImplementierungsmodellImplementierung: QuellcodeDr. Hanno Schauer24

Software-Entwicklung im Unterricht Modellierung ermöglichen schülerzentriertenZugang zu den Phasen der Softwareentwicklung Klassendiagramme sind intuitiver als(nur) Pflichten- und Lastenheft. Durchgängige Beispiele sind möglich – z. B.––––29.04.2015Freundesnetzwerk („Class emein: „Datengetriebene“ AnwendungenDr. Hanno Schauer25

Zusammenfassung, Tipps und Tools

UML-Klassendiagramme 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 Verwendungmöglich (Domänenmodell, Implementierungsmodell,Code)29.04.2015Dr. Hanno Schauer27

Tipps Klassendiagramme als Werkzeug im Unterrichtnutzen (nicht nur Klassendiagramme unterrichten) Verdeutlichen, dass man – je nach Zweck desModells – unterschiedlich präzise (und damitdurchgängig) modellieren kann. Modellieren ist Programmieren im Großen: Mankann Software modellieren, die man im Unterrichtsinnvoll nicht programmieren könnte.29.04.2015Dr. Hanno Schauer28

Tools für Analyse und DesignModellierungswerkzeugeModellierungswerkzeuge Entwicklungsumgebung Microsoft Visio BlueJ yEd JavaEditor Violet UML Editor AmaterasUML/Eclipse29.04.2015Dr. Hanno Schauer29

Vielen Dank!Fragen?29.04.2015Dr. Hanno Schauer30

Ergänzungen / Ausblick29.04.2015Dr. Hanno Schauer31

Beispiel / ÜbungModelle vergleichen:Erstelle ein UML-Klassendiagramm für dieMitgliederverwaltung von Sportvereinen.Modelliere die Klassen Verein, Person, Mitgliedund Vorstandsmitglied und verbinde sie sinnvollmit Assoziationen. Gibt es unterschiedliche Wege, dasModell korrekt zu erstellen?29.04.2015Dr. Hanno Schauer32

Aus Klassendiagrammen lernenBeispiel „Delegationsproblematik“11.11.2014?Was ist hiervon zu halten?H. Schauer: Debugging-Aufgaben33

dann doch besser so11.11.2014H. Schauer: Debugging-Aufgaben34

Violet UML Editor Modellierungswerkzeuge Entwicklungsumgebung BlueJ JavaEditor AmaterasUML/Eclipse Tools für Analyse und Design 29.04.2015 Dr. Hanno Schauer 29