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