Programmiermethodik WS 2013/14 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshö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 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 3 Literatur Grundlegend: 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/1483949257 ISBN: 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 4 Opt-out für wissensch. Veröffentlichung (anonymisiert) Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 5 Wer seid ihr? Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 6 Gruppenfrage Bildet Gruppen von 4 bis 6 Leuten Schreibt 4 bis 6 Stichworte auf zur Frage: Was wollt ihr lernen? 5 Minuten Zeit Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 7 Was wollt ihr hier lernen: Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 8 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 9 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 10 Modellierung: Kernkompetenz der Informatik „Reale Welt“ „Modellierung“ Modellierung m = 3000 // Masse in Tonnen h = 1000 // Höhe in Kilometer v= 0 // Geschwindigkeit in m/sec r = 1250 // Treibstoff in Tonnen a = 0,6 // Mondanziehung in m/sec^2 F = m * a, s = v * t, . . . Interpretation Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 11 Modellierung: Kernkompetenz der Informatik „Reale Welt“ „Modellierung“ Modellierung 2 12km 1 4km 3 Interpretation Programmiermethodik WS1314 1km 6 5 6km 6km 1km 1km 7 4km 4km 4km 4 8 8km dist[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; © 2013 Albert Zündorf, University of Kassel result = findDist(1,7); 12 Modellierung: Kernkompetenz der Informatik „Reale Welt“ „Computer Vorstellung“ Modellierung automat: S-Bank1 1000,- € 800,- € konto42: A. Muster 400,- € 200,- € ort auszahlung23: 4.3.09 kunde 200,- € Interpretation Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 13 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 14 Vorlesungsbeispiel: Study-Right University Examination Board Aufgabe: Study-Right University exam Handicaps: 17 29 modeling 20 stochastic calculus 17 math 35 algebra Student Karli Programmiermethodik WS1314 Motivationspunkte Pro Credit eine Motivation 214 Credits erreichen Pflichtkurse Modulabhängigkeiten ... modern arts 23 Wegesuche 32 philosophy © 2013 Albert Zündorf, University of Kassel 15 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 16 Abstraktion: Kernkompetenz der Informatik Ziel der Softwareentwicklung: Klassen Programme Datenstrukturen zur Speicherung aller Daten Generelle Regeln zur Behandlung aller Fälle Programmiermethodik WS1314 © 2013 Albert Zündorf, University of Kassel 17 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 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 Faustregel: wenn es einen individuellen Namen hat, dann ist es konkret Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 22 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