Informatik II: Modellierung Prof. Dr. Martin Glinz Kapitel

Download Report

Transcript Informatik II: Modellierung Prof. Dr. Martin Glinz Kapitel

Programmiermethodik SS 2011
Prof. Albert Zündorf
Fachgebiet für Software Engineering
Wilhelmshöher Allee 73
34121 Kassel
(Raum 1338)
Softwaretechnik:
"Das muss doch auch einfacher gehen!"
Produktivität und Qualität in der Softwareentwicklung

Methoden

Sprachen

Werkzeuge
Programmiermethodik SS2010
© 2010 Albert Zündorf, University of Kassel
2
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: 19.04.11)
Übung:
Freitags 14:00 - 18:00 ,
Raum -1201 (CIP Pool unter der Mensa)
(Erste Übung: Freitag, den 29.04.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-ss11/
Programmiermethodik SS2010
© 2010 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)

Albert Zündorf: Rigorous Software Development with UML, Draft,
Fachgebietsseiten

Ruben Jubeh, Ulrich Norbisrath, Albert Zündorf: Modelling with Objects
(status 40% drafted)
Hintergrund:

Frederick P.\ Brooks: The Mythical Man Month, Addison Wesley 1975 (ist
nur kurz aber Gründungsmanifest der Softwaretechnik, unbedingt mal
lesen)
Programmiermethodik SS2010
© 2010 Albert Zündorf, University of Kassel
4

Opt-out für Lehrbuch / Ergebnisse wissensch.
Veröffentlichung (anonymisiert)
Programmiermethodik SS2010
© 2010 Albert Zündorf, University of Kassel
5
Wer seid ihr?
Programmiermethodik SS2010
© 2010 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 hier lernen?

5 Minuten Zeit
Programmiermethodik SS2010
© 2010 Albert Zündorf, University of Kassel
7
Was wollt ihr hier lernen:
Programmiermethodik SS2010
© 2010 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 SS2010
© 2010 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 SS2010
© 2010 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 SS2010
© 2010 Albert Zündorf, University of Kassel
11
Modellierung: Kernkompetenz der Informatik
„Reale Welt“
„Modellierung“
Modellierung
2
12km
1
4km
3
Interpretation
Programmiermethodik SS2010
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;
© 2010 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 SS2010
© 2010 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 SS2010
© 2010 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 SS2010

Motivationspunkte

Pro Credit eine
Motivation

214 Credits erreichen

Pflichtkurse

Modulabhängigkeiten

...
modern arts
23
Wegesuche
32
philosophy
© 2010 Albert Zündorf, University of Kassel
15
Modellierung: Kernkompetenz der Informatik

Modellieren: relevante Elemente der Problemstellung
abbilden

was relevant ist hängt vom Zweck der Modellierung ab

konkrete Beispielmodelle: Objektdiagramme

abstrakte Konzeptmodelle: Klassendiagramme /
Programme
Programmiermethodik SS2010
© 2010 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 SS2010
© 2010 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 und kann z.B. im SS 2011 Montags,
Mittwochs und Donnerstags auch Zuhause arbeiten. (In
der vorlesungsfreien Zeit sowieso.)

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
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