EN

Modul

Softwaretechnik II [M-INFO-100833]

Leistungspunkte
6
Turnus
Jedes Wintersemester
Dauer
1 Semester
Sprache
Deutsch
Level
3
Version
1

Verantwortung

Einrichtung

  • KIT-Fakultät für Informatik

Bestandteil von

Teilleistungen

Identifier Name LP
T-INFO-101370 Softwaretechnik II 6

Erfolgskontrolle(n)

Siehe Teilleistung

Qualifikationsziele

Softwareprozesse: Die Studierenden verstehen die evolutionäre und inkrementelle Entwicklung und können die Vorteile gegenüber dem sequentiellen Vorgehen beschreiben. Sie können die Phasen und Disziplinen des Unified Process beschreiben.

Requirements Engineering: Die Studierenden können die Begriffe des Requirements Engineering beschreiben und Aktivitäten im Requirements Engineering Prozess nennen. Sie können Anforderungen nach den Facetten Art und Repräsentation klassifizieren und beurteilen. Sie können grundlegende Richtlinien zum Spezifizieren natürlichsprachlicher Anforderungen anwenden und Priorisierungsverfahren für Anforderungen beschreiben. Sie können den Zweck und die Elemente von Anwendungsfall-Modellen beschreiben. Sie können Anwendungsfälle anhand ihrer Granularität und ihrer Ziele einordnen. Sie können Anwendungsfalldiagramme und Anwendungsfälle erstellen. Sie können aus Anwendungsfällen Systemsequenzdiagramme und Operationsverträge ableiten und können deren Rolle im Software-Entwicklungsprozess beschreiben.

Software-Architektur: Die Studierenden können die Definition von Software-Architektur und Software-Komponenten wiedergeben und erläutern. Sie können den Unterschied zwischen Software-Architektur und Software-Architektur-Dokumentation erläutern. Sie können die Vorteile expliziter Architektur und die Einflussfaktoren auf Architekturentscheidungen beschreiben. Sie können Entwurfsentscheidungen und -elemente den Schichten einer Architektur zuordnen. Sie können beschreiben, was Komponentenmodelle definieren. Sie können die Bestandteile des Palladio Komponentenmodells beschreiben und einige der getroffenen Entwurfsentscheidungen erörtern.

Enterprise Software Patterns: Die Studierenden können Unternehmensanwendungen charakterisieren und für eine beschriebene Anwendung entscheiden, welche Eigenschaften sie erfüllt. Sie kennen Muster für die Strukturierung der Domänenlogik, architekturelle Muster für den Datenzugriff und objektrelationale Strukturmuster. Sie können für ein Entwurfsproblem ein geeignetes Muster auswählen und die Auswahl anhand der Vor- und Nachteile der Muster begründen.

Software-Entwurf: Die Studierenden können die Verantwortlichkeiten, die sich aus Systemoperationen ergeben, den Klassen bzw. Objekten im objektorientierten Entwurf anhand der GRASP-Muster zuweisen und damit objektorientierte Software entwerfen.

Software-Qualität: Die Studierenden kennen die Prinzipien für gut lesbaren Programmcode, können Verletzungen dieser Prinzipien identifizieren und Vorschläge zur Lösung entwickeln.

Modellgetriebene Software-Entwicklung: Die Studierenden können die Ziele und die idealisierte Arbeitsteilung der modellgetriebenen Software-Entwicklung (MDSD) beschreiben und die Definitionen für Modell und Metamodell wiedergeben und erläutern. Sie können die Ziele der Modellierung diskutieren. Sie können die Model-driven Architecture beschreiben und Einschränkungen in der Object Constraint Language ausdrücken. Sie können einfache Transformationsfragmente von Modell-zu-Text-Transformationen in einer Template-Sprache ausdrücken. Sie können die Vor- und Nachteile von MDSD abwägen.

Eingebettete Systeme: Die Studierenden können das Prinzip eines Realzeitsystems und warum diese für gewöhnlich als parallele Prozesse implementiert sind erläutern. Sie können einen groben Entwurfsprozess für Realzeitsysteme beschreiben. Sie können die Rolle eines Realzeitbetriebssystems beschreiben. Sie können verschiedene Klassen von Realzeitsystemen unterscheiden.

Verlässlichkeit: Die Studierenden können die verschiedenen Dimensionen von Verlässlichkeit beschreiben und eine gegebene Anforderung einordnen. Sie können verdeutlichen, dass Unit Tests nicht ausreichen, um Software-Zuverlässigkeit zu bewerten, und können beschreiben, wie Nutzungsprofil und realistische Fehlerdaten einen Einfluss haben.

Domänen-getriebener Entwurf (DDD): Die Studierenden kennen die Entwurfsmetapher der allgegenwärtigen Sprache, der Abgeschlossenen Kontexte, und des Strategischen Entwurfs. Sie können eine Domäne anhand der DDD Konzepte, Entität, Wertobjekte, Dienste beschreiben, und das resultierende Domänenmodell durch die Muster  der Aggregate, Fabriken, und Depots verbessern. Sie kennen die unterschiedlichen Arten der Interaktionen zwischen Abgeschlossenen Kontexten und können diese anwenden.

Sicherheit (i.S.v. Security): Die Studierenden können die Grundideen und Herausforderungen der Sicherheitsbewertung beschreiben. Sie können häufige Sicherheitsprobleme erkennen und Lösungsvorschläge machen.

Voraussetzungen

Siehe Teilleistung

Inhalt

Die Studierenden erlernen Vorgehensweisen und Techniken für systematische Softwareentwicklung, indem fortgeschrittene Themen der Softwaretechnik behandelt werden.

Themen sind Requirements Engineering, Softwareprozesse, Software-Qualität, Software-Architekturen, MDD, Enterprise Software Patterns, Software-Entwurf, Software-Wartbarkeit, Sicherheit, Verlässlichkeit (Dependability), eingebettete Software, Middleware, und Domänen-getriebener Entwurf.

Empfehlungen

Siehe Teilleistung

Arbeitsaufwand

Vor- und Nachbereitungszeiten 1,5 h / 1 SWS

Gesamtaufwand:
(4 SWS + 1,5 x 4 SWS) x 15 + 30 h Klausurvorbereitung = 180 h = 6 ECTS