Seminar Pattern-Orientierte Software Architektur Tragfähige und wohlstrukturierte Software Architekturen
ZieleSie wissen, was Patterns sind und kennen die Möglichkeiten und Grenzen ihres Einsatzes bei der Spezifikation von Software-Architekturen. Sie haben einen Überblick über die wichtigsten Patterns bzgl. Objektorientierung, Komponentenentwicklung, Flexibilität, Konfigurierbarkeit und Verteilung sowie über die derzeit verfügbare Patternliteratur und die darin dokumentierten Patterns. Sie kennen die Auswahl- und Anwendungsmethodik für Patterns und können mit deren Hilfe Patterns adäquat in konkreten Architektur- und Entwurfsaufgaben einsetzen.
AnforderungenZielgruppe: Software-Architekten Entwickler mit Entwurfsverantwortung Technische Projektleiter Voraussetzungen: Solide Kenntnisse in der Software Entwicklung, Kenntnisse in Objektorientierung und UML sowie Kenntnisse in C++ und/ oder Java sind hilfreich.
InhaltEiner der besten Ansätze, tragfähige Software-Architekturen zu erstellen ist, diese auf bewährten architektonischen Erfahrungen aufzusetzen. Patterns dokumentieren solch wertvolle Erfahrungen. Sie beschreiben für eine Vielzahl immer wiederkehrender architektonischer Problemstellungen, wie existierende und sich erfolgreich im Einsatz befindende Systeme strukturiert sind, um diese Probleme zu meistern.
Per Definition addressiert jedes Pattern aber nur ein einziges Entwurfsproblem, isoliert von anderen Entwurfsproblemen und ohne Beachtung möglicher Beziehungen dazwischen. Der Einfluss eines einzelnen Patterns auf eine Software-Architektur ist somit eher lokal; einen Katalog verschiedener Patterns zu kennen und diese in einer Software-Entwicklung anzuwenden stellt keinen durchgängigen und konstruktiven Ansatz zur Architekturspezifiaktion mit Patterns dar. Viele Projekte, die Patterns bewusst eingesetzt haben sind auf diese Weise bereits gescheitert.
- Der Einsatz von Patterns bei der Erstellung von Software-Architekturen verlangt daher nach einer durchgängigen Methodik. Diese Methodik muss systematisch: die für ein System zu lösenden Problemstellungen addressieren, in der geeigneten Reihenfolge und unter Beachtung möglicher Beziehungen zu anderen Problemen,
- für jedes Problem ein geeignetes Pattern auswählen, sofern dieses existiert und gegebenenfalls Alternativen abwägen,
- das ausgewählte Pattern so in die bestehende Architektur integrieren, dass deren bereits gesicherte Eigenschaften erhalten bleiben oder gar gestärkt werden.
Werden Patterns anhand einer solchen Methodik systematsisch eingesetzt, führt dies bereits sehr früh im Software-Entwicklungsprozess zu einer stabilen und tragfähigen Software-Architektur mit gesicherten Eigenschaften. Dies erlaubt wiederum deutlich kürzere Entwurfs- und Entwicklungszeiten, bei gezielter Anwendung von Patterns von bis zu 20%.
Anhand einer realen Fallstudie verschafft Ihnen der Patterns-Experte Frank Buschmann in diesem Seminar einen Überblick über den effektiven Einsatz von Patterns bei der Erstellung von Software-Architekturen: von einer Einführung in das Konzept der Patterns, über eine Methodik zur Spezifikation von Software-Architekturen mit Patterns, bis hin zu einer Vorstellung wichtiger Patterns für verschiedenste architektonische Themenstellungen.
In einer Übung erhalten Sie die Gelegenheit, selbst eine pattern-basierte Software-Architektur zu erstellen.
Seminarinhalt
- Einführung in Patterns: Motivation, Struktur, Eigenschaften
Methodik zur Spezifikation von Software-Architekturen mit Patterns
- Grundlegende Patterns zur Strukturierung flexibler, objektorientierter, komponentenbasierter/service-orientierter und verteilter Software-Systeme
- Einsatz von Patterns in der Software-Entwicklung anhand eines realen Beispiels
- Überblick über die aktuell verfügbaren Patterns und die Pattern-Literatur