Programmiermethodik Übung 12 Best practices. Musterlösung Übung 10.
Programmiermethodik WS 2013/14 Prof. Albert Zündorf Fachgebiet für Software Engineering...
-
Upload
balthild-heiter -
Category
Documents
-
view
109 -
download
0
Transcript of Programmiermethodik WS 2013/14 Prof. Albert Zündorf Fachgebiet für Software Engineering...
Programmiermethodik WS 2013/14
Prof. Albert Zündorf
Fachgebiet für Software EngineeringWilhelmshöher Allee 73
34121 Kassel(Raum 1332)
Softwaretechnik:
"Das muss doch auch einfacher gehen!"
Produktivität und Qualität in der Softwareentwicklung
Methoden
Sprachen
Werkzeuge
Techniken
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 2
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 3
Organisatorisches
Umfang: 4 SWS teils Vorlesungen teils Übungen Übungsbetreuung: Stefan Lindel, Lennert Raesch Ort und Zeit:
Vorlesung: Dienstags 12:00 - 13:30 Raum 1332 (Erste Vorlesung: 22.10.2013)
Übung: Freitags 14:00 - 18:00 , Raum -1201 (CIP Pool unter der Mensa)(Erste Übung: Freitag, den 25.10.2013)
Prüfung: Pflichtübungsaufgaben (korrigiert, bepunktet, Voraussetzung zur
Klausur, Punktenachlass für die Klausur) Klausur in der vorlesungsfreien Zeit
Folienskript & Screen Videos: http://seblog.cs.uni-kassel.de/category/currentterm/pm-ws1213/
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 4
LiteraturGrundlegend: Helmut Balzert: Lehrbuch der Software-Technik (Bd.\ 1 und 2), Spektrum
Akademischer Verlag 1996 (viele Details, sehr umfassend, eher ein Nachschlagewerk)
Unified Modeling Language: Grady Booch, James Rumbaugh, Ivar Jacobson: The Unified Modeling
Language - User Guide, Addison Wesley 1999 (die haben das erfunden) Jochen Seemann, Jürgen Wolff von Gudenberg: Software Entwurf mit UML;
Springer 2000 (finde ich ziemlich gut) Martin Hitz, Gerti Kappel: UML @ Work, dpunkt.verlag (ziemlich gut) Ruben Jubeh, Ulrich Norbisrath, Albert Zündorf: Story Driven Modeling
http://www.amazon.de/Story-Driven-Modeling-Ulrich-Norbisrath/dp/1483949257ISBN: 1483949257 auch für Kindle
Hintergrund: Tom DeMarco: Der Termin (ISBN-10: 3446194320) Frederick P.\ Brooks: The Mythical Man Month, Addison Wesley 1975 (ist nur
kurz aber Gründungsmanifest der Softwaretechnik, unbedingt mal lesen)
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 5
Opt-out für wissensch. Veröffentlichung (anonymisiert)
Wer seid ihr?
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 6
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 7
Gruppenfrage
Bildet Gruppen von 4 bis 6 Leuten
Schreibt 4 bis 6 Stichworte auf zur Frage:
Was wollt ihr lernen?
5 Minuten Zeit
Was wollt ihr hier lernen:
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 8
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 9
Gliederung
1. Einführung
2. Objektdiagramme zur Analyse von Beispielen
3. Methodenentwurf
4. Test-First Prinzip
5. Story Driven Modeling
6. Zusammenfassung
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 10
1. Einführung
Ziele der Veranstaltung:
objektorientierte Modellierung
objektorientierte Szenarios
objektorientierte Programmierung
Test-First Prinzip
Unified Modeling Language
Story Driven Modeling
methodische Vorgehensweise zur Entwicklung größerer Programme (> 10000 LOC)
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 11
Modellierung: Kernkompetenz der Informatik
„Modellierung“
m = 3000 // Masse in Tonnenh = 1000 // Höhe in Kilometerv = 0 // Geschwindigkeit in m/secr = 1250 // Treibstoff in Tonnena = 0,6 // Mondanziehung in m/sec^2
F = m * a, s = v * t, . . .
„Reale Welt“
Modellierung
Interpretation
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 12
Modellierung: Kernkompetenz der Informatik
„Reale Welt“ „Modellierung“
Modellierung
Interpretation
4km
12km
4km
4km
1km
1km
1km
6km6km
8km4km
1
2
3 4
56
7
8dist[1,2] = 12;dist[1,3] = 4;dist[2,5] = 1;dist[2,4] = 1;dist[3,4] = 4;dist[4,2] = 1;dist[4,5] = 4;dist[5,6] = 6;dist[5,8] = 4;dist[6,7] = 6;dist[8,7] = 8;
result = findDist(1,7);
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 13
Modellierung: Kernkompetenz der Informatik
„Reale Welt“ „Computer Vorstellung“
konto42: A. Muster 400,- € 200,- €
Modellierung
Interpretation
automat: S-Bank1 1000,- € 800,- €
ort
kunde
auszahlung23: 4.3.09 200,- €
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 14
Modellierung: Kernkompetenz der Informatik
Variablen: m, h, v;
Records, Pointer und Arrays: dist[1, 2] = 12;
Objekte: bank.transfer(automat, kunde, datum, betrag);
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 15
Vorlesungsbeispiel: Study-Right University
Aufgabe:
Wegesuche
Handicaps:
Motivationspunkte
Pro Credit eine Motivation
214 Credits erreichen
Pflichtkurse
Modulabhängigkeiten
. . .
29
20 17 35
17
ExaminationBoard
Student Karli
Study-RightUniversity
32
23
mathcalculusstochastic
modeling modern arts
algebra
exam
philosophy
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 16
Modellierung: Kernkompetenz der Informatik
Modellieren: relevante Elemente der Problemstellung abbilden, damit
Programmierung erleichtern
konkrete Beispielmodelle: Objektdiagramme
abstrakte Konzeptmodelle: Klassendiagramme / Programme
Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 17
Abstraktion: Kernkompetenz der Informatik
Ziel der Softwareentwicklung: Klassen Programme
Datenstrukturen zur Speicherung aller Daten
Generelle Regeln zur Behandlung aller Fälle
Kommunikation: Kernkompetenz der Informatik
andere Disziplinen andere Abstraktionen: Bachelor Prüfungsordnung Bilanzierungsregeln Grundgesetzt, BGB, StGB, … Spielregeln für Gesellschaftsspiele
These:
Kommunikation auf abstrakter Ebene ist schwierig
Kommunikation anhand konkreter Beispiele ist leichter
Kommunikation: Kernkompetenz der Informatik
Bachelor Prüfungsordnung:
Abstrakt:
Die Inhalte der alten Bachelor Informatik Vorlesungen Mathe I und Mathe II wurden in der neuen Studienordnung Bachelor Informatik auf die Vorlesungen Algebra and Analysis neu aufgeteilt.
Konkret:
StudentIn Karli hat Mathe I und Mathe II und wechselt in die neue Prüfungsordnung. Algebra und Analysis werden anerkannt.
Kommunikation: Kernkompetenz der Informatik
Bilanzierungsregeln:
Abstrakt
nach Amerikanischem Recht können Erstellungskosten für Software als Passiva bilanziert werden
Konkret
Firma SimpleSoft in Palo Alto hat in 2010 mit Bob und Alice 24 Personenmonate an dem Programm DoesNotWork gearbeitet. SimpleSoft bewertet das Programm DoesNotWork daher mit 120000 $ und fügt diese Summe am Ende von 2010 dem Firmenvermögen hinzu.
Kommunikation: Kernkompetenz der Informatik
Grundgesetz:
Abstrakt
§5 Presse, Kunst und Wissenschaft sind frei. Zensur findet nicht statt.
Konkret
Albert Zündorf muss seine Arbeitszeiten nicht protokollieren, muss Morgens nicht vor 12 Uhr anfangen und Urlaub nicht genehmigen lassen.
Albert kann auch das Liebesleben der roten Riesenameise erforschen. (Und darüber Vorlesungen halten.)
Achtung: konkrete Beispiele sind schwer
Faustregel:
wenn es einen individuellen Namen hat, dann ist es konkret
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 22
Abstrakt / Regel Konkret / Beispiel
Professor Albert Zündorf
Student Karli
programmieren 3te Zeile der Methode find der Klasse StudyRightUni in Java 1.6 mit Eclipse Galileo am 18.4.2011 13:12 eingeben
Auto
Methodische Programmierung:
konkrete Beispiele für die Kommunikation mit Kunden und im Team
Ableitung abstrakter Programme aus konkreten Beispielen
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 23
Ausblick
Objektdiagramme selber entwerfen
Klassendiagramm ableiten
Klassen in Java implementieren
Objektstrukturen mit Java Programmen erzeugen
OO Algorithmen bauen
Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 24