Software(technik)praktikum SS 2015 Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Software(technik)praktikum SS 2015 Wilhelm Schäfer Christian Brenner, Christopher Gerking, Marie Christin Platenius Software(technik)praktikum: Vorlesung 1
Betreuung des Softwaretechnik- und Software-Praktikums 2015 Leitung Prof. Wilhelm Schäfer Organisation Christian Brenner, Christopher Gerking, Marie Christin Platenius E-Mail: swtpra-org@lists.upb.de Tutoren Benedikt Berghaus, Julian Heinovski, Karsten Jungnitsch, Roman Kober, Ralph Menne, Sergio Martins Pereira, Sebastian Strotmeyer, Tristan Wittgen Programmierberatung Sebastian Heuchler Die Aufgabenstellung und Organisatorisches werden zum Ende der heutigen Vorlesung bekanntgegeben. Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1 18.09.2018
Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Einführung Eigenschaften von Software Herausforderungen der Softwareentwicklung Ziele des Praktikums Software(technik)praktikum: Vorlesung 1
Softwaretechnikpraktikum: Vorlesung 1 Programm vs. Software Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Software >> Programm Softwareentwicklung >>> Programmierung Ist sehr viel mehr als Ist sehr sehr viel mehr als Software(technik)praktikum: Vorlesung 1 18.09.2018
Analogie bzgl. Programm vs. Software Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Software Softwareentwickler Softwareentwicklung 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. Programm Programmierer Programmieren Software(technik)praktikum: Vorlesung 1 18.09.2018
Softwareentwicklung ist … Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 … 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 18.09.2018
Softwaretechnikpraktikum: Vorlesung 1 Software ist komplex! Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Software kann heute nicht mehr von einer einzelnen Person „programmiert“ werden 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 18.09.2018
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 8 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1 18.09.2018
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) Automatisches Beweisen (Model Checking) 9 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1 18.09.2018
Charakteristika der Softwareentwicklung Software unterliegt häufigen Änderungen Re-Engineering notwendig 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 Reihenfolge schlecht, unten anfangen Software(technik)praktikum: Vorlesung 1 18.09.2018
Software ist nie fertig 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 Problem Softwareprodukt: guter Programmcode + explizites Wissen Entwicklungsprozesse sorgen für die systematische Persistenz Idee Wartbarkeit bereits bei der Entwicklung beachten Ausführliche Dokumentation (nachverfolgbare Anforderungen, Systemkontext, Entwurfsentscheidungen, Architektur) Sauberer Code und Code-Kommentare Testfälle Konsequenz Software(technik)praktikum: Vorlesung 1 18.09.2018
Software erfordert Erfahrung Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 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) Software(technik)praktikum: Vorlesung 1 18.09.2018
Analogie bzgl. Erfahrung sammeln Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Die Erfahrung eines großen, komplexen und verteilten Projektes kann nicht durch viele kleine Projekte erreicht werden. GP1-, GP2-Aufgaben SoPra SWTPra Software(technik)praktikum: Vorlesung 1 18.09.2018
Erfahrung anderer nutzen Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 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? Bekannt aus der Vorlesung Softwareentwurf 14 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1 18.09.2018 14
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 Software(technik)praktikum: Vorlesung 1 18.09.2018
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 18.09.2018
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 18.09.2018
Softwareentwicklung ist Teamarbeit Software kann nicht von Personen entwickelt werden, die Experte für alles sind Einzelne Personen können die Gesamtheit der Software nicht mehr verstehen Problem Aufgabenaufteilung auf mehrere Personen (Rollen) Jede Person muss nur Experte für ihre Aufgabe sein Idee Komplexität wird handhabbar & Produkt ist schneller entwickelt Vorteil Missverständnisse, Soft-Skills, Unvollständiges Wissen, ... Herausforderung Software-Management (Zeit und Qualität) und Entwicklungsprozesse einführen Konsequenz übersprungen Software(technik)praktikum: Vorlesung 1 18.09.2018
Einige beteiligte Rollen Kunde stellt (sich wechselnde ) Anforderungen und nimmt das fertige Produkt ab 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 Projektmanager verfolgt und leitet Projektverlauf Software(technik)praktikum: Vorlesung 1 18.09.2018
Kommunikation zwischen den Rollen ist wichtig Software(technik)praktikum: Vorlesung 1 18.09.2018
Mögliche Rollenverteilung im V-Modell Domänenanalyst Domänenanalyst Softwarearchitekt Plattformexperte Softwareentwickler Tester Im Praktikum sollen Sie möglichst viele Rollen trainieren. Software(technik)praktikum: Vorlesung 1 18.09.2018
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 Software(technik)praktikum: Vorlesung 1 18.09.2018
Organisatorisches & Aufgabenstellung Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Organisatorisches & Aufgabenstellung Software(technik)praktikum: Vorlesung 1 23
Aufgabenstellung 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 18.09.2018
Aufgabenstellung Realisierung unterschiedlicher Komponenten Zur Erstellung der Spielkonfigurationen Leitet das Spiel Verwaltet Clients Überwacht Ein-haltung der Regeln Mensch spielt via Smartphone Künstliche Intelligenz spielt vollautomatisch Spielverlauf lässt sich via PC & Smartphone beobachten Software(technik)praktikum: Vorlesung 1 18.09.2018
Aufgabenstellung Komponentenentwicklung findet verteilt statt Komitee bestimmt die Interfaces Software(technik)praktikum: Vorlesung 1 18.09.2018
Vorgaben bzgl. Technologien und Entwicklungswerkzeuge Software(technik)praktikum: Vorlesung 1 18.09.2018
Entwicklungsprozess & Rollen Das System wird nach dem V-Modell entwickelt Das Orga-Team ist der Kunde Sie übernehmen alle weiteren Rollen Software(technik)praktikum: Vorlesung 1 18.09.2018
Artefakte und Ereignisse während des Praktikums Erhalten Sie diese Woche. Turnier Abschlusspräsentation Lastenheft Abschlussdokumentation Angebot Implementierungsabgabe Pflichtenheft Analyse- & Entwurfsdokument inkl. Interfacedefinition Messe Software(technik)praktikum: Vorlesung 1 18.09.2018
Interface-Komitee Ziel Teilnehmer Versionen 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- & Entwurfsdok. 2.0: für Änderungen während der Implementierungsphase Endabgabe und Turnier halten sich an Version 2.0 Software(technik)praktikum: Vorlesung 1 18.09.2018
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 Software(technik)praktikum: Vorlesung 1 18.09.2018
Ereignis: Turnier KI-Spieler der Teams treten gegeneinander an Dazu kommen auch Spiel-Engine und Beobachter zum Einsatz Software(technik)praktikum: Vorlesung 1 18.09.2018
Wöchentliche Meetings Jedes Team hat ein wöchentliches, zweistündiges Meeting Es besteht Anwesenheitspflicht Anfangszeitpunkte PAUL entnehmen Mo Di Mi Do Fr 7:00 - 9:00 SoPra 3 E0.120 Ralph 9:00 -11:00 SWTPra 6 Julian SoPra 1 N2.228 Roman SoPra 2 Sebastian 14:00-16:00 SWTPra 1 SP2.0.128 Benedikt SWTPra 7 W2.110 Karsten SoPra 4 16:00-18:00 SWTPra 2 SWTPra 5 NW1.701 Tristan SWTPra 3 Sergio SWTPra 8 N1.101 18:00-20:00 SWTPra 4 Software(technik)praktikum: Vorlesung 1 18.09.2018
Softwaretechnikpraktikum: Vorlesung 1 Aufgabe der Tutoren Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Jedes Team hat einen Tutor, der bei den wöchentlichen Meetings 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 Software(technik)praktikum: Vorlesung 1 18.09.2018
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, 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 18.09.2018
Programmierberater und bereitgestellte Technik Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 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 36 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1 18.09.2018 36
Abgabeplan Abgabeplan definiert harte Deadlines Do 18.06.15 Deadlines / Meilensteine Software(technik)praktikum: Vorlesung 1 18.09.2018
Bestehen der Veranstaltung Der Veranstalter kann Zwischenprüfungen mit einzelnen Studenten durchzufü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 Software(technik)praktikum: Vorlesung 1 18.09.2018
Anmeldung Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 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 39 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1 18.09.2018 39
Gruppeneinteilung Aktueller Stand SWTPra 89 Teilnehmer SoPra 44 Teilnehmer Gruppe Termin Teilnehmer SWTPra 1 Mi, 14-16 11 SWTPra 2 Mi, 16-18 SWTPra 3 Do, 16-18 12 SWTPra 4 Do, 18-20 10 SWTPra 5 SWTPra 6 Mo, 9-11 SWTPra 7 SWTPra 8 SoPra 1 SoPra 2 Di, 9-11 SoPra 3 Do, 7-9 8 SoPra 4 Fr, 14-15 Software(technik)praktikum: Vorlesung 1 18.09.2018
Softwaretechnikpraktikum: Vorlesung 1 Webseite Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 https://www.hni.uni-paderborn.de/swt/lehre/softwaretechnik-softwarepraktikum-ss-2015/ Regelmäßig besuchen Regelmäßig E-Mails lesen Fragen und Diskussionen im Koala Software(technik)praktikum: Vorlesung 1 18.09.2018
IMT-Einstellungen Muss aktiviert sein, um Zugang zu den Repositories und Mailverteilern zu erhalten Software(technik)praktikum: Vorlesung 1 18.09.2018
Viel Spaß beim diesjährigen Software(technik)-Praktikum! Softwaretechnikpraktikum: Vorlesung 1 7. April 2008 Viel Spaß beim diesjährigen Software(technik)-Praktikum! Software(technik)praktikum: Vorlesung 1 43