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.

Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki? Feedback senden