Softwarearchitekturen (auf Englisch)
|
Veranstalter::
|
Hans-Werner Sehring |
|
Dauer:
|
2 h Vorlesung pro Woche + 1 h Übung |
|
ECTS Credits:
|
-- |
|
Periodizität:
|
Jedes Sommersemester |
|
Scheinvergabe:
|
Klausur am Semesterende |
|
English Version |
| Hintergrund und Motivation |
Softwareentwickler benutzen architekturelle Muster zur Strukturierung und
Organisation von Softwaresystemen. In dieser Vorlesung werden Konzeption und
Verwendung von Softwarearchitekturen als Ingenieursdisziplin vorgestellt und
in der Übung vertieft. Der Schwerpunkt liegt auf angewandten erfolgreichen
Architekturmodellen und Vorgehensweisen aus der Perspektive objektorientierter
Softwareentwicklung.
Als primäres Ziel dieser Veranstaltung lernen Studenten die Herangehensweise
an und Betrachtung von Softwaresystemen aus einer architekturellen Perspektive.
Am Ende der Verstaltung sollen Studenten in der Lage sein
- architekturelle Stile in existierenden Softwaresystemen zu erkennen,
- Softwarearchitekturen präzise beschreiben zu können,
- zu einem Problem sinnvolle architekturelle Lösungsalternativen zu entwickeln
und diese zu bewerten,
- kommerzielle Werkzeuge und Softwarekomponenten aus einer architekturellen
Perspektive zu bewerten und dazu
- objektorientierte Modelle und Werkzeuge zu nutzen.
Studenten, die an dieser Veranstaltung teilnehmen, müssen folgende Voraussetzungen
erfüllen:
- Verständnis von Grundprinzipien der Softwareentwicklung: prozedurale
Abstraktion, Rekursion, schrittweise Verfeinerung, Modularisierung, abstrakte
Datentypen (siehe auch Informatik
für Ingenieure I+II)
- Objektorientierte Analyse und
Entwurf: Vorgehensweisen (Methodiken) und Notationen (nach Möglichkeit
UML).
- Grundwissen aus dem Bereich des Software
Engineering
The obigen Links verweisen auf Vorlesungmaterialien, die helfen, Wissen
in diesen Bereichen aufzufrischen.
- Praktische Programmiererfahrung in mind. einer Hochsprache (Pascal, Modula,
C, Visual-Basic, Java, C++, Modula-3, ...) ist unerläßlich zum
Anwenden der gelernten Konzepte und Techniken in nachfolgenden Veranstaltungen
und im Beruf. Das TU-Rechenzentrum veranstaltet Programmierkurse
während der Semester und in den Semesterferien an denen Studenten teilnehmen
können um Programmieren zu erlernen / vertiefen.
Wer Lust hat, kann einen Self-Assessment
Test durchführen, um zu sehen, ob eine Auffrischung des Wissens
nötig ist. Ihre Antworten können sie mit unseren Lösungen
vergleichen.
Das Lehrmaterial ist größtenteils programmiersprachunabhängig.
Codebeispiele sind in der objektorientierten Sprache Java
gegeben.
1. What is a software architecture?
- Programming Idioms
- Design Patterns
- Architectural Patterns
2. Case Study: Object Oriented Analysis, Design and Implementation
3. Pipes and Filter Architectures
4. Event-Based Architectures
5. Layered Architectures / Database Architectures
6. Frameworks
7. Component Architectures
-
Mary Shaw, David Garlan: Software architecture, perspectives on an emerging discipline.
Prentice-Hall, 1996.
Chapter 1, 2, 3, 4, and 7 are highly relevant for this lecture. This text
provides an excellent treatment of software architectures as an engineering
discipline. Strongly recommended.
-
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal:
Pattern-oriented software architecture. A system of patterns,
John Wiley&Sons, 1996.
Several of the architectural patterns, design patterns and programming idioms
descirbed in this book will be covered in this course. Strongly recommended.
-
Erich Gamma et al:
Design patterns, elements of reusable object-oriented software.
Addison-Wesley, 1996. (also availabe in German)
In-depth coverage of design patterns and object-oriented programming idioms.
-
Martin Fowler, Kendall Scott: UML Distilled, Addison-Wesley, 1997.
Concise introduction to the UML notation used throughout this course. 15 copies
available in the TUHH library.
-
Craig Larman: Applying UML and Patterns, Prentice Hall, 1997.
This book may be helpful for students that look for larger examples of UML
designs. Poor coverage of patterns.
-
Frank Griffel: Componentware: Konzepte und Techniken eines Softwareparadigmas,
1998.
-
Ivar Jacobson, Martin Griss, Patrick Jonsson, Patrik:
Software Reuse. Architecture, Process and Organization for Business Success. Addison-Wesley,
1997.
An organizational perspective on issues related to software architectures.
-
Ian Sommerville: Software Engineering, Addison-Wesley 1995 (5th ed.).
A textbook on software engineering fundamentals.
-
Helmut Balzert: Lehrbuch der Software-Technik. Band I, Software-Entwicklung,
Spektrum-Verlag, 1997.
A modern textbook and handbook on software-engineering.
-
James Gosling: The Java Language Specification, Addison-Wesley, 1997.
The authorative answer to all questions relating to Java as a language.
-
Michael L. Brodie, Michael Stonebraker: Migrating Legacy Systems.
Morgan-Kaufmann, 1995.
One of the few books covering architectural aspects of the migration of large
corporate software systems to meet new organizational requirements.