O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Basiswissen Softwarearchitektur, 3rd Edition

Book Description

  • Fundierter Einstieg und Überblick

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsverzeichnis
  5. Teil I Grundlagen und Organisation
    1. 1 Grundlagen
      1. 1.1 Warum Softwarearchitektur?
      2. 1.2 Was ist Softwarearchitektur?
        1. 1.2.1 Definition von Softwarearchitektur
        2. 1.2.2 Ziele und Aufgaben von Softwarearchitektur
        3. 1.2.3 Wodurch wird Softwarearchitektur beeinflusst?
      3. 1.3 Bedeutung von Softwarearchitektur
        1. 1.3.1 Symptome bei fehlender Softwarearchitektur
      4. 1.4 Zusammenfassung
    2. 2 Softwarearchitektur in der Organisationsstruktur
      1. 2.1 Wechselwirkungen zwischen Architektur und Unternehmen
      2. 2.2 Die Rolle des Softwarearchitekten
        1. 2.2.1 Allgemeine Eigenschaften und Aufgaben
        2. 2.2.2 Aufgaben im Entwicklungsprojekt
        3. 2.2.3 Das Architekturteam
      3. 2.3 Zusammenspiel von Softwarearchitektur und Projektmanagement
        1. 2.3.1 Bedeutung von Softwarearchitektur für das Projektmanagement
        2. 2.3.2 Das Führungsteam aus Projektleiter und Softwarearchitekt
      4. 2.4 Zusammenfassung
  6. Teil II Erstellung der Softwarearchitektur
    1. 3 Vorgehen
      1. 3.1 Überblick
      2. 3.2 Vorbereitungen für den Entwurf
        1. 3.2.1 Anforderungsanalyse
        2. 3.2.2 Einflussfaktoren
      3. 3.3 Iterativ, inkrementeller Entwurf, Dokumentation und Bewertung
        1. 3.3.1 Der erste Architekturentwurf
        2. 3.3.2 Iterativ, inkrementelles Ausbauen des Entwurfs
      4. 3.4 Die Umsetzung der Architektur
      5. 3.5 Zusammenfassung
    2. 4 Einflussfaktoren
      1. 4.1 Bedeutung von Einflussfaktoren
      2. 4.2 Arten von Einflussfaktoren
        1. 4.2.1 Organisatorische Faktoren
        2. 4.2.2 Technologische Faktoren
        3. 4.2.3 Produktfaktoren
        4. 4.2.4 Flexibilität, Veränderbarkeit und Einfluss
      3. 4.3 Spezifikation von Einflussfaktoren
        1. 4.3.1 Identifizieren und Präzisieren der Faktoren
        2. 4.3.2 Analyse der Faktoren
        3. 4.3.3 Identifizieren von Architekturthemen und Entwickeln von Strategien
      4. 4.4 Zusammenfassung
    3. 5 Entwurf von Softwarearchitekturen
      1. 5.1 Entwurfsumfeld und wichtige Begriffe
        1. 5.1.1 Entwurfsziele
        2. 5.1.2 Entwurf und Komplexität
        3. 5.1.3 Vorleistungen
        4. 5.1.4 Allgemeine Aktivitäten beim Entwurf
        5. 5.1.5 Fünf Kriterien für einen korrekten Entwurf
      2. 5.2 Fundamentale Entwurfsprinzipien
        1. 5.2.1 Abstraktion
        2. 5.2.2 Kapselung
        3. 5.2.3 Modularität
        4. 5.2.4 Hierarchie
        5. 5.2.5 Konzeptuelle Integrität
      3. 5.3 Komponenten und Schnittstellen
        1. 5.3.1 Komponenten – Grundbausteine der Architektur
        2. 5.3.2 Schnittstellen – Vertragswerk der Softwarearchitektur
        3. 5.3.3 Techniken zur Adaption von Komponenten
      4. 5.4 Entwurfsschritte und Heuristiken
        1. 5.4.1 Konkrete Entwurfsschritte
        2. 5.4.2 Heuristiken
      5. 5.5 Zusammenfassung
    4. 6 Dokumentation
      1. 6.1 Bedeutung der Dokumentation
      2. 6.2 Anforderungen an eine Dokumentation
        1. 6.2.1 Allgemeine Anforderungen an eine Projektdokumentation
        2. 6.2.2 Anforderungen an Architekturbeschreibungen
      3. 6.3 Bestandteile einer Architekturdokumentation
        1. 6.3.1 Sichten eines Systems
        2. 6.3.2 Zusammenspiel der Sichten
        3. 6.3.3 Beschreibung des Aufbaus und Hilfestellungen
        4. 6.3.4 Zusammenfassung
      4. 6.4 Architektursichten
        1. 6.4.1 Kontextsicht
        2. 6.4.2 Struktursicht
        3. 6.4.3 Verhaltenssicht
        4. 6.4.4 Abbildungssicht
        5. 6.4.5 Sichten in der Literatur
      5. 6.5 UML 2 als Notation für Architektursichten
        1. 6.5.1 UML-Überblick
        2. 6.5.2 Darstellungsmöglichkeiten für die Kontextsicht
        3. 6.5.3 Darstellungsmöglichkeiten für die Struktursicht
        4. 6.5.4 Darstellungsmöglichkeiten für die Verhaltenssicht
        5. 6.5.5 Darstellungsmöglichkeiten für die Abbildungssicht
        6. 6.5.6 Beschreibungsmöglichkeiten für weitere Architekturaspekte
        7. 6.5.7 UML Erweiterungsmechanismen zur Konsistenzsicherung
      6. 6.6 Zusammenfassung
    5. 7 Bewertung
      1. 7.1 Grundlagen der Architekturbewertung
        1. 7.1.1 Allgemeines Vorgehen und Ergebnis
        2. 7.1.2 Arten von Bewertungen und Zeitpunkt
        3. 7.1.3 Der Faktor Erfahrung
      2. 7.2 Bewertungsmethoden
        1. 7.2.1 Fragetechniken
        2. 7.2.2 Messtechniken
        3. 7.2.3 Auf Erfahrung basierende Argumentation
        4. 7.2.4 Kategorisierung der Bewertungsmethoden
      3. 7.3 Szenariobasierte Bewertung
        1. 7.3.1 ATAM
        2. 7.3.2 ATAM-Phasen
        3. 7.3.3 ATAM-Schritte
      4. 7.4 Kosten und Nutzen
        1. 7.4.1 Kosten
        2. 7.4.2 Nutzen
      5. 7.5 Zusammenfassung
    6. 8 Die Toolbox des Softwarearchitekten
      1. 8.1 Einführung
        1. 8.1.1 Historie und derzeitiger Stand
        2. 8.1.2 Vorteile und Aufbau unserer Toolbox
        3. 8.1.3 Wie erwirbt der Architekt sein Wissen?
      2. 8.2 Lösungsvorlagen und Methoden
        1. 8.2.1 Anwendung von Architekturstilen
        2. 8.2.2 Anwendung von Architekturmustern
        3. 8.2.3 Anwendung von Entwurfsmustern
      3. 8.3 Technologien und Werkzeuge
        1. 8.3.1 Betriebssysteme und Programmiersprachen
        2. 8.3.2 Bibliotheken, Komponenten und Frameworks
        3. 8.3.3 Modellierung und Generierung
        4. 8.3.4 Analyse und Rekonstruktion
      4. 8.4 Zusammenfassung
    7. 9 Fallbeispiel
      1. 9.1 Projektbeschreibung
      2. 9.2 Schrittweises Vorgehen zur Erstellung der Architektur
      3. 9.3 Ausgangssituation
      4. 9.4 Anforderungen und Use Cases
      5. 9.5 Analysemodell
      6. 9.6 Aufbau der Architekturdokumentation
      7. 9.7 Architekturerstellung
        1. 9.7.1 Spezifikation der Einflussfaktoren
        2. 9.7.2 Entwurf und Dokumentation
        3. 9.7.3 Umfangreiches Assessment
      8. 9.8 Umsetzung der Architektur
      9. 9.9 Zusammenfassung
  7. Teil III Industrielle Softwareentwicklung
    1. 10 Softwarearchitektur im industriellen Maßstab
      1. 10.1 Chronische Probleme der heutigen Softwareentwicklung
        1. 10.1.1 Unnötige Freiheitsgrade bei Sprachen und Tools
        2. 10.1.2 Schwerpunkt auf Einzelprojekten
        3. 10.1.3 Ungenügendes Zusammenspiel von Komponenten
      2. 10.2 Bahnbrechende Innovationen
        1. 10.2.1 Innovationsfeld 1: Systematische Wiederverwendung
        2. 10.2.2 Innovationsfeld 2: Modellgetriebene Entwicklung
      3. 10.3 Komplexität und die Abstraktionslücke
        1. 10.3.1 Arten von Komplexität in der Softwareentwicklung
        2. 10.3.2 Die Abstraktionslücke
        3. 10.3.3 Verkleinern der Abstraktionslücke
      4. 10.4 Zusammenfassung
    2. 11 Produktlinien für Software
      1. 11.1 Was sind Produktlinien?
        1. 11.1.1 Vom Softwaresystem zur Standardplattform
        2. 11.1.2 Grundlegende Begriffe
        3. 11.1.3 Wann sind Softwareproduktlinien sinnvoll?
        4. 11.1.4 Softwareproduktlinien in drei Dimensionen
        5. 11.1.5 Wiederverwendung als treibende Kraft
      2. 11.2 Aktivitäten und Vorgehen
        1. 11.2.1 Wesentliche Aktivitäten zum Betrieb einer Produktlinie
        2. 11.2.2 Tätigkeiten des Softwarearchitekten
        3. 11.2.3 Allgemeine Schritte zum Produktlinienentwurf
        4. 11.2.4 Softwarebezogene Schritte zur Einführung
      3. 11.3 Architektur und Software Engineering
        1. 11.3.1 Aufgaben für Architekt und Softwareingenieur
        2. 11.3.2 Komponenten – Grundbausteine der Produktlinie
        3. 11.3.3 Objektorientierte Frameworks
      4. 11.4 Technische und organisatorische Aufgaben
        1. 11.4.1 Technische Aufgaben
        2. 11.4.2 Organisatorische Aufgaben
      5. 11.5 Zusammenfassung
    3. 12 Modellbasierte Entwicklung mit MDA und DSLs
      1. 12.1 Grundidee von MDA
      2. 12.2 Konzepte
        1. 12.2.1 Modelle
        2. 12.2.2 Transformationen
      3. 12.3 Metamodellierung
        1. 12.3.1 Vier-Schichten-Modell der Metamodellierung
      4. 12.4 Fallstudie
        1. 12.4.1 Plattformunabhängiges Modell (PIM)
        2. 12.4.2 Technische Lösung und Markierungen
        3. 12.4.3 Transformation PIM zu PSM
        4. 12.4.4 Plattformabhängiges Modell (PSM)
        5. 12.4.5 Transformation PSM zu Code
      5. 12.5 Alternative: Domänenspezifische Sprachen
        1. 12.5.1 Grundidee der domänenspezifischen Sprachen
        2. 12.5.2 Werkzeugunterstützung für DSLs
        3. 12.5.3 Anwendungsfelder
      6. 12.6 Zusammenfassung
  8. Anhang
    1. Literatur
    2. Index