Software(technik)praktikum SS 2010

© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Software(technik)praktikum
SS 2015
Wilhelm Schäfer
Christian Brenner, Christopher Gerking, Marie Christin Platenius
Software(technik)praktikum: Vorlesung 1
Betreuung des Softwaretechnikund Software-Praktikums 2015
 Leitung
 Prof. Wilhelm Schäfer
 Organisation
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Christian Brenner, Christopher Gerking, Marie Christin Platenius
 E-Mail: [email protected]
 Tutoren
 Benedikt Berghaus, Julian Heinovski, Karsten Jungnitsch, Roman
Kober, Ralph Menne, Sergio Martins Pereira, Sebastian
Strotmeyer, Tristan Wittgen
Die Aufgabenstellung und
 Programmierberatung
Organisatorisches werden
 Sebastian Heuchler
zum Ende der heutigen
Vorlesung bekanntgegeben.
Software(technik)praktikum: Vorlesung 1
08.04.2015
2
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Einführung
1. Eigenschaften von
Software
2. Herausforderungen der
Softwareentwicklung
3. Ziele des Praktikums
Software(technik)praktikum: Vorlesung 1
Programm vs. Software
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Ist sehr viel mehr als
Software >> Programm
Softwareentwicklung >>> Programmierung
Ist sehr sehr viel mehr als
Software(technik)praktikum: Vorlesung 1
08.04.2015
4
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Analogie bzgl. Programm vs.
Software
Wenn jemand nur Hütten
bauen kann, würden wir ihn
keinen Wolkenkratzer bauen
lassen. Wenn jemand dagegen
programmieren kann, lassen
wir ihn oft bedenkenlos
Software entwickeln.
Software
Softwareentwickler
Softwareentwicklung
Programm
Programmierer
Programmieren
Software(technik)praktikum: Vorlesung 1
08.04.2015
5
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Softwareentwicklung ist …
 …
deutlich mehr als Programmierung
 …
analytische und konzeptuelle Arbeit
 …
ein sozialer Prozess
 … eine Disziplin mit bewährten Konzepten, Methoden,
Notationen und Werkzeugen
 …
und immer wieder neuen Technologien
Software(technik)praktikum: Vorlesung 1
08.04.2015
6
Software ist komplex!
 Software kann heute nicht mehr von einer einzelnen Person
„programmiert“ werden
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Software kann nicht mehr nur von einer einzelnen Person in ihrer
Gesamtheit verstanden werden!
 In vielen Projekten und Produkten ist die Entwicklung der
Software ein maßgeblicher Kostenfaktor
 Entwicklungsaufwände von 10 oder 100 Personenjahren (PJ) sind
keine Seltenheit.
Software(technik)praktikum: Vorlesung 1
08.04.2015
7
Software ist komplex!
 Softwaresysteme müssen mehr und mehr Aufgaben erfüllen
 aufgrund von Kundenwünschen bzw. Marktanforderungen
 Software ist heute oft maßgeblicher Innovationstreiber
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Software-Systeme sind miteinander vernetzt
 Plattform-Interoperabilität (z.B. Smartphone & PC) notwendig
 Softwaresysteme bestehen typischerweise aus einer Vielzahl von
Komponenten
 Komponenten sind oft verteilt
 Kommunizieren über komplexe Protokolle
Software(technik)praktikum: Vorlesung 1
08.04.2015
8
Software ist komplex!
 Softwareprojekte sind heute meist interdisziplinär
 Eingebettete Systeme / Mechatronik
 Betriebliche Informationssysteme (Bank, Produktion, Logistik)
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Software muss oft sicherheitskritische Aufgaben erfüllen
 in Transportsystemen
 in medizinischen Geräten
 im Finanzbereich
 Ausführliche Analysen werden wichtiger & zugleich aufwändiger
 Manuelles Testen
 Automatisches Testen (JUnit)
 Automatisches Beweisen (Model Checking)
Software(technik)praktikum: Vorlesung 1
08.04.2015
9
Charakteristika der
Softwareentwicklung
 Software unterliegt häufigen Änderungen
 Re-Engineering notwendig
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Software unterliegt hohen Qualitätsmaßstäben (Korrektheit,
Robustheit, Wartbarkeit, Interoperabilität, ...)
 Softwareproduktion ist ein industrieller Prozess
 Kosten/Nutzen-Abschätzung sehr wichtig
 Eingesetzte Techniken
 Objektorientierter Entwurf
 Qualitätssicherung durch
•
•
•
•
Standardisierten Prozess und zugehörige Dokumente
Versions-/Konfigurationsverwaltung (z.B. Subversion)
Änderungskontrolle (z.B. Trac)
(Code-) Reviews
 Kosten-/Nutzen Analyse durch systematische Aufwandserfassung
Software(technik)praktikum: Vorlesung 1
08.04.2015
10
Software ist nie fertig
Problem
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
• Software lebt lange (Jahr-2000-Problem, Banksoftware > 40 Jahre)
und muss permanent gewartet werden bei stets hoher Qualität
• Wissen über die ausgelieferte Software (& deren Technologien) sinkt
Idee
• Softwareprodukt: guter Programmcode + explizites Wissen
• Entwicklungsprozesse sorgen für die systematische Persistenz
Konsequenz
• Wartbarkeit bereits bei der Entwicklung beachten
• Ausführliche Dokumentation (nachverfolgbare Anforderungen,
Systemkontext, Entwurfsentscheidungen, Architektur)
• Sauberer Code und Code-Kommentare
• Testfälle
Software(technik)praktikum: Vorlesung 1
08.04.2015
11
Software erfordert Erfahrung
 Softwareentwicklung erfordert viel Erfahrung!
 Diese Erfahrung
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 ... muss man selbst machen!
 ... wird im Software(technik)praktikum vermittelt!
 Unser Praktikum ist eine Kombination aus:
 Projektorientiertem Lernen
 Unterstützt durch Vorlesung(en)
Software(technik)praktikum: Vorlesung 1
08.04.2015
12
Analogie bzgl. Erfahrung
sammeln
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Die Erfahrung eines großen,
komplexen und verteilten
Projektes kann nicht durch viele
kleine Projekte erreicht werden.
GP1-, GP2-Aufgaben
Software(technik)praktikum: Vorlesung 1
SoPra
SWTPra
08.04.2015
13
Erfahrung anderer nutzen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Prozess- bzw.
Vorgehensmodelle
 sind die
„zusammengeronnenen“
Erfahrungen erfolgreicher
Softwareprojekte
 Beispiel: V-Modell
 Beschreiben zweckmäßiges
Vorgehen & passende
Dokumente
 Ermöglichen Wiederholbarkeit
und Kontrollierbarkeit
• Wann ist
• was
• wie zu tun?
Software(technik)praktikum: Vorlesung 1
Bekannt aus
der Vorlesung
Softwareentwurf
08.04.2015
14
Fähigkeiten von
Softwareentwicklern
 Heutige Entwickler müssen sehr gut ausgebildet sein und viele
Fähigkeiten besitzen
 Wir unterscheiden in
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Hard-Skills
• Fachkompetenzen
• Benötigt um selbstständig und eigenverantwortlich zu arbeiten
 Soft-Skills
• Soziale Kompetenzen
• Wichtig zur Interaktion mit dem Team und dem Kunden
Software(technik)praktikum: Vorlesung 1
08.04.2015
15
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Notwendige Hard-Skills
Programmieren
Abstrahieren &
Modellieren
Konzepte erarbeiten
& anwenden,
Alternativen bewerten
Lösungen
dokumentieren und
Notationen einsetzen
Technologien kennen
und schnell in
neue Technologie
einarbeiten
Kosten und Aufwände
abschätzen
Hard-Skills haben Sie zum Teil bereits in GP1, GP2, GPS,
DuA und SE erlernt. Im Praktikum werden Sie diese vertiefen.
Software(technik)praktikum: Vorlesung 1
08.04.2015
16
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Notwendige Soft-Skills zur
Interaktion mit Kollegen & Kunden
Zuhören und
Probleme verstehen
Probleme/Lösungen
kommunizieren
(auch in Form von
Dokumenten)
Argumentieren und
Kompromisse finden
Eigeninitiative
ergreifen &
Verantwortung
übernehmen
Eigene Stärken
kennen, einsetzen
und reflektieren
Stärken von anderen
erkennen und nutzen
Soft-Skills wollen wir im Praktikum trainieren.
Software(technik)praktikum: Vorlesung 1
08.04.2015
17
Softwareentwicklung ist
Teamarbeit
Problem
• Software kann nicht von Personen entwickelt werden, die Experte für alles sind
• Einzelne Personen können die Gesamtheit der Software nicht mehr verstehen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Idee
• Aufgabenaufteilung auf mehrere Personen (Rollen)
• Jede Person muss nur Experte für ihre Aufgabe sein
Vorteil
• Komplexität wird handhabbar & Produkt ist schneller entwickelt
Herausforderung
• Missverständnisse, Soft-Skills, Unvollständiges Wissen, ...
Konsequenz
• Software-Management (Zeit und Qualität) und Entwicklungsprozesse einführen
Software(technik)praktikum: Vorlesung 1
08.04.2015
18
Einige beteiligte Rollen
Kunde
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
stellt (sich wechselnde ) Anforderungen
und nimmt das fertige Produkt ab
Domänenanalyst
Softwarearchitekt
Softwareentwickler
Tester
Plattformexperte
nimmt Kundenanforderungen
auf und verfolgt
deren Einhaltung
konzipiert das
Gesamtsystem
programmiert
einzelne
Komponenten
der Software
erstellt
Testfälle und
führt diese
aus
konfiguriert die
Software für
die jeweilige
Plattform
Projektmanager
verfolgt und leitet Projektverlauf
Software(technik)praktikum: Vorlesung 1
08.04.2015
19
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Kommunikation zwischen den
Rollen ist wichtig
Software(technik)praktikum: Vorlesung 1
08.04.2015
20
Mögliche Rollenverteilung
im V-Modell
Domänenanalyst
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Domänenanalyst
Softwarearchitekt
Plattformexperte
Softwareentwickler
Tester
Im Praktikum sollen Sie möglichst viele Rollen trainieren.
Software(technik)praktikum: Vorlesung 1
08.04.2015
21
Fazit: Ziele des SWTPra / SoPra
 Hard- und Soft-Skills in der Softwareentwicklung lernen und
verbessern
 Entwicklung eines Softwaresystems im Team
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Anwendung des Gelernten aus GP1, GP2, GPS, SE und DuA
 Ausführung eines Softwareentwicklungsprozesses von der
Anforderungsdefinition bis zur Realisierung





Projektmanagement
Sammeln von Programmiererfahrung
Erstellen von sinnvollen Modellen und Dokumenten
Einsatz von Technologien und Werkzeugen
Qualitätssicherung
Software(technik)praktikum: Vorlesung 1
08.04.2015
22
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Organisatorisches &
Aufgabenstellung
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Umsetzung eines verteilten Fußball-Strategiespiels
• Ziel: Spieler so anweisen, dass sie den Ball in das gegnerische
Tor schießen
• Dies geschieht durch Veränderungen des unterliegenden Modells
• Laufaktionen & Schussaktionen
• Konfigurationsmöglichkeiten (Feldgröße, Anzahl Spieler, erlaubte
Maximaldistanz für Schussaktionen, …)
• Plattformen: Smartphone /
Tablet & PC
• Spieler sind Menschen
oder künstliche Intelligenz
(KI)
Software(technik)praktikum: Vorlesung 1
08.04.2015
24
Aufgabenstellung
 Realisierung unterschiedlicher Komponenten
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Zur Erstellung der
Spielkonfigurationen
Spielverlauf lässt sich
via PC & Smartphone
beobachten
Software(technik)praktikum: Vorlesung 1
• Leitet das Spiel
• Verwaltet Clients
• Überwacht Einhaltung der Regeln
• Mensch spielt via
Smartphone
• Künstliche Intelligenz
spielt vollautomatisch
08.04.2015
25
Aufgabenstellung
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Komponentenentwicklung findet verteilt statt
Komitee bestimmt
die Interfaces
Software(technik)praktikum: Vorlesung 1
08.04.2015
26
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Vorgaben bzgl. Technologien
und Entwicklungswerkzeuge
Software(technik)praktikum: Vorlesung 1
08.04.2015
27
Entwicklungsprozess & Rollen
 Das System wird nach dem V-Modell entwickelt
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Das Orga-Team ist der Kunde
 Sie übernehmen alle weiteren Rollen
Software(technik)praktikum: Vorlesung 1
08.04.2015
28
Artefakte und Ereignisse
während des Praktikums
Lastenheft
Erhalten Sie
diese Woche.
Angebot
Turnier
Abschlusspräsentation
Abschlussdokumentation
Implementierungsabgabe
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Pflichtenheft
Analyse- &
Entwurfsdokument
inkl. Interfacedefinition
Messe
Software(technik)praktikum: Vorlesung 1
08.04.2015
29
Interface-Komitee
 Ziel
 Definition der Interfaces zwischen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
• Spielkonfigurator & Spiel-Engine
• Server & Clients
 Teilnehmer
 je Team ein Mitglied
• Mehrheitsentscheidung
• Vorsitzender (leitet Komitee, von Beauftragten gewählt)
 Berater des Komitees: Programmierberater
 Versionen
 1.0: erste vorläufig finale Fassung für Analyse- & Entwurfsdok.
 2.0: für Änderungen während der Implementierungsphase
• Endabgabe und Turnier halten sich an Version 2.0
Software(technik)praktikum: Vorlesung 1
08.04.2015
30
Ereignis: Messe
 SWTPra- und SoPra-Gruppen tauschen kostenlos Komponenten
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 SWTPra-Gruppen geben ihren Spielkonfigurator und den PCBeobachter ab
 SoPra-Gruppen geben ihren Smartphone-Beobachter ab
Software(technik)praktikum: Vorlesung 1
08.04.2015
31
Ereignis: Turnier
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 KI-Spieler der Teams treten gegeneinander an
 Dazu kommen auch Spiel-Engine und Beobachter zum Einsatz
Software(technik)praktikum: Vorlesung 1
08.04.2015
32
Wöchentliche Meetings
 Jedes Team hat ein wöchentliches, zweistündiges Meeting
 Es besteht Anwesenheitspflicht
 Anfangszeitpunkte PAUL entnehmen
Mo
Di
Mi
Do
SoPra 3
E0.120
Ralph
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
7:00 - 9:00
9:00 -11:00
Fr
SWTPra 6 SoPra 1 SoPra 2
E0.120
N2.228
N2.228
Julian
Roman Sebastian
14:00-16:00
16:00-18:00
18:00-20:00
Software(technik)praktikum: Vorlesung 1
SWTPra 1
SP2.0.128
Benedikt
SWTPra 2
N2.228
Julian
SWTPra 7
W2.110
Karsten
SWTPra 5
NW1.701
Tristan
SoPra 4
E0.120
Roman
SWTPra 3 SWTPra 8
N2.228
N1.101
Sergio
Tristan
SWTPra 4
N1.101
Sergio
08.04.2015
33
Aufgabe der Tutoren
 Jedes Team hat einen Tutor, der bei den wöchentlichen
Meetings dabei ist und per Mail erreichbar ist
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Nicht die Aufgabe des Tutors
 die Arbeit machen (das macht das Team)
 die Gruppe leiten, das Meeting vorbereiten & moderieren (das
macht der Projektleiter)
 der Kunde sein (das ist das Orga-Team)
 Technikprobleme lösen (hierfür berät Sie der Programmierberater)
 Aufgabe des Tutors
 ein Berater und Coach sein (Consultant)
 Fragen klären
 ggf. auf Probleme hinweisen & Zwischenreviews durchführen
Software(technik)praktikum: Vorlesung 1
08.04.2015
34
Entwicklerrollen der Teams
Projektmanager
Domänenanalyst &
Architekturmanager
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Modellierungsexperte
Koordiniert Aufgabenverteilung, Projektplan, Agenda
(bei 12er Teams: 2 Rollen)
Koordiniert Pflichtenheft sowie Analyse und Entwurf
(bei 11er/12er Teams: 2 Rollen)
Experte für Metamodellierung, EMF, OCL, Entwurfsmuster,
Architekturmuster
Technologieexperte
Experte für Eclipse PDE, GEF/Graphiti, Android, JSON
Implementierungsmanager
Koordiniert Teilproduktimplementierung & Integration zum
Gesamtprodukt
Qualitätsmanager
Koordiniert Dokument- & Code-Reviews, betreut Bugtracker
Testmanager
Koordiniert Erstellung und Ausführung manueller und
automatischer Tests
Produktmanager
Koordiniert Abschlusspräsentation, Webseite, Messe
Werkzeugbeauftragter
Experte im Umgang mit Eclipse, Latex, SVN, Trac
Dokumentationsmanager
Koordiniert Endabgabe, Javadoc, Handbuch
Software(technik)praktikum: Vorlesung 1
08.04.2015
35
Programmierberater und
bereitgestellte Technik
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Neben den Tutoren gibt es einen Programmierberater






Dieses Jahr: Sebastian Heuchler
Berät Sie bei Programmierproblemen
Wöchentliche Sprechstunde auf Anfrage
Sonst nur über das Kommunikations-Forum Koala erreichbar
Bitte immer konkrete Fragen stellen
Bei Problemen bitte immer den problematischen Code und ggf.
Fehlermeldungen und Stacktraces angeben
 Jedes Team bekommt folgende Technik bereitgestellt
 eigenes Versionsverwaltungssystem (SVN)
 eigenen Bug- & Feature-Tracker (Trac)
 eigenen Mailverteiler
Software(technik)praktikum: Vorlesung 1
08.04.2015
36
Abgabeplan
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Abgabeplan definiert harte Deadlines
Do 18.06.15
Deadlines / Meilensteine
Software(technik)praktikum: Vorlesung 1
08.04.2015
37
Bestehen der Veranstaltung
 Der Veranstalter kann Zwischenprüfungen mit einzelnen
Studenten durchzuführen, falls Zweifel an der erfolgreichen
Teilnahme an der Veranstaltung bestehen.
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Voraussetzung für das Bestehen




Aktive Teilnahme an der Projektarbeit
Anwesenheitspflicht bei den Gruppenmeetings eingehalten
Einhaltung der Abgabetermine
Klausur bestanden
• Termin TBA
 Ggf. bestandene Zwischenprüfung
 Die Veranstaltung ist die Prüfung
Software(technik)praktikum: Vorlesung 1
08.04.2015
38
Anmeldung
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 Alle Teilnehmer mussten sich in PAUL zur Veranstaltung
anmelden
 Prüfungsanmeldung erfolgt in PAUL bzw. im jeweiligen
Prüfungssekretariat
 Gruppeneinteilung erfolgte ebenfalls über PAUL
 Ort der Meetings ist in PAUL einzusehen
 Ziel: Gleichmäßig große Gruppen
Software(technik)praktikum: Vorlesung 1
08.04.2015
39
Gruppeneinteilung
Aktueller Stand
 SWTPra
 89 Teilnehmer
 SoPra
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
 44 Teilnehmer
Software(technik)praktikum: Vorlesung 1
Gruppe
Termin
Teilnehmer
SWTPra 1
Mi, 14-16
11
SWTPra 2
Mi, 16-18
11
SWTPra 3
Do, 16-18
12
SWTPra 4
Do, 18-20
10
SWTPra 5
Mi, 16-18
11
SWTPra 6
Mo, 9-11
11
SWTPra 7
Mi, 14-16
11
SWTPra 8
Do, 16-18
11
SoPra 1
Mo, 9-11
12
SoPra 2
Di, 9-11
12
SoPra 3
Do, 7-9
8
SoPra 4
Fr, 14-15
12
08.04.2015
40
Webseite
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
https://www.hni.uni-paderborn.de/swt/lehre/softwaretechniksoftwarepraktikum-ss-2015/
• Regelmäßig besuchen
• Regelmäßig E-Mails lesen
• Fragen und Diskussionen
im Koala
Software(technik)praktikum: Vorlesung 1
08.04.2015
41
IMT-Einstellungen
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Muss aktiviert sein, um Zugang zu den
Repositories und Mailverteilern zu erhalten
Software(technik)praktikum: Vorlesung 1
08.04.2015
42
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn
Viel Spaß beim diesjährigen
Software(technik)-Praktikum! 
Software(technik)praktikum: Vorlesung 1