© 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
© Copyright 2024 ExpyDoc