470 likes | 624 Views
Software( technik ) praktikum SS 2014. Wilhelm Schäfer Christopher Gerking, Anas Anis. Betreuung des Softwaretechnik- und Software-Praktikums 2013. Leitung Prof. Wilhelm Schäfer Organisation Christopher Gerking, Anas Anis E-Mail: swtpra-org@lists.upb.de Tutoren
E N D
Software(technik)praktikumSS 2014 Wilhelm Schäfer Christopher Gerking, Anas Anis Software(technik)praktikum: Vorlesung 1
Betreuung des Softwaretechnik- und Software-Praktikums 2013 • Leitung • Prof. Wilhelm Schäfer • Organisation • Christopher Gerking, Anas Anis • E-Mail: swtpra-org@lists.upb.de • Tutoren • Sergio Martins Pereira, Ralph Menne, Alexei Quapp, Roman Koppe, Sebastian Thiele • Programmierberatung • Ingo Budde Die Aufgabenstellung und Organisatorisches werden zum Ende der heutigen Vorlesung bekanntgegeben. 2 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1
Einführung Eigenschaften von Software Herausforderungen der Softwareentwicklung Ziele des Praktikums Software(technik)praktikum: Vorlesung 1
Programm vs. Software Software >> Programm Softwareentwicklung >>> Programmierung Ist sehr viel mehr als Ist sehr sehr viel mehr als Software(technik)praktikum: Vorlesung 1
Analogie bzgl. Programm vs. Software SoftwareSoftwareentwicklerSoftwareentwicklung 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. ProgrammProgrammiererProgrammieren 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 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 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
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
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
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 Software(technik)praktikum: Vorlesung 1
Software ist nie fertig 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) Software(technik)praktikum: Vorlesung 1
Analogie bzgl. Erfahrung sammeln Die Erfahrung eines großen, komplexen und verteilten Projektes kann nicht durch viele kleine Projekte erreicht werden. • SWTPra: Aufwand pro Teilnehmer • 10 ECTS = 300h Arbeit • 18h/Woche, ca. 3,5 Monate • SoPra: Aufwand pro Teilnehmer • 5 ECTS = 150h Arbeit • 9h/Woche, ca. 3,5 Monate SoPra SWTPra GP1-, GP2-Aufgaben 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? Bekannt aus der Vorlesung Softwareentwurf 14 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1
Prozessmodelle und Vorgaben 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 Software(technik)praktikum: Vorlesung 1
Notwendige Hard-Skills Hard-Skillshaben Sie zum Teil bereits in GP1, GP2, GP, DuA und SE erlernt. Im Praktikum werden Sie diese vertiefen. Software(technik)praktikum: Vorlesung 1
Notwendige Soft-Skills zur Interaktion mit Kollegen & Kunden Soft-Skills wollen wir im Praktikum trainieren. Software(technik)praktikum: Vorlesung 1
Softwareentwicklung ist Teamarbeit Software(technik)praktikum: Vorlesung 1
Einige beteiligte Rollen Kunde stellt (sich wechselnde ) Anforderungen und nimmt das fertige Produkt ab Domänen-analyst nimmt Kunden-anforderungen auf undverfolgt 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
Kommunikation zwischen den Rollen ist wichtig Software(technik)praktikum: Vorlesung 1
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
Fazit: Ziele des SWTPra / SoPra • Hard- und Soft-Skills in der Softwareentwicklung lernen und verbessern • Entwicklung eines Softwaresystems im Team • Anwendung des Gelerntenaus GP1, GP2, GP, 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
Organisatorisches & Aufgabenstellung Software(technik)praktikum: Vorlesung 1
Aufgabenstellung • Umsetzung einer verteilten Scrabble-Variante • Ähnlich zum Original • Ziel des Spiels • Maximalpunktzahl mit gültigen Wörter an Bord. • Unsere Variante • Konfigurierbare Spielsprache (Englisch, Deutsch, …) • Konfigurierbare Board. • Plattformen: Smartphone & PC • Spieler sind Menschen oder künstliche Intelligenz (KI) Software(technik)praktikum: Vorlesung 1 09.04.2014
Aufgabenstellung • Realisierung unterschiedlicher Komponenten • Leitet das Spiel • Verwaltet Clients • Überwacht Regel-einhaltung Zur Erstellung der Spielkonfigurationen Spielverlauf lässt sich via PC & Smartphone beobachten • Mensch spielt via PC oder Smartphone • Künstliche Intelligenz spielt vollautomatisch Software(technik)praktikum: Vorlesung 1 09.04.2014
Aufgabenstellung • Komponentenentwicklung findet verteilt statt • Schnittstellen werden gemeinsam definiert Komitee bestimmt die Interfaces Software(technik)praktikum: Vorlesung 1 09.04.2014
Vorgaben bzgl. Technologien und Entwicklungswerkzeuge 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 Software(technik)praktikum: Vorlesung 1
Artefakte und Ereignisse während des Praktikums Turnier Erhalten Sie diese Woche. Abschlusspräsentation Lastenheft Abschlussdokumentation Implementierungsabgabe Angebot Pflichtenheft Analyse- & Entwurfsdokument inkl. Interfacedefinition Messe 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- & Entwurfsdok. • 2.0: für Änderungen während der Implementierungsphase • Endabgabe und Turnier halten sich an Version 2.0 Software(technik)praktikum: Vorlesung 1
Ereignis: Messe • SWTPra- und SoPra-Gruppen tauschen kostenlos Komponenten • SWTPra-Gruppen geben ihren Spielkonfiguration und den Smartphone-Spieler ab • SoPra-Gruppen geben ihren Smartphone-Beobachter ab Vor der Messe Software(technik)praktikum: Vorlesung 1
Ereignis: Messe • SWTPra- und SoPra-Gruppen tauschen kostenlos Komponenten • SWTPras geben Spielkonfiguration und Smartphone-Spieler ab • SoPras geben ihren Smartphone-Beobachter ab • Termin: 23. Juni, 14:00 – 16:00, ZM1 Nach der Messe Software(technik)praktikum: Vorlesung 1
Ereignis: Turnier • SWTPra- und SoPra-Gruppen haben KI-Spieler erstellt • SWTPra- und SoPra-Gruppen haben (optional) PC-Spieler und -Beobachter erstellt • KI-Spieler der Teams treten gegeneinander an ZumTurnier SWTPra SoPra Software(technik)praktikum: Vorlesung 1
Wöchentliche Meetings • Jedes Team hat ein wöchentliches, zweistündiges Meeting • Es besteht Anwesenheitspflicht Software(technik)praktikum: Vorlesung 1
Aufgabe der Tutoren • Jedes Team hat einen Tutor, der bei den wöchentlichen Meetings dabei ist und per Mail erreichbar ist • Sie werden im Laufe der Woche erfahren, wer ihr Tutor 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
Entwicklerrollen der Teams Software(technik)praktikum: Vorlesung 1
Programmierberater und bereitgestellte Technik • Neben den Tutoren gibt es einen Programmierberater • Dieses Jahr: Ingo Budde • Berät Sie bei Programmierproblemen • Hat eine wöchentliche Sprechstunde • 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 38 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1
Praxis-Tutorials • Unsere Tutoren werden mind. fünf Tutorials anbieten • Eclipse • GEF • SVN • Testen • Latex • Jedes Team kann maximal ein Mitglied zu den Tutorials entsenden • Dieses Mitglied vermittelt das erlernte Wissen seinem Team. • Ort & Termin werden noch bekannt gegeben Software(technik)praktikum: Vorlesung 1
Abgabeplan • Abgabeplan definiert harte Deadlines • Enthält Vorschläge für den Beginn der jeweiligen Aufgaben Deadlines / Meilensteine Software(technik)praktikum: Vorlesung 1
Bestehen der Veranstaltung • Der Veranstalter kann Zwischenprüfungen mit einzelnen Studenten durchzuführen, falls Zweifel an der erfolgreichen Teilnahme der Veranstaltung bestehen. • Voraussetzung für das Bestehen • Aktive Teilnahme an der Projektarbeit • Anwesenheitspflicht bei den Gruppenmeetings eingehalten • Einhaltung der Abgabetermine • Klausur bestanden • TBA • Ggf. bestandene Zwischenprüfung Die Veranstaltung ist die Prüfung Software(technik)praktikum: Vorlesung 1
Anmeldung • Alle Teilnehmer mussten sich in PAUL zur Veranstaltung anmelden • Deadline ist Freitag • Prüfungsanmeldung muss im jeweiligen Prüfungssekretariat erfolgt sein • Ausnahme: bei Wirtschaftsinformatikern ist die Anmeldung in PAUL gleichzeitig die Prüfungsanmeldung • Gruppeneinteilungerfolgte über moreganize.ch • Wer bisher ohne Gruppe ist: bitte nach der Vorlesung melden • Ort der Meetings wird noch bekanntgegeben • Tutor wird noch bekannt gegeben • Ziel: Gleichmäßig große Gruppen 42 Software(technik)praktikum: Vorlesung 1 Software(technik)praktikum: Vorlesung 1
GruppeneinteilungAktueller Stand • SWTPra • Paul: 96 Teilnehmer • Moreganize: • 8 Gruppen á 12 Stud. • SoPra • Paul: 48 Teilnehmer • Moreganize: • 4 Gruppen á 12 Stud. Software(technik)praktikum: Vorlesung 1
Webseite http://www.hni.uni-paderborn.de/swt/lehre/softwaretechnik-software-praktikum-ss-2014/ • Regelmäßig besuchen • Regelmäßig E-Mails lesen Software(technik)praktikum: Vorlesung 1
IMT-Einstellungen Muss aktiviert sein, um Zugang zu den Repositories und Mailverteilern zu erhalten Software(technik)praktikum: Vorlesung 1
Viel Spaß beim diesjährigen Software(technik)-Praktikum! Software(technik)praktikum: Vorlesung 1
Webseite ist aktualisiert • Lastenheft, Vorlesungsfolien, Vorlagen, ... sind online Software(technik)praktikum: Vorlesung 1