+ All Categories
Home > Documents > Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering...

Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering...

Date post: 05-Apr-2015
Category:
Upload: grete-strobel
View: 105 times
Download: 1 times
Share this document with a friend
24
Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)
Transcript
Page 1: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik WS 2012/13

Prof. Albert Zündorf

Fachgebiet für Software EngineeringWilhelmshöher Allee 73

34121 Kassel(Raum 1332)

Page 2: Programmiermethodik WS 2012/13 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 SS2010 © 2010 Albert Zündorf, University of Kassel 2

Page 3: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 3

Organisatorisches

Umfang: 4 SWS teils Vorlesungen teils Übungen Übungsbetreuung: Andreas Scharf, Ruben Jubeh und Tutoren Ort und Zeit:

Vorlesung: Dienstags 12:00 - 13:30 Raum 1332 (Erste Vorlesung: 22.10.12)

Übung: Freitags 14:00 - 18:00 , Raum -1201 (CIP Pool unter der Mensa)(Erste Übung: Freitag, den 26.10.2011)

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/

Page 4: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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) Albert Zündorf: Rigorous Software Development with UML, Draft, Fachgebietsseiten Ruben Jubeh, Ulrich Norbisrath, Albert Zündorf: Story Driven Modeling

(status 99% drafted) http://seblog.cs.uni-kassel.de/category/currentterm/pm-ws1213/

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)

Page 5: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 5

Opt-out für Lehrbuch / Ergebnisse wissensch. Veröffentlichung (anonymisiert)

Page 6: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Wer seid ihr?

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 6

Page 7: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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 hier lernen?

5 Minuten Zeit

Page 8: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Was wollt ihr hier lernen:

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 8

Page 9: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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

Page 10: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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)

Page 11: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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

Page 12: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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);

Page 13: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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,- €

Page 14: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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);

Page 15: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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

Page 16: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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

Page 17: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 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

Page 18: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

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

Page 19: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

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.

Page 20: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

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.

Page 21: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

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

Page 22: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

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

Page 23: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

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

Page 24: Programmiermethodik WS 2012/13 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1332)

Programmiermethodik SS2010 © 2010 Albert Zündorf, University of Kassel 24

Ausblick

Objektdiagramme selber entwerfen

Klassendiagramm ableiten

Klassen in Java implementieren

Objektstrukturen mit Java Programmen erzeugen

OO Algorithmen bauen


Recommended