Software Engineering (SE)

Belegbar Sommersemester, Wintersemester
ECTS-Punkte 10 (ca. 300 Stunden)
Fachgebiet Praktische Informatik

Ziel des Moduls

Software spielt in allen Lebensbereichen eine große Rolle und ist in vielen Produkten die kritische Komponente. Die Entwicklung von Software wird durch starken Wettbewerbsdruck, hohe Qualitätsansprüche und kurze Time-to-Market-Zeiten zunehmend anspruchsvoller. Ziel des Moduls ist es, für diese Problematik zu sensibilisieren sowie adäquate Vorgehensweisen, Methoden und Werkzeuge zu präsentieren und einzuüben. Im Vordergrund stehen dabei insbesondere Anforderungsanalyse, Entwurf und Qualitätssicherung mit objektorientierten Methoden. Einen weiteren Schwerpunkt bildet das Softwareprojektmanagement.

Inhalt des Moduls
  • Grundlagen der Softwaretechnik und Requirements Engineering
  • Objektorientierte Analyse und Entwurf
  • Systemmodellierung
  • Qualitätssicherung
  • Projektmanagement
Inhalt im Detail

SE 1: Grundlagen der Softwaretechnik und Requirements Engineering

  • Software und Software Engineering: Was ist Software Engineering? Welche Probleme möchte Software Engineering lösen? Wer ist am Software Engineering beteiligt? Ingenieurmäßiges Vorgehen; Arten des Einsatzes von Software Engineering; Zukunft
  • Übersicht über die Phasen des Entwicklungszyklus: Opportunistisches Vorgehen und seine Folgen; Wasserfallmodell
  • Prozessmodelle: Grenzen des Wasserfall-Modells; Alternative Konzepte; Fallbeispiel für die Wahl von Prozessmodellen
  • Requirements Engineering: Einführung; Vorgehen; Domänenanalyse; Lastenheft: Vision and Scope; Anforderungen; Pflichtenheft nach IEEE 830

SE 2: Objektorientierte Analyse und Entwurf

  • Objektorientierte Analyse: Modelle in Analyse und Entwurf; Klassen und Objekte; Beziehungen von Klassen; Domänenmodell; Modellierung der Dynamik; Analysemuster; Dialogentwurf
  • Architektur: Softwarearchitektur; Architekturmuster; Beispiel Bibliothek
  • Objektorientierter Entwurf: Von der Analyse zum Entwurf; Klassen im Entwurf; Strukturen und Verhalten; Vorgehen beim Entwerfen; Entwurfsmuster; Beispiel eines Entwurfs; Prinzipien guten Entwurfs; Verbesserung des Entwurfs durch Refactoring

SE 3: Systemmodellierung

  • Einführung: Einsatzziele von UML 2.0 Modellen in der Softwareentwicklung; Sprachaufbau der UML 2.0; UML 2.0 und Tools; Übersicht über die in der Spezifikation definierten Diagramme; UML 2.0 Modelle im Entwicklungsprozess
  • Klassendiagramme
  • Sequenzdiagramme
  • Klassendiagramme - erweiterte Konzepte und Paketdiagramme
  • Anwendungsfalldiagramm
  • Aktivitätsdiagramme
  • Zustandsautomaten

SE 4: Qualitätssicherung

  • Qualität
  • Manuelle Verfahren: Überblick über die Verfahren; Inspektion; Andere Verfahren; Vergleich und Einsatz der Verfahren
  • Werkzeuggestützte Analyse: Programmierrichtlinien; Typische Defekte; Hilfsmittel Kontrollflussgraph; Datenflussanomalieanalyse und abstrakte Interpretation; Code-Metriken
  • Testende Verfahren: Testende Verfahren; Funktionsorientierte Testverfahren; Strukturorientierte Testverfahren; Klassentest objektorientierter Systeme; Integrationstest; Systemtest; Abnahmetest
  • Management des QS-Prozesses: Planung; Testteam; Testprozess; Testdokumentation; Fehlermanagement; Fortschrittsverfolgung

SE 5: Projektmanagement

  • Einführung: Softwareprojekte; Projektmanagement; Projektorganisation; Projektziele und Projektaufgaben; Projektmanagementtools
  • Prozesse und Aktiviäten: Klassische Projektphasen und Aktivitäten; Vorgehensmodelle für Softwareentwicklungsprozesse; Anforderungen an die Manager von Softwareprojekten
  • Planungsaktivitäten: Voraussetzungen für die Projektplanung; Releaseplan und Iterationsplan erstellen; Iterationslänge und Teamproduktivität bestimmen; Puffer einrichten und Projekte mit mehreren Teams leiten
  • Kontrollaktivitäten: Releaseplan und Iterationsplan kontrollieren; Projektkommunikation
  • Aktivitäten zum Projektabschluss: Übergabe des Produkts; Erfahrungssicherung
  • Aktivitäten zur Teammotivation und Teamführung: Mitarbeitermotive; Teamzusammensetzung; Führungsstil

SE 6: Präsenzpraktikum
Das Präsenzpraktikum greift den Stoff der Kurseinheiten auf und bildet anhand einer komplexen Aufgabenstellung Fähigkeiten für die Abwicklung eines Softwareprojekts heraus.

Umfang des Moduls
  • 5 Lehrhefte mit Übungsaufgaben
  • Präsenzpraktikum (1 Woche)
Empfohlene Vorkenntnisse

Kenntnisse und Erfahrung in objektorientierter Programmierung - vorzugsweise in Java.

Herausgeber

Prof. Dr. Axel Buhl
Prof. Dr. Gero Wedemann
Hochschule Stralsund