Fakultät für Informatik

TU München - Fakultät für Informatik
Software- and Systems Engineering Research Group

TUM

Masterseminar im Wintersemester 2009/2010
Software Architecture in Depth
Lars Heinemann, Christian M. Neumann, Birgit Penzenstadler, Dr. Wassiou Sitou

 
Die Qualität der Softwarearchitektur ist einer der entscheidenden Erfolgsfaktoren bei der Entwicklung eines großen Systems; ein guter Softwarearchitekt spielt deshalb eine erfolgsentscheidende Rolle in jedem anspruchsvollen Projekt: Er hat die Gesamtübersicht über das System und gibt den Rahmen für die Implementierung vor. Um hier erfolgreich zu sein, benötigen Softwarearchitekten ein fundiertes und umfassendes Entwurfswissen, das über die reine Programmierung und einzelne Spezialgebiete hinausgeht.

Das Masterseminar Software Architecture in Depth baut inhaltlich auf der Vorlesung Softwarearchitektur auf. Das heißt: Wir setzen grundlegendes Wissen über Softwarearchitektur voraus.

Software Architecture in Depth verfolgt das Ziel wichtige Gebiete der Softwarearchitektur zu vertiefen. Insbesondere verschaffen wir uns zum einen einen grundlegenden Überblick über Gebiete, die nicht explizit in der Vorlesung behandelt wurden - zum Beispiel Architekturbewertung und Architekturrekonstruktion; zum anderen erarbeiten wir konkrete Architekturstile, wie beispielsweise den REST-Architekturstil.

Ausarbeitung: Die Ausarbeitung aller Themen wird am Ende des Semesters als Technischer Bericht publiziert.
Anmeldung: Bei Interesse an einem der Themen können sich Studierende ab sofort bei Birgit Penzenstadler per E-Mail anmelden.

Termine und Ablauf:

Mi, 15.07.2009
13 Uhr - 13:30 Uhr
Raum 00.09.055
Vorbesprechung und Themenvergabe.
In der Vorbesprechung wird ein Überblick über SAID gegeben (Folien).
Es werden organisatorische Fragen geklärt und die restlichen Themen vergeben.
 
Mi, 28.10.2009
11:30 Uhr - 13 Uhr
Raum 00.11.038
Vorstellung der Themen.
Anwesenheitspflicht für alle Teilnehmer.
In dieser Besprechung hält jeder Student einen Kurzvortrag (max. 5 Minuten),
bei dem er das Thema den anderen Teilnehmern vorstellt und die ausgewählte Literatur aufzeigt.
Danach wird die Recherche vertieft und ein Konzept für die Ausarbeitung erstellt.

Für die Folien gibt es eine TUM-Vorlage (per E-Mail).
Für die Ausarbeitung gibt es eine LaTeX-Vorlage (per E-Mail).

Hinweis/Ergänzung zur schriftlichen Ausarbeitung:
Es sind zwischen 15 und 20 Seiten pro Teilnehmer möglich - nicht mehr und nicht weniger.
 
Mi, 16.12.2009
12:30 Uhr - 16 Uhr
Raum 00.11.038
Konferenztag: 10 Minuten Vortrag und 5 Minuten Fragen.
Anwesenheitspflicht für alle Teilnehmer.
Dieser Zwischenvortrag gibt Einblick in den Fortschritt der Recherche und Ergebnisse.
Danach verfassen die Studierenden eine Ausarbeitung in Absprache mit dem Betreuer.
Die Ausarbeitung wird von den Betreuern begutachtet und kommentiert.
Die Kommentare fließen in eine überarbeitete Version ein.
 
Mi, 27.01.2010
24 Uhr
Abgabe der Unterlagen - per E-Mail an den Betreuer:
Schriftliche Ausarbeitung (LaTeX) und Vortragsfolien der Abschlusspräsentation.
 
Mi, 03.02.2010
9 Uhr - 17 Uhr
Raum 00.11.038
Konferenztag: 20 Minuten Vortrag und 10 Minuten Fragen.
Anwesenheitspflicht für alle Teilnehmer.
Es werden die fertigen Arbeiten präsentiert und mit allen Teilnehmern diskutiert.
Die Präsentationen dauern jeweils 20-25 Minuten.
Die Folien werden spätestens 7 Tage vor dem Vortragstermin mit dem Betreuer abgesprochen.
Im Anschluss an jeden Vortrag sind 10 Minuten Diskussion geplant.


Themen der Vorträge:

01.   State of the art of Architectural Approaches
  Vergleich verschiedener State of the art und Best Practice Ansätze.
  Bearbeiter: Tankred Hase (betreut von Birgit Penzenstadler).
Einstiegsliteratur: Garlan: Software architecture - a roadmap [Gar00]. Starke: Effektive Software-Architekturen [Sta08].
 
02. The Role of Architecture throughout the Development Process
  Übersicht und Vergleich, wie Architektur in Entwicklungsprozessen explizit berücksichtigt wird.
  Bearbeiter: Young Chul Jung (betreut von Birgit Penzenstadler).
Einstiegsliteratur: Standardwerke zu den Entwicklungsprozessen.
 
03. Decomposition Criteria for Architecture
  Welche Kriterien spielen bei der Erstellung von Architekturen eine Rolle?
  Bearbeiter: Robert Franz (betreut von Birgit Penzenstadler).
Einstiegsliteratur: Parnas, OO, Grundlagenbücher [BCK03, Sta08].
 
04. Component-based Software Development
  Entstehung und aktueller Stand der Forschung (State of the art).
  Bearbeiter: Kamil Fabisiewicz (betreut von Christian M. Neumann).
Einstiegsliteratur: Reussner, Hasselbring: Handbuch der Software-Architektur [RH08]. Siedersleben: Moderne Software-Architektur [Sie04].
 
05. Module Concepts in Programming Languages
  Modulare Konzepte von Programmiersprachen und Erweiterungen. Im Vergleich: Java, OSGi und Python.
  Bearbeiter: Grigory Markin (betreut von Christian M. Neumann).
Einstiegsliteratur: Java Language Specification [JLS09]. OSGi [OSG09]. Python [PYT09]. Wütherich et al.: OSGI Einführung mit Eclipse Equinox [WHKL08].
 
06. Mapping non-functional Requirements to Architecture
  Vorstellung der Ansätze von Bass et al. und Chung et al. zur Umsetzung von nichtfunktionalen Anforderungen in Architektur.
  Bearbeiter: Dong Li (betreut von Dr. Wassiou Sitou).
Einstiegsliteratur: Bass et al.: Software Architecture in Practice [BCK03]. Chung et al.: Non-functional Requirements in Software Engineering [CNYM00].
 
07. Analyzing Software Architectures
  Grundlagen und Methoden zur Bewertung von Architekturen.
  Bearbeiter: Marius Capota (betreut von Lars Heinemann).
Einstiegsliteratur: Reussner, Hasselbring: Handbuch der Software-Architektur [RH08]. Bass et al.: Software Architecture in Practice [BCK03].
 
08. Refactoring of Architecture
  Theorie und State of the art.
  Bearbeiter: Stefan Deser (betreut von Dr. Wassiou Sitou).
Einstiegsliteratur: Anti-Patterns [BMM98]. ASAAM [Tek04]. Ivkovic [IK06].
 
09. Architectural Styles
  Was ist ein Architekturstil? Vorstellung einiger konkreter Beispiele.
  Bearbeiter: Michael Weber (betreut von Lars Heinemann).
Einstiegsliteratur: Taylor et al.: Software Architecture: Foundations, Theory and Practice [TMD08].
 
10. Service-oriented Architectures
  Entstehung und aktueller Stand der Forschung (State of the art).
  Bearbeiter: Tankred Hase (betreut von Birgit Penzenstadler).
Einstiegsliteratur: Reussner, Hasselbring: Handbuch der Software-Architektur [RH08]. Engels et al.: Quasar Enterprise - Anwendungslandschaften serviceorientiert gestalten [EHH+08].

Die Einstiegsliteratur dient als Basis; es ist Teil der Aufgabe eine ausführliche Literaturrecherche durchzuführen.


Veranstalter und Ansprechpartner:

Veranstalter des Masterseminars ist der Lehrstuhl für Software and Systems Engineering von Prof. Manfred Broy.
Betreut wird Software Architecture in Depth von Lars Heinemann, Christian M. Neumann, Birgit Penzenstadler und Dr. Wassiou Sitou.
Ansprechpartner für die Homepage: Christian M. Neumann.
Ansprechpartner für organisatorische Fragen: Birgit Penzenstadler.


Einstiegsliteratur:

[BCK03] L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, second edition, 2003.
[BMM98] William Brown, Raphael Malveau, and Hays McCormick. Antipatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, 1998.
[CNYM00] Lawrence Chung, Brian A. Nixon, Eric Yu, and John Mylopoulos. Non-functional Requirements in Software Engineering. Kluwer Academic Publishers, 2000.
[EHH+08] Gregor Engels, Andreas Hess, Bernhard Humm, Oliver Juwig, Marc Lohmann, and Jan-Peter Richter.
Quasar Enterprise: Anwendungslandschaften serviceorientiert gestalten. dpunkt Verlag, 2008.
[Gar00] David Garlan. Software architecture: a roadmap. In ICSE 2000: Proceedings of the Conference on
The Future of Software Engineering, pages 91-101, New York, NY, USA, 2000. ACM Press.
[IK06] I. Ivkovic and K. Kontogiannis. A framework for software architecture refactoring using model transformations and semantic annotations.
In Proceedings of the 10th European Conference on Software Maintenance and Reengineering, 2006.
[JLS09] The java language specification. http://java.sun.com/docs/books/jls/, 2009.
[OSG09] OSGi - the dynamic module system for java. http://www.osgi.org/, 2009.
[PYT09] Python programming language. http://www.python.org/, 2009.
[RH08] Ralf Reussner and Wilhelm Hasselbring. Handbuch der Software-Architektur: Werkzeuge für Controlling und Management. dpunkt Verlag, 2nd edition, 2008.
[Sie04] Johannes Siedersleben. Moderne Software-Architektur: Umsichtig planen, robust bauen mit Quasar. dpunkt Verlag, 2004.
[Sta08] Gernot Starke. Effektive Software-Achitekturen. Hanser Verlag, 2008.
[Tek04] B. Tekinerdogan. Asaam: aspectual software architecture analysis method. In WICSA Proceedings, 2004.
[TMD08] Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley, 2008.
[WHKL08] Gerd Wütherich, Nils Hartmann, Bernd Kolb, and Matthias Lübken. Die OSGi Service Plattform: Eine Einführung mit Eclipse Equinox. dpunkt Verlag, 2008.

© Software & Systems Engineering Research Group
Sitemap |  Kontakt/Impressum
Letzte Änderung: 2010-02-03 18:47:16