37
Institut f ¨ ur Theoretische Informatik ITI Wagner Thomas Bl ¨ asius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung Veit Batz Dennis Luxen Peter Sanders ITI Sanders www.kit.edu KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft Thomas Bl ¨ asius Andreas Gemsa Tamara Mchedlidze Dorothea Wagner ITI Wagner Praxis der Software-Entwicklung Entwicklung eines Frameworks f ¨ ur Graphenspiele INSTITUT F ¨ UR THEORETISCHE INFORMATIK · FAKULT ¨ AT F ¨ UR INFORMATIK

ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Veit BatzDennis LuxenPeter Sanders

ITI Sanders

www.kit.eduKIT – Universitat des Landes Baden-Wurttemberg undnationales Großforschungszentrum in der Helmholtz-Gemeinschaft

Thomas BlasiusAndreas Gemsa

Tamara MchedlidzeDorothea Wagner

ITI Wagner

Praxis der Software-EntwicklungEntwicklung eines Frameworks fur Graphenspiele

INSTITUT FUR THEORETISCHE INFORMATIK · FAKULTAT FUR INFORMATIK

Page 2: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ubersicht

1. Organisatorisches

2. Ablauf

Page 3: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Vorstellung der Teilnehmer

Wer seid ihr?

ss Namess Vorkenntnisse

Das sind wir...

Thomas Blasius Andreas Gemsa Tamara Mchedlidze

Page 4: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anmeldung

Zwei Module:ss Praxis der Softwareentwicklung – PSE (Pr.Nr. 529)ss Teamarbeit in der Software-Entwicklung – TSE(Pr.Nr.455)

Page 5: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anmeldung

Zwei Module:ss Praxis der Softwareentwicklung – PSE (Pr.Nr. 529)ss Teamarbeit in der Software-Entwicklung – TSE(Pr.Nr.455)

ss Prufungsanmeldung uber QISPOSss Anmeldezeitraum 23. April – 18. MaiDanach keine An- und Abmeldung mehr moglich.⇒ Aussteiger bekommen 5.0

Page 6: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

Programmieraufgaben ≈ 200 LOC

Page 7: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

Programmieraufgaben ≈ 200 LOC

Windows Vista ≈ 50.000.000 LOC

Page 8: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

Programmieraufgaben ≈ 200 LOC

Windows Vista ≈ 50.000.000 LOC

KDE core ≈ 4.200.000 LOC

Paint.NET ≈ 36.000 LOC

Linux kernel 3.2 ≈ 15.000.000 LOC

Mozilla Firefox ≈ 100.000 LOCMozilla Thunderbird ≈ 500.000 LOCmySQL ≈ 1.000.000 LOC

Page 9: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

Programmieraufgaben ≈ 200 LOC

Windows Vista ≈ 50.000.000 LOC

KDE core ≈ 4.200.000 LOC

Paint.NET ≈ 36.000 LOC

PSE – GraphGames Framework ≈ 10.000 LOC

Linux kernel 3.2 ≈ 15.000.000 LOC

Mozilla Firefox ≈ 100.000 LOCMozilla Thunderbird ≈ 500.000 LOCmySQL ≈ 1.000.000 LOC

Page 10: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Zieless Umsetzung eines vollstandigen Softwareprojekts nach

dem aktuellen Stand der Softwaretechnik

Page 11: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Zieless Umsetzung eines vollstandigen Softwareprojekts nach

dem aktuellen Stand der Softwaretechnik

ss Vorgehen nach Phasenmodellss Pflichtenheftss Entwurfss Implementierungss Validierungss Systemabnahme

Page 12: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Zieless Umsetzung eines vollstandigen Softwareprojekts nach

dem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Page 13: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Zieless Umsetzung eines vollstandigen Softwareprojekts nach

dem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Page 14: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Page 15: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Stufe 1: Schuler10 PRINT "HELLO WORLD"

20 END

Page 16: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Stufe 2: Das erste Studienjahrprogram Hello(input, output)

begin

writeln(’Hello World’)

end.

Page 17: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Stufe 4: Der erste Job#include <stdio.h>

void main(void)

{char *message[] = {"Hello ", "World"};int i;

for(i = 0; i < 2; ++i)

printf("%s", message[i]);

printf("\n");}

Page 18: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Stufe 5: Erfahrener Software-Entwickler#include <iostream.h>

#include <string.h>

class string

{private:

int size;

char *ptr;

public:

string() : size(0), ptr(new char(’\0’)) {};string(const string &s) : size(s.size)

{ptr = new char[size + 1];

strcpy(ptr, s.ptr);

};string()

{delete [] ptr;

};friend ostream& operator <<(ostream &, const string &);

string& operator=(const char *);

ostream &operator<<(ostream &stream, const string &s)

{return(stream << s.ptr);

};};

string& string::operator=(const char *chrs)

{if (this != &chrs)

{delete[] ptr;

size = strlen(chrs);

ptr = new char[size + 1];

strcpy(ptr, chrs);

}return *this;

}int main(void)

{string str;

str = "Hello World";

cout << str << endl;

return 0;

}

Page 19: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

Stufe 12: Mittleres Managementmail -s "Hello, world." bob@b12

Bob, could you please write me a program

that prints "Hello world." on the screen?

I need it by tomorrow.

Page 20: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

ss Teamarbeit

Page 21: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ziele

ss Implementierungskompetenz

ss Umsetzung eines vollstandigen Softwareprojekts nachdem aktuellen Stand der Softwaretechnik

ss Praktische Umsetzung von Verfahren desSoftwareentwurfs und der Qualitatssicherung

ss Prasentation

ss Teamarbeit

Page 22: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anforderungenss aktive Beteiligung in allen Phasen

Page 23: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anforderungenss aktive Beteiligung in allen Phasenss Anwesenheit an wochentlichen Terminen mit Betreuer

Page 24: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anforderungenss aktive Beteiligung in allen Phasenss Anwesenheit an wochentlichen Terminen mit Betreuerss Verwendung eines Versionsverwaltungssystems

Page 25: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anforderungenss aktive Beteiligung in allen Phasenss Anwesenheit an wochentlichen Terminen mit Betreuer

ss Abgabe aller geforderten Dokumentess Vorabversion am Vortag des wochentlichen Treffensss Fristgerechte Abgabe der finalen Versionenss Abgabe als pdfss Empfehlung: LATEX

ss Verwendung eines Versionsverwaltungssystems

Page 26: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anforderungenss aktive Beteiligung in allen Phasenss Anwesenheit an wochentlichen Terminen mit Betreuer

ss Abgabe aller geforderten Dokumentess Vorabversion am Vortag des wochentlichen Treffensss Fristgerechte Abgabe der finalen Versionenss Abgabe als pdfss Empfehlung: LATEXss Kolloquium nach jeder Phase (Termine nach Vereinbarung)ss Prasentation: Phasen-Ergebnisse, Prufungsgesprach

ss Verwendung eines Versionsverwaltungssystems

Page 27: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Anforderungenss aktive Beteiligung in allen Phasenss Anwesenheit an wochentlichen Terminen mit Betreuer

ss Abgabe aller geforderten Dokumentess Vorabversion am Vortag des wochentlichen Treffensss Fristgerechte Abgabe der finalen Versionenss Abgabe als pdfss Empfehlung: LATEXss Kolloquium nach jeder Phase (Termine nach Vereinbarung)ss Prasentation: Phasen-Ergebnisse, Prufungsgesprachss Gesamtnote ergibt sich ausss Qualitat abgegebener Dokumentess Kolloquienss Qualitat des Projekts

ss Verwendung eines Versionsverwaltungssystems

Page 28: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ubersicht

1. Organisatorisches

2. Ablauf

Page 29: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Your Task

Page 30: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Your Taskss Game Specification – general game class? metalanguage?

ss Data Structures and Graph Algorithms

ss Graphics

ss Input Model

Page 31: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Your Taskss Game Specification – general game class? metalanguage?

ss Data Structures and Graph Algorithms

ss Graphics

ss Input Model must have

Page 32: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Your Taskss Game Specification – general game class? metalanguage?

ss Data Structures and Graph Algorithms

ss Graphics

ss Input Model

ss Artificial Intelligence

ss Network

ss Tutorial

must have

Page 33: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Werkzeuge

JUNGJava Universal Network/Graph Framework

2

Page 34: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Geplanter Ablauf

KW Inhalt Abgabedatum16+17 Vorbesprechung

18 Projektbeginn17–20 Pflichtenheft 20.05.201221–24 Entwurf 17.06.201225–28 Implementierung 15.07.2012

(2) Klausurpause nach Wahl29–33 Validierung 19.08.2012

34 Interne Abnahme37 Abschlussveranstaltung

ss i11www.iti.uka.de → Lehre → Praxis der SoftwareentwicklungWebseite:

Page 35: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ablauf

ss Vorbereitung:ss Wochentlichen Termin vereinbaren (direkt im Anschluß!)ss Aufgabenstellung studierenss Versionsverwaltungssystem einrichten (GIT/SVN)ss Daten sichten, Werkzeuge kennenlernen:∗ Rational Rose/Umbrello, eclipse, CodeCover, jUnit∗ JUNG, Java2D

Page 36: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ablauf

ss Vorbereitung:ss Wochentlichen Termin vereinbaren (direkt im Anschluß!)ss Aufgabenstellung studierenss Versionsverwaltungssystem einrichten (GIT/SVN)ss Daten sichten, Werkzeuge kennenlernen:∗ Rational Rose/Umbrello, eclipse, CodeCover, jUnit∗ JUNG, Java2Dss Ablauf der Phasen:ss Wochentliche Treffen mit Betreuerss Vor jeder Phase: Schriftliche Aufgabenvereinbarungss Phase endet mit Abgabe des jeweiligen Dokuments

Page 37: ITI Wagner Dorothea Wagner Tamara Mchedlidze Andreas Gemsa

Institut fur Theoretische InformatikITI Wagner

Thomas Blasius, Andreas Gemsa, Tamara Mchedlidze · Praxis der Software-Entwicklung

Ablauf

ss Vorbereitung:ss Wochentlichen Termin vereinbaren (direkt im Anschluß!)ss Aufgabenstellung studierenss Versionsverwaltungssystem einrichten (GIT/SVN)ss Daten sichten, Werkzeuge kennenlernen:∗ Rational Rose/Umbrello, eclipse, CodeCover, jUnit∗ JUNG, Java2Dss Ablauf der Phasen:ss Wochentliche Treffen mit Betreuerss Vor jeder Phase: Schriftliche Aufgabenvereinbarungss Phase endet mit Abgabe des jeweiligen Dokuments

Arbeitsaufwand ca. 2 Tage/Woche