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 für Softwarearchitekten, 2nd Edition

Book Description

  • offizielles Buch zum "CPSA"- Foundation Level nach iSAQB- geschrieben von Mitgliedern des iSAQB-Board, die den Lehrplan entwickelt haben- sehr bekannte und renommierte Autoren- mit Beispielen, Prüfungsaufgaben und Glossar

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort zur 2. Auflage
  5. 1 Einleitung
    1. 1.1 Softwarearchitektur als Disziplin im Software Engineering
    2. 1.2 iSAQB – International Software Architecture Qualification Board
    3. 1.3 Certified Professional for Software Architecture – Foundation und Advanced Level
    4. 1.4 Zielsetzung des Buches
    5. 1.5 Voraussetzungen
    6. 1.6 Leitfaden für den Leser
    7. 1.7 Zielpublikum
    8. 1.8 Danksagungen
  6. 2 Grundlagen von Softwarearchitekturen
    1. 2.1 Einbettung in den iSAQB-Lehrplan
      1. 2.1.1 Lernziele
    2. 2.2 Softwareintensive Systeme und Softwarearchitekturen
      1. 2.2.1 Was ist ein softwareintensives System?
      2. 2.2.2 Ausprägungen von softwareintensiven Systemen
      3. 2.2.3 Bedeutung der Softwarearchitektur für ein softwareintensives System
    3. 2.3 Grundlegende Konzepte von Softwarearchitekturen
      1. 2.3.1 Was ist eine Softwarearchitektur?
      2. 2.3.2 Bausteine, Schnittstellen und Konfigurationen
      3. 2.3.3 Konzepte der Beschreibung von Softwarearchitekturen
      4. 2.3.4 Architekturbeschreibung und Architekturebenen
      5. 2.3.5 Wechselwirkungen zwischen Softwarearchitektur und Umgebung
      6. 2.3.6 Qualität und Nutzen der Softwarearchitektur
    4. 2.4 Der Softwarearchitekturentwurf aus der Vogelperspektive
      1. 2.4.1 Ziele und Aufgaben des Softwarearchitekturentwurfs
      2. 2.4.2 Der Softwarearchitekturentwurf im Überblick
      3. 2.4.3 Wechselspiel der Tätigkeiten und Abstraktionsstufen im Entwurf
      4. 2.4.4 Aufgaben des Softwarearchitekten und Bezug zu anderen Rollen
    5. 2.5 Lernkontrolle
  7. 3 Entwurf von Softwarearchitekturen
    1. 3.1 Einbettung in den iSAQB-Lehrplan
      1. 3.1.1 Lernziele
    2. 3.2 Überblick über das Vorgehen beim Architekturentwurf
    3. 3.3 Entwurfsprinzipien und Heuristiken
      1. 3.3.1 Top-down und Bottom-up
      2. 3.3.2 Hierarchische (De-)Komposition
        1. 3.3.2.1 Divide et impera
        2. 3.3.2.2 Prinzipien bei der Zerlegung
        3. 3.3.2.3 So-einfach-wie-möglich-Prinzip
        4. 3.3.2.4 Trennung von Verantwortlichkeiten
      3. 3.3.3 Schmale Schnittstellen und Information Hiding
        1. 3.3.3.1 Information Hiding
        2. 3.3.3.2 Verwendung von Schnittstellen
      4. 3.3.4 Regelmäßiges Refactoring und Redesign
    4. 3.4 Architekturzentrierte Entwicklungsansätze
      1. 3.4.1 Domain Driven Design
        1. 3.4.1.1 Fachmodelle als Basis
        2. 3.4.1.2 Systematische Verwaltung der Domänenobjekte
        3. 3.4.1.3 Strukturierung der Fachdomäne
      2. 3.4.2 MDA
      3. 3.4.3 Referenzarchitekturen
        1. 3.4.3.1 Generative Erzeugung von Systembausteinen
        2. 3.4.3.2 Aspektorientierung
        3. 3.4.3.3 Objektorientierung
        4. 3.4.3.4 Prozedurale Ansätze
    5. 3.5 Techniken für einen guten Entwurf
      1. 3.5.1 Ausgangssituation und Motivation: Degeneriertes Design
      2. 3.5.2 Lose Kopplung
      3. 3.5.3 Hohe Kohäsion
      4. 3.5.4 Offen-Geschlossen-Prinzip
      5. 3.5.5 Umkehr der Abhängigkeiten
      6. 3.5.6 Abtrennung von Schnittstellen
      7. 3.5.7 Zyklische Abhängigkeiten auflösen
      8. 3.5.8 Liskov’sches Substitutionsprinzip
    6. 3.6 Architekturmuster
      1. 3.6.1 Adaptierbare Systeme
        1. 3.6.1.1 Dependency Injection
      2. 3.6.2 Interaktive Systeme
        1. 3.6.2.1 Model View Controller
        2. 3.6.2.2 Model View Presenter
        3. 3.6.2.3 Presentation Abstraction Control
      3. 3.6.3 Vom Chaos zur Struktur
        1. 3.6.3.1 Schichtenarchitektur
        2. 3.6.3.2 Pipes and Filters
        3. 3.6.3.3 Blackboard
      4. 3.6.4 Verteilte Systeme
        1. 3.6.4.1 Broker
        2. 3.6.4.2 Serviceorientierung
        3. 3.6.4.3 Modularisierung
    7. 3.7 Entwurfsmuster
      1. 3.7.1 Adapter
      2. 3.7.2 Observer
      3. 3.7.3 Decorator
      4. 3.7.4 Proxy
      5. 3.7.5 Fassade
      6. 3.7.6 Brücke
      7. 3.7.7 State
      8. 3.7.8 Mediator
    8. 3.8 Lernkontrolle
  8. 4 Beschreibung und Kommunikation von Softwarearchitekturen
    1. 4.1 Einbettung in den iSAQB-Lehrplan
      1. 4.1.1 Lernziele
    2. 4.2 Das CoCoME-Beispiel
      1. 4.2.1 Anwendungsfälle im CoCoME-System
      2. 4.2.2 Übersicht über den strukturellen Aufbau des CoCoME-Systems
    3. 4.3 Sichten und Schablonen
      1. 4.3.1 Bewährte Sichten nach iSAQB
      2. 4.3.2 UML-Diagramme als Notationsmittel in Sichtenbeschreibungen
      3. 4.3.3 Sichtenbeschreibung – Grobaufbau und Einführungsbeispiel
        1. 4.3.3.1 Grobaufbau – Schablonenartige Sichtenbeschreibung
        2. 4.3.3.2 Beispiel: Auszug aus einer Sichtenbeschreibung für eine Bausteinsicht
      4. 4.3.4 Kontextsicht oder Kontextabgrenzung
      5. 4.3.5 Bausteinsicht
      6. 4.3.6 Laufzeitsicht
      7. 4.3.7 Verteilungssicht bzw. Infrastruktursicht
      8. 4.3.8 Wechselwirkungen zwischen Architektursichten
      9. 4.3.9 Hierarchische Verfeinerung von Architektursichten
    4. 4.4 Technische oder querschnittliche Konzepte in Softwarearchitekturen
      1. 4.4.1 Technische bzw. querschnittliche Konzepte: Beispieldimensionen
      2. 4.4.2 Beispiel: Fehlerbehandlung
      3. 4.4.3 Beispiel: Sicherheit
    5. 4.5 Architektur und Implementierung
      1. 4.5.1 Beispiel Implementierung
    6. 4.6 Übliche Dokumenttypen für Softwarearchitekturen
      1. 4.6.1 Zentrale Architekturbeschreibung
      2. 4.6.2 Architekturüberblick
      3. 4.6.3 Dokumentübersicht
      4. 4.6.4 Übersichtspräsentation
      5. 4.6.5 »Architekturtapete«
      6. 4.6.6 Handbuch zur Dokumentation
      7. 4.6.7 Technische Informationen
      8. 4.6.8 Dokumentation von externen Schnittstellen
      9. 4.6.9 Template
    7. 4.7 Praxisregeln zur Dokumentation
      1. 4.7.1 Regel 1: »Schreiben aus der Sicht des Lesers«
      2. 4.7.2 Regel 2: »Unnötige Wiederholung vermeiden«
      3. 4.7.3 Regel 3: »Mehrdeutigkeit vermeiden«
      4. 4.7.4 Regel 4: »Standardisierte Organisationsstruktur bzw. Schablonen«
      5. 4.7.5 Regel 5: »Begründen Sie wesentliche Entscheidungen schriftlich«
      6. 4.7.6 Regel 6: »Überprüfung auf Gebrauchstauglichkeit«
      7. 4.7.7 Regel 7: »Übersichtliche Diagramme«
      8. 4.7.8 Regel 8: »Regelmäßige Aktualisierungen«
    8. 4.8 Beispiele weiterer Architektur-Frameworks
      1. 4.8.1 4+1-Framework
      2. 4.8.2 RM-ODP
      3. 4.8.3 SAGA
    9. 4.9 Lernkontrolle
  9. 5 Softwarearchitekturen und Qualität
    1. 5.1 Einbettung in den iSAQB-Lehrplan
      1. 5.1.1 Lernziele
    2. 5.2 Bewertung von Softwarearchitekturen
      1. 5.2.1 Qualitative Bewertung
        1. 5.2.1.1 DIN ISO/IEC 25010
        2. 5.2.1.2 Qualitätsmerkmale
        3. 5.2.1.3 Weitere Qualitätsmerkmale
        4. 5.2.1.4 Auswirkungen bestimmter Qualitätsmerkmale
        5. 5.2.1.5 Taktiken und Praktiken
      2. 5.2.2 Quantitative Bewertung
        1. 5.2.2.1 Überprüfung von Architekturregeln
        2. 5.2.2.2 Metriken
        3. 5.2.2.3 Zyklomatische Komplexität
    3. 5.3 Prototyp und technischer Durchstich
      1. 5.3.1 Technischer Durchstich
      2. 5.3.2 Prototyp
        1. 5.3.2.1 Einsatz von Softwareprototypen
        2. 5.3.2.2 Arten von Softwareprototypen
    4. 5.4 Architekturanalyse
      1. 5.4.1 ATAM-Methode
    5. 5.5 Lernkontrolle
  10. 6 Werkzeuge für Softwarearchitekten
    1. 6.1 Einbettung in den iSAQB-Lehrplan
      1. 6.1.1 Lernziele
    2. 6.2 Allgemeine Hinweise zu Werkzeugen
      1. 6.2.1 Kosten von Werkzeugen
      2. 6.2.2 Lizenzen und Lizenzbedingungen
    3. 6.3 Werkzeuge zum Anforderungsmanagement
      1. 6.3.1 Anforderungen und Entscheidungskriterien
      2. 6.3.2 Herausforderungen von Werkzeugen für das Anforderungsmanagement
      3. 6.3.3 Beispielhafte Vertreter
    4. 6.4 Werkzeuge zur Modellierung
      1. 6.4.1 Anforderungen und Entscheidungskriterien
      2. 6.4.2 Herausforderungen von Werkzeugen für die Modellierung
      3. 6.4.3 Beispielhafte Vertreter
    5. 6.5 Werkzeuge zur Generierung
      1. 6.5.1 Anforderungen und Entscheidungskriterien
      2. 6.5.2 Herausforderungen von Codegeneratoren
      3. 6.5.3 Beispielhafte Vertreter
    6. 6.6 Werkzeuge zur statischen Codeanalyse
      1. 6.6.1 Anforderungen und Entscheidungskriterien
      2. 6.6.2 Herausforderungen von Werkzeugen zur statischen Codeanalyse
      3. 6.6.3 Beispielhafte Vertreter
    7. 6.7 Werkzeuge zur dynamischen Analyse
      1. 6.7.1 Anforderungen und Entscheidungskriterien
      2. 6.7.2 Herausforderungen von Werkzeugen zur dynamischen Analyse
      3. 6.7.3 Beispielhafte Vertreter
    8. 6.8 Werkzeuge zum Build-Management
      1. 6.8.1 Anforderungen und Entscheidungskriterien
      2. 6.8.2 Herausforderungen von Werkzeugen zum Build-Management
      3. 6.8.3 Beispielhafte Vertreter
    9. 6.9 Werkzeuge zum Konfigurations- und Versionsmanagement
      1. 6.9.1 Anforderungen und Entscheidungskriterien
      2. 6.9.2 Herausforderungen von Werkzeugen zum Konfigurations- und Versionsmanagement
      3. 6.9.3 Beispielhafte Vertreter
    10. 6.10 Werkzeuge zum Codemanagement
      1. 6.10.1 Herausforderungen von Werkzeugen zum Codemanagement
      2. 6.10.2 Beispielhafte Vertreter
    11. 6.11 Werkzeuge zum Test
      1. 6.11.1 Anforderungen und Entscheidungskriterien
      2. 6.11.2 Herausforderungen von Testwerkzeugen
      3. 6.11.3 Beispielhafte Vertreter
    12. 6.12 Werkzeuge zur Dokumentation
      1. 6.12.1 Anforderungen und Entscheidungskriterien
      2. 6.12.2 Herausforderungen von Dokumentationswerkzeugen
      3. 6.12.3 Beispielhafte Vertreter
    13. 6.13 Lernkontrolle
  11. Anhang
    1. A Beispielfragen
      1. A.1 Auszüge aus der Prüfungsordnung
      2. A.2 Beispielfragen
    2. B Abkürzungsverzeichnis
    3. C Glossar
    4. D Literaturverzeichnis
  12. Index
  13. Fußnoten
  14. Cover-Rückseite