Lehrveranstaltungshandbuch Software Engineering Komponenten Muster


Verantwortlich: Prof.Dr. Kreiser

Lehrveranstaltung

Befriedigt Modul (MID)

Organisation

Version
erstellt 2013-04-29
VID 2
gültig ab WS 2012/13
gültig bis
Bezeichnung
Lang Software Engineering Komponenten Muster
LVID F07_SEKM
LVPID (Prüfungsnummer)

Semesterplan (SWS)
Vorlesung 2
Übung (ganzer Kurs)
Übung (geteilter Kurs)
Praktikum
Projekt 1
Seminar 2
Tutorium (freiwillig)
Präsenzzeiten
Vorlesung 30
Übung (ganzer Kurs)
Übung (geteilter Kurs)
Praktikum
Projekt 15
Seminar 30
Tutorium (freiwillig)
max. Teilnehmerzahl
Übung (ganzer Kurs)
Übung (geteilter Kurs)
Praktikum
Projekt 18
Seminar 30

Gesamtaufwand: 150

Unterrichtssprache

  • Deutsch, 80%
  • Englisch, 20%

Niveau

  • Master

Notwendige Voraussetzungen

  • Objektorientierte Programmierung, bevorzugt C++
  • Modellierung von Softwaresystemen mit der Unified Modeling Language (UML)
    • Klassendiagramme
    • Anwendungsfalldiagramme
    • Aktivitätsdiagramme
    • Sequenzdiagramme
    • Zustandsdiagramme
    • Paket- und Komponentendiagramme
  • iterative Vorgehensmodelle, z.B. SCRUM bzw. XP
  • grundlegende Softwarearchitekturmodelle
  • Kommunikationsmodelle in Softwaresystemen (OSI, TCPIP, Messaging)

Literatur

  • D. Schmidt et.al.: Pattern-orientierte Software-Architektur. Muster für nebenläufige und vernetzte Objekte (dpunkt.verlag)
  • Gamma et.al.: Design Patterns, (Addison-Wesley)
  • Martin Fowler: Refactoring, Engl. ed. (Addison-Wesley Professional)
  • U. Hammerschall: Verteilte Systeme und Anwendungen (Pearson Studium)
  • M. Born et. al.: Softwareentwicklung mit UML 2. Die "neuen" Entwurfstechniken UML 2, MOF 2 und MDA (Addison-Wesley)
  • Andreas Andresen: Komponentenbasierte Softwareentwicklung m. MDA, UML2, XML (Hanser Verlag)
  • T. Ritter et. al.: CORBA Komponenten. Effektives Software-Design u. Progr. (Springer)
  • Bernd Oestereich: Analyse und Design mit UML 2.3 (Oldenbourg)
  • OMG Unified Modeling Language Spec., www.omg.org/uml
  • I. Sommerville: Software Engineering (Addison-Wesley / Pearson Studium)
  • K. Beck: eXtreme Programming (Addison-Wesley Professional)
  • Ken Schwaber: Agiles Projektmanagement mit Scrum (Microsoft Press)

Dozenten

  • Prof.Dr.Kreiser

Wissenschaftliche Mitarbeiter

  • Dipl.-Ing. N. Kellersohn

Zeugnistext

Software Engineering mit Komponenten und Mustern

Kompetenznachweis

Form
sMP 50% (mündliche Prüfung)
sMB 50% (Verteidgung Seminarergebnis)

Aufwand [h]
sMP 10

Intervall: 2-3/Jahr


Lehrveranstaltungselemente

Vorlesung / Übung

Lernziele

Lerninhalte (Kenntnisse)
  • Begriffe
    • Wert einer technischen Software
    • verteiltes Softwaresystem, Nebenläufigkeit
    • Softwarequalität, Dienstgüte, Refactoring
    • Komplexität (algorithmische, strukturelle), Emergenz
    • Wiederverwendung (Re-Use), Symmetrie und Symmetrieoperationen, Abstraktion, Invarianten
  • Methodische Ansätze zur qualitätsgesteuerten Wiederverwendung
    • Varianten für White Box Reuse
    • Black Box Reuse
    • Grey Box Reuse (Wiederverwendungshierarchie)
    • Re-Use in automatisierungstechnischen Softwaresystemen
      • Determinismus
      • Vorteile und Herausforderungen
    • angepasste Vorgehensmodelle und Personalstrukturen
      • vorhersagbare Zielerreichung in Entwicklungsprojekten (Produktqualität, Kosten, Zeit)
      • arbeitsteilige Entwicklung, Wartung und Pflege von Softwaresystemen
  • Muster (Pattern)
    • Musterbeschreibung mit UML
    • grundlegende Architekturmuster
      • Erzeugungsmuster
      • Strukturmuster
      • Verhaltensmuster
      • klassenbasierte (statische) vs. objektbasierte (dynamische) Muster
    • grundlegende Muster für nebenläufige und vernetzte Echtzeitsysteme
      • Muster zur Kapselung und zur rollenbasierten Erweiterung von Layerarchitekturen
      • Muster für Nebenläufigkeitsstrukturen zur Durchsatzoptimierung und Latenzzeitminimierung
      • Muster zur verteilten Ereignisprozessierung
      • Muster zur Prozesssynchronisation
      • Muster für Threadsicherheit
    • Aufbau und Nutzung von Musterkatalogen, Mustersprachen
    • musterbasierter Entwurf komplexer Softwaresysteme
  • Komponenten und Frameworks
    • Designprinzipien
    • Schnittstellenarchitektur
    • aktive und passive Systemelemente
    • Entwurf, Programmierung und Test
    • Qualität
    • Konfiguration und Nutzung
  • Middlewaresysteme in Architekturen technischer Softwaresysteme
    • ORB-Architekturen am Beispiel CORBA und TAO
    • integrierte Systemplattformen am Beispiel MS .NET
  • Multiagentensysteme (MAS)
    • Architekturmodelle für Agenten
    • Kollaboration zwischen Agenten
    • Agentensprachen
    • Einsatzabwägung

Fertigkeiten
  • Muster zur Gestaltung komplexer Softwaresysteme einsetzen
    • Verwendungszweck, Einsatzgrenzen, invariante und parametrierbare Anteile von Mustern aus Literaturquellen in englischer und deutscher Sprache ableiten und diskutieren
    • Implementierungsskelette von Mustern nachvollziehen und auf Aufgabenstellungen mit eingeschränktem inhaltlichen Fokus transferieren
      • Vorteile objektorientierter Programmiersprachen diskutieren
      • wiederkehrende Aufgabenstellungen beim Entwurf komplexer SW-Systeme ableiten
      • Muster beispielhaft implementieren und Beispielimplementierungen prüfen
    • Muster sinnvoll kombinieren, um wiederkehrende Aufgabenstellungen mit verbreitertem inhaltlichen Fokus zu lösen
      • UML2-Notationen nutzen
      • Professionelles UML2-Entwurfswerkzeug für Round-Trip-Engineering nutzen
      • Integration anhand der Beispielimplementierungen der zu kombinierenden Muster durchführen
      • Integrationstest durchführen, Lösung bewerten und optimieren
    • Black-Box-Komponenten musterbasiert konstruieren
  • Komponentenbasierte Softwarearchitekturen analysieren
    • sinnvolle Anwendungsbereiche aus den Architekturvorgaben ableiten
    • Vorgehen zur Konstruktion von Anwendungen diskutieren (Anwendungsebene erkennen)
    • aktive und passive Systemelemente erkennen und Laufzeitverhalten ableiten
    • abstrakte Umgebungschnittstellen zur Vernetzung, Konfiguration und Aktivierung von Komponenten erkennen
    • abstrakte Anwendungsschnittstellen zum Datenaustausch erkennen
    • Systemerweiterungspunkte finden (funktionale und strukturelle Parametrierungsebene erkennen)
  • Verteilungsarchitekturen analysieren
    • Essenzielle Systemdienste erkennen, beschreiben, einordnen und und begründen
    • strukturgebenden Architekturartefakten sinnvolle Lösungsmuster zuordnen
    • sinnvolle Anwendungsbereiche aus den Architekturvorgaben ableiten
    • Vorgehen zur Konstruktion von Anwendungen diskutieren (Anwendungsebene erkennen)
    • Eigenschaften und Einsatzgrenzen von Kommunikationsprotokollen diskutieren
    • vorgesehene Systemerweiterungspunkte finden
  • Multiagentensysteme mit konventionellen Verteilungsarchitekturen vergleichen
    • Agent vs. Komponente
    • Architekturmodelle
    • Aktivierungsmechanismen
    • Verteilungsmechanismen
    • Kommunikationsprotokolle und Kollaborationsmechanismen
    • Einsatzgebiete und Einsatzgrenzen

Begleitmaterial

  • elektronische Vortragsfolien zur Vorlesung
  • elektronische Übungsaufgabensammlung
  • professionelles Entwicklungswerkzeug für Unified Modeling Language (UML2)

Besondere Voraussetzungen

  • keine

Besondere Literatur

  • keine

Besonderer Kompetenznachweis

Form
bÜA Präsenzübung und Selbstlernaufgaben

Beitrag zum LV-Ergebnis
bÜA unbenotet

Intervall: 1/Jahr

Projekt

Lernziele

Handlungskompetenz demonstrieren
  • Softwareartefakt einer Verteilungsarchitektur für komplexe Softwaresysteme entwickeln
    • 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 musterbasiert in UML2-Notationen iterativ herleiten
      • Professionelles UML2-Entwurfswerkzeug zielgerichtet einsetzen
      • Modelle verifizieren und bewerten, Modellfehler korrigieren und Modelle optimieren
    • Softwareartefakt in C++ programmieren
    • sinnvolle Prüfszenarien definieren und Softwareartefakt verifizieren
    • Qualität des Softwareartefakts bewerten
  • Arbeitsergebnisse des Teams kompakt und zielgruppengerecht präsentieren

Begleitmaterial

  • elektronische Projektaufgabe (Lastenheft)
  • professionelles Entwicklungswerkzeug für Unified Modeling Language (UML2)
  • professionelles Softwareentwicklungswerkzeug für C++

Besondere Voraussetzungen

  • grundlegende objektorientierte Programmierkenntnisse (C/C++)

Besondere Literatur

  • keine

Besonderer Kompetenznachweis

Form
bPA 3 Präsenztermine je 4h je Projektgruppe
sMB 20min Ergebnispräsentation zu bPA

Beitrag zum LV-Ergebnis
bPA Testat, unbenotet
sMB zu bPA

Intervall: 1/Jahr

Seminar

Lernziele

Fertigkeiten
  • methodische Ansätze zur Wiederverwendung von Softwareartefakten aus einem der Themengebiete Verteilungsmuster, Verteilungsarchitekturen und MAS sowie angrenzender Themengebiete diskutieren
    • 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
  • Ergebnisse im Sinne eines Konferenzbeitrags als Handout zur Verfügung stellen
  • Ergebnisse vor Fachpublikum
    • im Rahmen eines 20-30min Vortrags präsentieren
    • diskutieren

Begleitmaterial

  • elektronische Aufgabenstellungen zu Seminarthemen aus den Gebieten Verteilungsmuster, Verteilungsarchitekturen, MAS und fachlich angrenzender Themengebiete

Besondere Voraussetzungen

  • keine

Besondere Literatur

  • selbst recherchierte wissenschaftliche Literaturquellen

Besonderer Kompetenznachweis

Form
bLR Auswertung wissenschaftlicher Literatur im Hinblick auf vorgegebene Fragestellungen
bFG wissenschaftlichen Diskurs zur vorgegebenen Fragestellung führen

Beitrag zum LV-Ergebnis
bLR benotet als Teil von sMB
bFG benotet als Teil von sMB

Intervall: 1/Jahr

Topic-Revision: r6 - 11 Jan 2016, GeneratedContent
 
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