Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Software(technik)praktikum: Vorlesung 1
Eric Bodden, Ben HermannAndreas Dann, Christopher Gerking, Johannes Geismann, Philipp Schubert
Software(technik)praktikumSS 2017
Software(technik)praktikum: Vorlesung 1
Betreuung des Softwaretechnik- und Softwarepraktikums 2017
■ Leitung■ Prof. Dr. Eric Bodden, Dr. Ben Hermann
■ Organisation■ Andreas Dann, Christopher Gerking, Johannes Geismann, Philipp Schubert
■ E-Mail: [email protected]
■ Tutoren■ Christin Löer, Ewald Neufeld, Johannes Schürmeyer
■ Programmierberatung■ Mario Treiber
2Software(technik)praktikum: Vorlesung 1
Die Aufgabenstellung und Organisatorisches werden zum Ende der heutigen Vorlesung bekanntgegeben.
Software(technik)praktikum: Vorlesung 1
1. Eigenschaften von Software2. Herausforderungen der Softwareentwicklung3. Ziele des Praktikums
Einführung
Wie unterscheiden sich Softwareentwicklung und Programmieren?
4
Programm Software
löst eine Aufgabe löst eine Vielzahl von Aufgaben
besteht aus dem Programmcode besteht aus vielen Einzelteilen
kann von einer Personerstellt werden
wird von einemTeam erstellt
Überschaubar Potentiell nicht mehr überschaubar
Programmieren Entwickeln
Software(technik)praktikum: Vorlesung 1
Die Größe des Systems entscheidet…
5 Software(technik)praktikum: Vorlesung 1
Kleine AutomatisierungsaufgabeSmartphone-App
Internet ServiceEnterprise Application
Das richtige Werkzeug für die richtige Aufgabe
6
Software(technik)praktikum: Vorlesung 1
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
7
Software(technik)praktikum: Vorlesung 1
Software ist komplex!
■ Software kann heute nicht mehr von einer einzelnen Person „programmiert“ werden
■ Software kann nicht mehr nur von einer einzelnen Person in ihrer Gesamtheit verstandenwerden!
■ 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.
8
Software(technik)praktikum: Vorlesung 1
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
■ 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
9 8Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
Software ist komplex!■ Softwareprojekte sind heute meist interdisziplinär
■ Eingebettete Systeme / Mechatronik
■ Betriebliche Informationssysteme (Bank, Produktion, Logistik)
■ 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)
■ Automatische Schwachstellenanalysen
■ Automatisches Beweisen (Model Checking)
10 9Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
Charakteristika der Softwareentwicklung
■ Software unterliegt häufigen Änderungen
■ Re-Engineering notwendig
■ Software unterliegt hohen Qualitätsmaßstäben (Angriffssicherheit, 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. Git)
■ Änderungskontrolle (z.B. Trac)
■ (Code-) Reviews
■ Kosten-/Nutzen Analyse durch systematische Aufwandserfassung
11
Software(technik)praktikum: Vorlesung 1
Software erfordert Erfahrung
■ Softwareentwicklung erfordert viel Erfahrung!
■ Diese Erfahrung■ ... muss man selbst machen!■ ... wird im Software(technik)praktikum vermittelt!
■ Unser Praktikum ist eine Kombination aus:■ Projektorientiertem Lernen■ Unterstützt durch Vorlesung(en)
12
Ihre bisherigen Erfahrungen
13
GP1/GP2 Aufgaben
Ihre neue Aufgabe
Achtung! Sie erlernen diese Kenntnisse erst!
Software(technik)praktikum: Vorlesung 1
Erfahrung anderer nutzen
■ 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?
14 14Software(technik)praktikum: Vorlesung 1
Bekannt aus der Vorlesung
Softwareentwurf
Software(technik)praktikum: Vorlesung 1
Fähigkeiten von Softwareentwicklern
■ Heutige Entwickler müssen sehr gut ausgebildet sein und viele Fähigkeiten besitzen
■ Wir unterscheiden in
■ 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
15
Software(technik)praktikum: Vorlesung 1
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
16
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
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
17
Soft-Skills wollen wir im Praktikum trainieren.
Software(technik)praktikum: Vorlesung 1
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
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
18
Software(technik)praktikum: Vorlesung 1
Einige beteiligte Rollen
19
Projektmanagerverfolgt und leitet Projektverlauf
Domänen-analyst
nimmt Kunden-anforderungen auf und verfolgt deren Ein-haltung
Software-architekt
konzipiert das Gesamt-system
Software-entwickler
programmiert einzelne Komponenten der Software
Tester
erstellt Testfälle und führt diese aus
Plattform-experte
konfiguriert die Software für die jeweilige Plattform
Kundestellt (sich wechselnde ☺) Anforderungen und nimmt das fertige Produkt ab
Software(technik)praktikum: Vorlesung 1
Kommunikation zwischen den Rollen ist wichtig
20
Software(technik)praktikum: Vorlesung 1
Mögliche Rollenverteilung im V-Modell
21
Domänenanalyst
Softwarearchitekt
Softwareentwickler
Tester
Plattformexperte
Domänenanalyst
Im Praktikum sollen Sie möglichst viele Rollen trainieren.
Software(technik)praktikum: Vorlesung 1
Fazit: Ziele des SWTPra / SoPra■ Hard- und Soft-Skills in der Softwareentwicklung lernen und
verbessern
■ Entwicklung eines Softwaresystems im Team■ 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
22
Software(technik)praktikum: Vorlesung 1
Organisatorisches & Aufgabenstellung
Fragen
24
Fragen bitte am Ende!
Besteht Anwesenheitspflicht?
Wird die Klausur schwer?WTF?
Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
25
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
26
■ Spielaufbau
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
27
■ Spielvorbereitung
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
28
■ Spielablauf
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
29
■ Spielablauf
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
30
■ Spielablauf & Spielgewinn
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
■ Entwicklung eines verteilten Tsuro-Brettspiels
31
■ „Erweiteres“ Tsuro-Spiel■ mehr Wegfelder■ komplexeres Spielfeld
■ Verteilte Anwendung■ Client-Server-Architektur
■ Konfigurationsmöglichkeiten■ Spielfeld■ Anzahl / Typ Wegfelder
Software(technik)praktikum: Vorlesung 1
Aufgabenstellung
Zur Erstellung der Spielkonfigurationen
• Mensch spielt via Smartphone
• Künstliche Intelligenz spielt vollautomatisch
Spielverlauf lässt sich via PC & Smartphone beobachten
• Leitet das Spiel• Verwaltet Clients• Überwacht Ein-haltung der Regeln
32
Aufgabenstellung
Komitee bestimmt die Interfaces
33 Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
Vorgaben bzgl. Technologien und Entwicklungswerkzeuge
34
Software(technik)praktikum: Vorlesung 1
Entwicklungsprozess & Rollen§ Das System wird nach dem V-Modell entwickelt
§ Das Orga-Team ist der Kunde
§ Sie übernehmen alle weiteren Rollen
35
Software(technik)praktikum: Vorlesung 1
Artefakte und Ereignisse während des Praktikums
36
Messe
TurnierAbschlusspräsentation
Angebot
Pflichtenheft
Lastenheft
Analyse- & Entwurfsdokumentinkl. Interfacedefinition
ImplementierungsabgabeAbschlussdokumentation
Erhalten Sie diese Woche.
Software(technik)praktikum: Vorlesung 1
Interface-Komitee
■ Ziel■ Definition der Interfaces zwischen
■ 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- & Entwurfsdokumente■ 2.0: für Änderungen während der Implementierungsphase
■ Endabgabe und Turnier halten sich an Version 2.0
37
Ereignis: Messe
■ SWTPra- und SoPra-Gruppen tauschen kostenlos Komponenten
■ SWTPra-Gruppen geben ihren Spielkonfigurator und den PC-Beobachter ab
■ SoPra-Gruppen geben ihren Smartphone-Beobachter ab
38 Software(technik)praktikum: Vorlesung 1
Ereignis: Turnier
■ KI-Spieler der Teams treten gegeneinander an.
■ Dabei kommen auch Spiel-Engine und Beobachter zum Einsatz.
39 Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
Wöchentliche Meetings
§ Jedes Team hat ein wöchentliches, zweistündiges Meeting.§ Es besteht Anwesenheitspflicht.§ Anfangszeitpunkte PAUL entnehmen
§ Achtung: Beim ersten Termin beginnen einige Gruppen später!
40
Mo Di Mi Do Fr7:00 -9:00
SWTPra 3E2.310
Christin
SWTPra 9E2.316
Christin
SWTPra 7E2.310
Johannes
SWTPra 6E2.310Ewald
9:00-11:00
SWTPra 1N3.211Ewald
SoPra1E0.120
Johannes
SWTPra 8N4.232
JohannesSoPra 3E0.120
Christin
11:00-13:00
14:00-16:00
16:00-18:00
SWTPra 2E0.120Ewald
SoPra 2E0.120
Johannes
SWTPra 4N3.211Ewald
SWTPra 5N5.235
Christin
SWTPra 10E0.120
Christin
Software(technik)praktikum: Vorlesung 1
Aufgabe der Tutoren
■ Jedes Team hat einen Tutor, der für 45 Minuten bei den wöchentlichenMeetings dabei ist und per Mail erreichbar ist.
■ 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
41
Software(technik)praktikum: Vorlesung 1
Entwicklerrollen der Teams
Projektmanager Koordiniert Aufgabenverteilung, Projektplan, Agenda(bei 12er Teams: 2 Rollen)
Domänenanalyst & Architekturmanager
Koordiniert Pflichtenheft sowie Analyse und Entwurf (bei 11er/12er Teams: 2 Rollen)
Modellierungsexperte Experte für Metamodellierung, EMF, OCL, Entwurfsmuster, Architekturmuster
Technologieexperte Experte für Eclipse PDE, 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, Git, Trac
Dokumentationsmanager Koordiniert Endabgabe, Javadoc, Handbuch
42
Software(technik)praktikum: Vorlesung 1
Programmierberater und bereitgestellte Technik
■ Neben den Tutoren gibt es einen Programmierberater■ Dieses Jahr: Mario Treiber■ Berät Sie bei Technik- und Programmierproblemen■ Wöchentliche Sprechstunde: TBA■ Sonst nur über das Kommunikations-Forum in koaLA erreichbar■ Bitte immer konkrete Fragen stellen■ Bei Problemen bitte immer den problematischen Code und ggf.
Fehlermeldungen sowie Stacktraces angeben
■ Jedes Team bekommt folgende Technik bereitgestellt■ eigenes Versionsverwaltungssystem (Git)
■ inkl. Bug- & Feature-Tracker und Wiki■ eigenen Mailverteiler
43Software(technik)praktikum: Vorlesung 1
■ Abgabeplan definiert harte Deadlines
Software(technik)praktikum: Vorlesung 1
Abgabeplan
44
Deadlines / Meilensteine
Software(technik)praktikum: Vorlesung 1
Anmeldung
■ 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
■ Voraussetzung für die Teilnahme an der Veranstaltung sind vorhandene Prüfungsabschlüsse in■ Grundlagen der Programmierung 1■ Grundlagen der Programmierung 2■ Softwareentwurf
45Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
GruppeneinteilungAktueller Stand
■ SWTPra■ 113 Teilnehmer
■ SoPra■ 36 Teilnehmer
46
Gruppe Termin TeilnehmerSWTPra 1 Mo, 9-11 11SWTPra 2 Mo, 16-18 10SWTPra 3 Di, 7-9 12SWTPra 4 Mi, 16-18 12SWTPra 5 Do, 16-18 12SWTPra 6 Fr, 7-9 12SWTPra 7 Mi, 7-9 10SWTPra 8 Mo, 9-11 11SWTPra 9 Di, 7-9 11SWTPra 10 Do, 16-18 12SoPra 1 Mo, 9-11 10SoPra 2 Di, 16-18 12SoPra 3 Fr, 9-11 12SoPra 4 Aufteilen 2
Software(technik)praktikum: Vorlesung 1
Bestehen der Veranstaltung
■ Der Veranstalter kann Zwischenprüfungen mit einzelnen Studentendurchzuführen, falls Zweifel an der erfolgreichen Teilnahme an der Veranstaltung bestehen.
■ 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
47
Häufige Missverständnisse
48
§ Das Praktikum unterscheidet sich von den „üblichen“ Lehrveranstaltungen, die Sie bereits kennen.
§ Es erfordert daher eine andere Herangehensweise und Mentalität.
§ Legen Sie neue Maßstäbe an!
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (1)
49
Das V-Modell ist nichtmehr zeitgemäß, da esbei Google nicht zurAnwendung kommt.
Google verfolgtein andersartigesGeschäftsmodell.
Das V-Modell ist industrieller Standard für die EntwicklungsicherheitskritischerSoftwaresysteme.
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (2)
50
Können wir nichteinfach Dropbox benutzen?
Der Umgang mit einemVersionsverwaltungs-system ist industriellerAlltag und daherLehrinhalt des Praktikums.
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (3)
51
Warum gibt esSeitenlimits? Viel zu schreiben ist doch gut.
Seitenlimits gehörenzum Tagesgeschäft(z.B. bei der EinreichungwissenschaftlicherVeröffentlichungen).
Sich knapp und präzise auszudrückenist eine Kunst, die eszu lernen gilt.
Software(technik)praktikum: Vorlesung 1
52
Manuell zuprogrammieren ist doch viel einfacher,als Framework X zubenutzen.
Das Praktikum ist aucheine Lehrveranstaltung.
Es heißtSoftwaretechnikpraktikumund nichtProgrammierpraktikum.
SoftwaretechnikbedeutetingenieurmäßigesVorgehen bei der Softwareentwicklung.
Häufige Missverständnisse (4)
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (5)
53
Wir müssen unbedingtdie neuartigeTechnologie X benutzen, denn die hat viele Vorteile.
Wissen wir in der Regel J
Für das Praktikumnutzen wir marktüblicheTechnologien.
Kundenwünscheschließen oft eineAbwärtskompatibilität ein.Mit gegebenen Mittelnzurecht zukommen ist industrieller Alltag.
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (6)
54
Der Programmierberaterist unfähig, denn erkonnte unser Problem nicht lösen.
Nein.
Der Programmierberaterzeigt nurLösungsmöglichkeitenauf.
Lösungsmöglichkeitenmüssen selbstständigexploriert werden, ohneGarantie auf Erfolg.
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (7)
55
Der Programmierberaterist unfair, denn er gibt die Musterlösung nichtheraus.
Nein.
Wir führen ein Projektdurch.
Es gibt in der Regel keine Musterlösung!
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (8)
56
In der Abschlusspräsentationzeigen wir unser wahresGesicht und geben der Orga zurück, was sieuns angetan hat!
Keine gute Idee.
Die Präsentation dientals Projektabschlussund wird entsprechendbewertet.
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (9)
57
In der Abschlusspräsentationweisen wir unsgegenseitig die Schuldzu.
Keine gute Idee.
Bitte als Team auftreten!
Selbstreflexion ist nur eineinzelner Bestandteil der Präsentation.
Software(technik)praktikum: Vorlesung 1
Häufige Missverständnisse (10)
58
Der Zeitaufwand ist viel höher als beiVorlesung X.
Ja. Siehe ECTS.
Der tatsächliche Aufwandist stark abhängig von der Selbstorganisationinnerhalb der Gruppe.
Software(technik)praktikum: Vorlesung 1
Webseite
59
https://www.hni.uni-paderborn.de/swt/lehre/softwaretechnik-softwarepraktikum-ss-2017
• Fragen und Diskussionenim koaLA
• Regelmäßig besuchen• Regelmäßig E-Mails lesen
Software(technik)praktikum: Vorlesung 1
Software(technik)praktikum: Vorlesung 1
IMT-Einstellungen
60
Muss aktiviert sein, um Zugang zu den Repositories und Mailverteilern zu erhalten.
https://sp.upb.de
GitLab
61
https://git.cs.uni-paderborn.de
Erstmaliger Login aktiviert Dienstnutzung
Software(technik)praktikum: Vorlesung 1
Viel Spaß beim diesjährigenSoftware(technik)-Praktikum! J
… und bis morgen um 18:00 Uhr!