Praxis der Softwareentwicklung (PSE)
- type: Vorlesung (V)
- semester: WS 18/19
-
lecturer:
Denis Lohner
Prof. Dr.-Ing. Gregor Snelting
Andreas Fried - sws: 4
- lv-no.: 2400065
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 | 7 LP entsprichen ca 210 Arbeitsstunden pro Teilnehmer, davon ca 30 Std Erstellung des Pflichtenheftes ca 60 Std Erstellung des Entwurfsdokument ca 60 Std Implementierung ca 50 Std integrierte Qualitätssicherung ca 10 Std Erstellung/ Vorbereitung der Abschlusspräsentation. Der gesamte Projektaufwand ist incl. TSE für ein 5-er Team also ca. 1350 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. Sie beherrschen 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 und Bibliotheken, und durch integrierte 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) und Analysen 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. |