Modulhandbuch MaTIN2012_Qualitätsgesteuerter Entwurf komplexer Softwaresysteme
Verantwortlich: Prof. Dr. Kreiser
Modul
Anerkennbare Lehrveranstaltung (LV)
Organisation
Bezeichnung |
Lang |
MaTIN2012_Qualitätsgesteuerter Entwurf komplexer Softwaresysteme |
MID |
MaTIN2012_QEKS |
MPID |
|
|
|
Zuordnung |
Studiengang |
MaTIN2012 |
Studienrichtung |
G |
Wissensgebiete |
SPI, SPP |
|
|
Einordnung ins Curriculum |
Fachsemester |
1-2 |
Pflicht |
|
Wahl |
G |
|
|
Version |
erstellt |
2012-02-06 |
VID |
1 |
gültig ab |
WS 2012/13 |
gültig bis |
|
|
Zeugnistext
de
Qualitätsgesteuerter Entwurf komplexer Softwaresysteme
en
Quality Controlled Development of Complex Software Systems
Unterrichtssprache
Deutsch oder Englisch
Modulprüfung
Form der Modulprüfung |
sMP |
50% (mündliche Prüfung) |
sMB |
50% (Seminarvortrag mit Verteidigung Seminarergebnis) |
Beiträge ECTS-CP aus Wissensgebieten |
SPI, SPP |
5 |
Summe |
5 |
Aufwand [h]: 150
Prüfungselemente
Vorlesung / Übung
Form Kompetenznachweis |
bÜA |
Präsenzübung und Selbstlernaufgaben |
Beitrag zum Modulergebnis |
bÜA |
unbenotet |
Spezifische Lernziele
Kenntnisse
- wesentliche Begriffe der qualitätsgesteuerten Entwicklung komplexer technischer Softwaresysteme diskutieren (PFK.1,PFK.2,PFK.4)
- Methodische Ansätze zur qualitätsgesteuerten Wiederverwendung von Softwareartefakten für den zielgerichteten Entwurf von Architekturen verteilter technischer Softwaresysteme diskutieren (PFK.1,PFK.2,PFK.4)
- Varianten der Wiederverwendung recherchieren
- Allgemeine Anforderungen an wiederverwendbare Softwareartefakte ableiten
- aus grundlegenden betriebswirtschaftlichen Entwicklungszielen, d.h. hinsichtlich Systemqualität, Entwicklungskosten und Entwicklungsdauer
- aus technischer Sicht, d.h. hinsichtlich Schnittstellen, Verhalten und Strukturen der Softwareartefakte
- aus Sicht der Entwicklungsprozesse, d.h. hinsichtlich Vorgehensmodell und Personalstrukturen
- Vorteile und Herausforderungen der Varianten der Wiederverwendung gegenüberstellen
- Erstellung verteilter technischer Softwaresysteme durch Wiederverwendung diskutieren
- Erstellung grundlegender struktur- und verhaltensbildender Architekturelemente
- Erstellung von Architekturelementen zur Verteilung und zur Implementierung von Nebenläufigkeit
- Layerarchitekturen
- Nebenläufigkeitsstrukturen zur Durchsatzoptimierung und Latenzzeitminimierung
- Ereignisprozessierung
- Prozesssynchronisation
- Threadsicherheit
- Vorgehen zur statischen Kombination (zur Übersetzungszeit) und zur dynamischen Kombination (zur Laufzeit) wiederverwendbarer Architekturelemente
- Aufbau, Nutzung, Vorteile und Herausforderungen von Verteilungsarchitekturen diskutieren (PFK.2,PFK.4)
- grundlegende Elemente und Strukturen von Komponentenarchitekturen diskutieren
- professionelle Systemabstraktionsschichten (Middleware) diskutieren
- Grundlagen "intelligenter und selbstanpassender" Softwarearchitekturen diskutieren
Fertigkeiten
- Wiederverwendbare Softwareartefakte zur Gestaltung komplexer Softwaresysteme einsetzen (PFK.4)
- Einsatzmöglichkeiten wiederverwendbarer Softwareartefakte aus Literaturquellen in englischer und deutscher Sprache ableiten und diskutieren
- wiederverwendbare Softwareartefakte zur Lösung von Aufgabenstellungen mit eingeschränktem inhaltlichen Fokus anwenden
- wiederverwendbare Softwareartefakte sinnvoll kombinieren, um wiederkehrende Aufgabenstellungen mit verbreitertem inhaltlichen Fokus zu lösen
- Verteilungsarchitekturen analysieren (PFK.2,PFK.4)
- Essenzielle Systemdienste erkennen, beschreiben, einordnen und und begründen
- Umgebungschnittstellen zur Vernetzung, Konfiguration und Aktivierung von Komponenten erkennen
- Schnittstellen zum Datenaustausch zwischen Komponenten erkennen
- Eigenschaften und Einsatzgrenzen von Kommunikationsprotokollen diskutieren
- Laufzeitverhalten ableiten
- sinnvolle Anwendungsbereiche aus den Architekturvorgaben ableiten
- Vorgehen zur Konstruktion von Anwendungen diskutieren (Anwendungsebene erkennen)
- Systemerweiterungspunkte finden (funktionale und strukturelle Parametrierungsebene erkennen)
- Verteilungsarchitekturen hinsichtlich Einsatzmöglichkeiten und struktureller Vorgaben vergleichen (PFK.4)
Exemplarische inhaltliche Operationalisierung
Wiederverwendung kann am Beispiel von Mustern und Musterkatalogen (White-Box-Reuse) und Komponenten- bzw. Frameworkarchitekturen (Black-Box-Reuse) diskutiert werden. Als Beispiele professioneller Komponentenarchitekturen zum Aufbau verteilter technischer Softwaresysteme können Object Request Broker Architekturen wie CORBA bzw. das echtzeitfähige Open Source Derivat TAO (The ACE ORB), OPC/UA, die Funktionsbausteinarchitektur industrieller Leitsysteme (nach EN61499) aber auch integrierte Frameworks wie MS .NET herangezogen werden. Als nächste Abstraktionsstufe, also Architekturen mit begrenzter Intelligenz zur Verfolgung abstrahierter Zielvorgaben und zur Selbstrekonfiguration durch fortwährende Analyse des System- und Umgebungszustands, können Multiagentensysteme untersucht werden.
Projekt
Form Kompetenznachweis |
bPA |
Entwicklung eines wiederverwendbaren Softwareartefakts für verteilte Softwaresysteme |
sMB |
Ergebnispräsentation zu bPA |
Beitrag zum Modulergebnis |
bPA |
unbenotet |
sMB |
zu bPA |
Spezifische Lernziele
Handlungskompetenz demonstrieren
- Softwareartefakt einer Verteilungsarchitektur für komplexe Softwaresysteme entwickeln (PFK.2,PFK.4,PSK.2)
- Projektierung in verteilten Teams mit agilem Vorgehensmodell durchführen
- umfangreiche Systemanalyse zur Aufgabe des Artefakts in der Verteilungsarchitektur durchführen
- Anforderungen an das Softwareartefakt ermitteln
- Softwareartefakt spezifizieren und modellieren
- Designprinzipien und Muster zum Erreichen definierter Qualitätsziele auswählen und begründen
- Schnittstellen-, Verhaltens- und Strukturmodelle iterativ herleiten
- Professionelles Modellierungswerkzeug zielgerichtet einsetzen
- Modelle verifizieren und bewerten, Modellfehler korrigieren und Modelle optimieren
- Softwareartefakt programmieren
- sinnvolle Prüfszenarien definieren und Softwareartefakt verifizieren
- Qualität des Softwareartefakts bewerten
- Arbeitsergebnisse des Teams kompakt und zielgruppengerecht präsentieren (PFK.7,PSK.1,PSK.3)
Exemplarische inhaltliche Operationalisierung
Entwicklung einer Softwarekomponente für eine echtzeitfähige Verteilungsarchitektur in C++. Die Komplexität und der erwartete Arbeitsumfang zur Lösung der Aufgabenstellung richten sich nach dem verfügbaren Zeitkontingent des Projektteams (abh. von der Teamgröße).
Seminar
Form Kompetenznachweis |
bLR |
Auswertung wissenschaftlicher Literatur im Hinblick auf vorgegebene Fragestellungen |
bFG |
wissenschaftlichen Diskurs zur vorgegebenen Fragestellung führen |
Beitrag zum Modulergebnis |
bLR |
benotet als Teil von sMB |
bFG |
benotet als Teil von sMB |
Spezifische Lernziele
Fertigkeiten
- methodische Ansätze zur Wiederverwendung von Softwareartefakten an praxisrelevanten Architekturkonzepten diskutieren (PFK.2,PFK.4,PFK.5,PSK.3)
- aus wissenschaftlichen Literaturquellen recherchieren
- inhaltlich hinsichtlich vorgegebener Fragestellungen analysieren und einordnen
- beispielhaft implementieren (je nach Umfang als Skelett bzw. als ablauffähiges Beispiel) und Implementierung begründen
Handlungskompetenz demonstrieren
- Ergebnisse inhaltlich zusammenfassen und als wissenschaftlichen Fachvortrag aufbereiten (PFK.7)
- Ergebnisse im Sinne eines Konferenzbeitrags als Handout zur Verfügung stellen (PFK.7,PSK.1)
- Ergebnisse vor Fachpublikum präsentieren und diskutieren (PSK.1,PSK.3)
Exemplarische inhaltliche Operationalisierung
anspruchsvolle Seminarthemen können aus den Gebieten Muster zum Aufbau der Architektur verteilter Softwaresysteme, professionelle Verteilungsarchitekturen, Multiagentensysteme oder fachlich angrenzenden Themengebiete definiert werden.