Pflichtmodul
Diese Vorlesung kann von Studierenden des Studiengangs System Engineering als einzelne Veranstaltung besucht werden. Das zugehörige Projekt zur Veranstaltung (SWP 2) und das Software-Praktikum, das vom Dozenten der Vorlesung SWP betreut wird, kann nur von Studierenden des Studiengangs Informatik belegt werden.
Wahlbereich
Spezialisierungsbereich
Anzahl Semesterwochenstunden
CP
Angeboten in jedem
V
Ü
S
P
Proj.
∑
Anzahl
Software-Projekt-Vorlesung
4
1
0
0
0
5
5
angeboten in jedem SoSe
Software Project (Lecture)
Berechnung des Workloads
Vorgesehenes Semester 2. Semester
Lernziele
Das angestrebte Ergebnis des Moduls insgesamt ist es, dass die Studierenden die methodischen und praktischen Fähigkeiten erwerben, in einer Gruppe eine Software-Lösung für ein vorgegebenes nicht-triviales Problem zu finden und zu realisieren.
Die zu erwerbenden fachlichen Kompetenzen umfassen alle notwendigen Aktivitäten in der Softwareentwicklung von der Anforderungsanalyse und Aufwandsschätzung, über den Architekturentwurf bis zur Implementierung und den Test. Ebenso gehören dazu die begleitenden Managementaspekte der Gruppenarbeit, Entwicklungsprozess, Planung, qualitätssichernde Maßnahmen, die Dokumentation und das Konfigurationsmanagement.
Die zu erwerbenden sozialen Kompetenzen betreffen das Projektmanagement in einem Software-Projekt sowie die Gruppenarbeit über einen längeren Zeitraum und die hierfür notwendige Selbstkompetenz (Zeitmanagement, Übernahme von Verantwortung und mehr).
Lerninhalte
Die folgenden, für ein solches Projekt notwendigen Themen der Softwaretechnik werden in der Vorlesung vermittelt (die Notation UML wird in den entsprechenden Abschnitten als Mittel zum Zweck und im methodischen Zusammenhang eingeführt):
Allgemeines
was ist Software?
Eigenschaften von Software
Software-Lebenszyklus
die besondere Bedeutung der Wartung und Evolution
Softwarekrise
was ist Softwaretechnik?
Projektplanung
Grundbegriffe der Projektplanung
Vorgehen bei der Planung
Inhalt des Projektplans
Gantt-Diagramme und kritischer Pfad
Projektrisiken
Softwareentwicklungsprozesse
Rechtlicher Rahmen der Softwareentwicklung
Betriebsverfassungsgesetz (BetrVG), PersVG
Arbeitsschutzgesetze, Verordnungen (BildscharbV)
Datenschutzgesetze (BDSG)
Normen und Richtlinien
Anforderungsanalyse
Probleme bei der Anforderungsanalyse
Schritte der Anforderungsanalyse
Schritte der Ist-Analyse
Erhebungstechniken bei der Ist-Analyse (Fragebögen, Interview im Kontext) und Soll-Analyse (Varianten des Prototypings)
Aufbau und Inhalt der Anforderungsspezifikation
Produktqualitäten
Bedeutung und angestrebte Eigenschaften der Anforderungsspezifikation
Regeln für die Anforderungsspezifikation
Objektorientierte Anforderungsanalyse mit Anwendungsfällen, statischen und dynamischen Modellen mit Klassenbildung, die dem Liskovschen Substitutionsprinzip genügt (unter Verwendung der UML-Diagramme für Anwendungsfälle, Klassendiagramme, Interaktionsund Zustandsdiagramme)
Prüfung der Anforderungsspezifikation
Software-Prüfungen im Allgemeinen
Review-Varianten
Abläufe von Reviews
Review-Regeln
Review-Checklisten
Fallen und Gegenmittel
Software-Architektur
Was ist Software-Architektur?
Sichten (Views) und Blickwinkel (Viewpoints) der Software-Architektur
Einflussfaktoren für die Software-Architektur
Entwurf einer Software-Architektur
Architekturstile
Entwurfsmuster
Modularisierung, Separation of Concern, Abstraktion, Information Hiding
Architekturreview
Benutzungsschnittstellenentwurf
Software-Ergonomie: Aspekte und Qualitäten
Interaktionsformen und -mittel
Werkzeuge
Usability-Evaluationsverfahren
Einsatz von Datenbanken
Aufgaben und Architektur von Datenbanksystemen; externe, konzeptionelle und interne Ebene
Objektorientierte und relationale Datenbankmodellierung
Abbildung von objektorientierten Schemata auf relationale Datenbankschemata
Relationale Datenbanksysteme
Structured Query Language (SQL): Schemadefinition, Datenmanipulation, Anfragen, Integritätsbedingungen
Normalformen: 1NF, 2NF, 3NF
Implementierung
Feinentwurf (Klassen, Zustands- und Aktivitätsdiagramme der UML)