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
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
Wissenschaftliche Mitarbeiter
Zeugnistext
Software Engineering mit Komponenten und Mustern
Kompetenznachweis
Form |
sMP |
50% (mündliche Prüfung) |
sMB |
50% (Verteidgung Seminarergebnis) |
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
Besondere Literatur
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
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
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
Das Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki?
Feedback senden