Praxis der Softwareentwicklung (PSE)

  • Typ: Vorlesung (V)
  • Semester: SS 2018
  • Dozent: Simon Bischof
    Prof. Dr.-Ing. Gregor Snelting
    Maximilian Wagner
  • SWS: 4
  • LVNr.: 2400150
Voraussetzungen Die Voraussetzungen werden in der Modulbeschreibung erläutert.
Anmerkung PSE und TSE müssen zusammen belegt werden.
Kurzbeschreibung Objektorientierte Entwicklung eines Softwaresystems im Team.
Arbeitsbelastung 6 SWS entspricht ca 180 Arbeitsstunden pro Teilnehmer, davon

ca 25 Std Erstellung des Pflichtenheftes

ca 50 Std Erstellung des Entwurfsdokument

ca 50 Std Implementierung

ca 50 Std integrierte Qualitätssicherung

ca 5 Std Erstellung/ Vorbereitung der Abschlusspräsentation.

Der gesamte Projektaufwand ist incl. TSE für ein 5-er Team also ca. 1200 Arbeitsstunden

Ziel Die Studierenden lernen, ein vollständiges Softwareprojekt nach dem Stand der Softwaretechnik in Teams von 4-6 Teilnehmern durchzuführen. Ziel ist es inbesondere, Verfahren des objektorientierten Software-Entwurfs und der Qualitätssicherung praktisch einzusetzen, Implementierungskompetenz umzusetzen, und arbeitsteilig im Team zu kooperieren. Die Teilnehmer erstellen ein Pflichtenheft von ca. 30 Seiten, ein Entwurfsmodell mit ca 75 Klassen, eine Entwurfsdokumentation von ca. 80 Seiten, eine validierte Implementierung mit ca. 10000 Zeilen Quelltext, eine Implementierungs-dokumentation von ca. 15 Seiten, und eine Qualitätssicherungsdokumentation von ca 25 Seiten. Die Teilnehmer stellen ihr Projekt in einer Abschlusspräsentation (ca 15 min) vor.

Dazu werden von den betreuenden Lehrstühlen Aufgabenstellungen vorbereitet, die einen ähnlichen Umfang und ein objektorientiertes Prozessmodell gemeinsam haben, jedoch inhaltlich die Forschungsinteressen des Lehrstuhls widerspiegeln („forschungsorientiertes Lernen“).Erfolgreiche Teilnehmer beherrschen die Erstellung eines Pflichtenheftes incl. GUI-Beispielen und Use Cases (Testfallszenarien), sowie Unterscheidung nach Muss- und Wunschfunktionalität. Sie beherrschen objektorientierten Entwurf mit UML, insbesondere Klassendiagramm und Sequenzdiagramm; sowie die Darstellung der Systemarchitektur, der Methoden-spezifikationen und die Umsetzung der Testfallszenarien im Entwurfsdokument. Siebeherrschen Techniken der Modularisierung (Kohäsion, Kopplung, Lokalitätsprinzip etc) sowie den Ersatz von Fallunterscheidung durch dynamische Bindung. Sie können Techniken der informellen und evtl. formalen Spezifikation anwenden und beurteilen, und Entwurf/Klassendiagramm anhand softwaretechnischer Kriterien begründen.

Erfolgreiche Teilnehmer beherrschen die arbeitsteilige Implementierung des Entwurfs durch profunde Kenntnis einer objektorientierten Sprache (vgl. Veranstaltung „Programmieren“), der dazugehörigen (aufgabenspezifischen) Werkzeuge undBibliotheken, und durchintegrierte Techniken zur Qualitätssicherung. Sie können ihr System mittels Komponententest (zB Junit), Überdeckungstests (zB JCov), Integrationstests und evtl. formalen Verifikation kritischer Komponenten validieren. Sie können Systemanforderungen bewerten und ggf. den Entwurf nachträglich anpassen. Sie kennen ggf. agile Techniken zur Implementierung (zB Pair Programming).Sie stellen Änderungen an Pflichtenheft und Entwurf im Implementierungsdokument dar, und bewerten die Systemqualität anhand von Statistiken (u.a. Testfall-Überdeckungsmaße) undAnalysen gefundener Fehler im Qualitätssicherungsdokument.

Die Teilnehmer präsentieren zum Schluss ihr Projekt so, dass sowohl ein einprägsamer Gesamteindruck des erstellten Systems entsteht, als auch softwaretechnische Details nebst Erfahrungen der Teamarbeit sichtbar werden.