Seminar Pragmatische Softwarearchitektur - Fundamentale Architekturkonzepte und ihre Anwendung in der Praxis
ZieleDas Seminar widmet sich dem architektonischen Design, nicht dem Design bei der Implementierung, wiewohl es natürlich dazu auch Bezug nimmt da es die Schnittstelle zur Architektur betrifft. Ziel des Seminars ist generell ein Fundament für den Architekten und Entwickler zu vermitteln und zwar für die tägliche Praxis, die Bereitstellung eines Baukastens für (angehende) Softwarearchitekten, um effizient und effektiv hochqualitative Softwarearchitekturen entwickeln zu können. Die Teilnehmer erlernen ein konkretes Vorgehen und die wichtigsten Konzepte, Technologien und Methoden im Bereich der Softwarearchitektur kennen.
AnforderungenZielgruppe: Erfahrene Entwickler, Architekten, die sich die Grundlagen aneignen oder Lücken schliessen wollen. Voraussetzungen: Eine ideale Voraussetzung zur Teilnahme an diesem Seminar ist der Besuch des Seminars "Patterns Orientierte Software Architektur" von Frank Buschmann oder Schulungen zu Komponenten, MDSD, etc.
InhaltSoftwarearchitekturkonzepte gehören zu den fundamentalen Bausteinen jeder Softwareentwicklung. Was aber verbirgt sich hinter Softwarearchitektur? Welche Aufgaben hat ein Softwarearchitekt in einem Projekt? Was führt Projekte zum Erfolg und was führt sie zum Mißerfolg? Was zeichnet gute und was weniger gute Softwarearchitektur aus?
Das sind einige der Fragen, denen sich das Seminar unter anderem widmet. Das Seminar fokussiert sich auf die fundamentalen Grundlagen von Softwarearchitektur und richtet sich sowohl an alle Softwareentwickler und auch an Softwarearchitekten, die sich einen entsprechenden Werkzeugkasten aneignen wollen und an (angehende Architekten), die ein konkretes Vorgehen erlernen wollen. Die Teilnehmer bekommen ein grundlegendes Themenpaket an die Hand.
Ausgangspunkt ist die Frage: Wenn die Entwicklung eines neuen Softwaresystems ansteht oder die Bewertung eines existierenden Softwaresystems, welche Aktivitäten sind hierfür notwendig, welche Werkzeuge und Konzepte lassen sich sinnvoll einsetzen, und welche Aufgaben hat dabei ein Softwarearchitekt.
Thematisiert werden u.a.:
- Was ist Softwarearchitektur
- Die Rolle des Softwarearchitekten
- Entwicklungsprozesse
- Anforderungen
- Modellierung und Dokumentation (UML)
- Agile Architekturtechniken (Refactoring, Unit-Testing, C/V-Analysen)
- Fundamentale Architekturkonzepte (Patterns, Frameworks, Plattformen)
- Fortgeschrittene Architekturkonzepte (Modelle, Aspekte, Produktlinien)
- Spezielle Architekturen (Komponentbasierte Ansätze, SOA, Embedded)
- Bewertung von Softwarearchitekturen
- Requirement Engineering
- Themen wie UML oder Patterns werden detailliert erklärt
- Die Gruppenübungen dienen dazu, in 3-4 Personenteams die Grundlagen anhand praktischer Beispiele zu vertiefen.