Basiswissen Softwarearchitektur - Verstehen, entwerfen, wiederverwenden

Basiswissen Softwarearchitektur - Verstehen, entwerfen, wiederverwenden

von: Torsten Posch, Klaus Birken, Michael Gerdom

dpunkt, 2012

ISBN: 9783864910432

Sprache: Deutsch

380 Seiten, Download: 5856 KB

 
Format:  EPUB, PDF, auch als Online-Lesen

geeignet für: geeignet für alle DRM-fähigen eReader geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Basiswissen Softwarearchitektur - Verstehen, entwerfen, wiederverwenden



  Geleitworte 6  
  Vorwort 8  
  Danksagung 10  
  Hinweise fu¨r den Leser 12  
  Inhaltsverzeichnis 14  
  1 Grundlagen 22  
     1.1 Warum Softwarearchitektur? 23  
     1.2 Was ist Softwarearchitektur? 25  
        1.2.1 Definition von Softwarearchitektur 25  
        1.2.2 Ziele und Aufgaben von Softwarearchitektur 32  
        1.2.3 Wodurch wird Softwarearchitektur beeinflusst? 37  
     1.3 Bedeutung von Softwarearchitektur 39  
        1.3.1 Symptome bei fehlender Softwarearchitektur 41  
     1.4 Zusammenfassung 42  
  2 Softwarearchitektur in der Organisationsstruktur 44  
     2.1 Wechselwirkungen zwischen Architektur und Unternehmen 44  
     2.2 Die Rolle des Softwarearchitekten 46  
        2.2.1 Allgemeine Eigenschaften und Aufgaben 48  
        2.2.2 Aufgaben im Entwicklungsprojekt 50  
        2.2.3 Das Architekturteam 58  
     2.3 Zusammenspiel von Softwarearchitektur und Projektmanagement 62  
        2.3.1 Bedeutung von Softwarearchitektur für das Projektmanagement 62  
        2.3.2 Das Führungsteam aus Projektleiter und Softwarearchitekt 69  
     2.4 Zusammenfassung 72  
  3 Vorgehen 76  
     3.1 Überblick 77  
     3.2 Vorbereitungen für den Entwurf 79  
        3.2.1 Anforderungsanalyse 80  
        3.2.2 Einflussfaktoren 83  
     3.3 Iterativ, inkrementeller Entwurf, Dokumentation und Bewertung 84  
        3.3.1 Der erste Architekturentwurf 85  
        3.3.2 Iterativ, inkrementelles Ausbauen des Entwurfs 87  
     3.4 Die Umsetzung der Architektur 88  
     3.5 Zusammenfassung 89  
  4 Einflussfaktoren 90  
     4.1 Bedeutung von Einflussfaktoren 90  
     4.2 Arten von Einflussfaktoren 93  
        4.2.1 Organisatorische Faktoren 93  
        4.2.2 Technologische Faktoren 94  
        4.2.3 Produktfaktoren 95  
        4.2.4 Flexibilität, Veränderbarkeit und Einfluss 98  
     4.3 Spezifikation von Einflussfaktoren 98  
        4.3.1 Identifizieren und Präzisieren der Faktoren 99  
        4.3.2 Analyse der Faktoren 103  
        4.3.3 Identifizieren von Architekturthemen und Entwickeln von Strategien 105  
     4.4 Zusammenfassung 108  
  5 Entwurf von Softwarearchitekturen 110  
     5.1 Entwurfsumfeld und wichtige Begriffe 111  
        5.1.1 Entwurfsziele 111  
        5.1.2 Entwurf und Komplexität 113  
        5.1.3 Vorleistungen 114  
        5.1.4 Allgemeine Aktivitäten beim Entwurf 116  
        5.1.5 Fünf Kriterien für einen korrekten Entwurf 118  
     5.2 Fundamentale Entwurfsprinzipien 121  
        5.2.1 Abstraktion 122  
        5.2.2 Kapselung 123  
        5.2.3 Modularität 124  
        5.2.4 Hierarchie 125  
        5.2.5 Konzeptuelle Integrität 126  
     5.3 Komponenten und Schnittstellen 127  
        5.3.1 Komponenten - Grundbausteine der Architektur 127  
        5.3.2 Schnittstellen - Vertragswerk der Softwarearchitektur 131  
        5.3.3 Techniken zur Adaption von Komponenten 132  
     5.4 Entwurfsschritte und Heuristiken 133  
        5.4.1 Konkrete Entwurfsschritte 134  
        5.4.2 Heuristiken 139  
     5.5 Zusammenfassung 144  
  6 Dokumentation 146  
     6.1 Bedeutung der Dokumentation 147  
     6.2 Anforderungen an eine Dokumentation 148  
        6.2.1 Allgemeine Anforderungen an eine Projektdokumentation 149  
        6.2.2 Anforderungen an Architekturbeschreibungen 151  
     6.3 Bestandteile einer Architekturdokumentation 153  
        6.3.1 Sichten eines Systems 153  
        6.3.2 Zusammenspiel der Sichten 155  
        6.3.3 Beschreibung des Aufbaus und Hilfestellungen 155  
        6.3.4 Zusammenfassung 156  
     6.4 Architektursichten 156  
        6.4.1 Kontextsicht 158  
        6.4.2 Struktursicht 159  
        6.4.3 Verhaltenssicht 160  
        6.4.4 Abbildungssicht 160  
        6.4.5 Sichten in der Literatur 161  
     6.5 UML 2 als Notation für Architektursichten 164  
        6.5.1 UML-Überblick 164  
        6.5.2 Darstellungsmöglichkeiten für die Kontextsicht 167  
        6.5.3 Darstellungsmöglichkeiten für die Struktursicht 172  
        6.5.4 Darstellungsmöglichkeiten für die Verhaltenssicht 175  
        6.5.5 Darstellungsmöglichkeiten für die Abbildungssicht 185  
        6.5.6 Beschreibungsmöglichkeiten für weitere Architekturaspekte 187  
        6.5.7 UML Erweiterungsmechanismen zur Konsistenzsicherung 191  
     6.6 Zusammenfassung 193  
  7 Bewertung 194  
     7.1 Grundlagen der Architekturbewertung 194  
        7.1.1 Allgemeines Vorgehen und Ergebnis 196  
        7.1.2 Arten von Bewertungen und Zeitpunkt 197  
        7.1.3 Der Faktor Erfahrung 199  
     7.2 Bewertungsmethoden 200  
        7.2.1 Fragetechniken 201  
        7.2.2 Messtechniken 202  
        7.2.3 Auf Erfahrung basierende Argumentation 203  
        7.2.4 Kategorisierung der Bewertungsmethoden 203  
     7.3 Szenariobasierte Bewertung 205  
        7.3.1 ATAM 205  
        7.3.2 ATAM-Phasen 206  
        7.3.3 ATAM-Schritte 211  
     7.4 Kosten und Nutzen 216  
        7.4.1 Kosten 217  
        7.4.2 Nutzen 218  
     7.5 Zusammenfassung 220  
  8 Die Toolbox des Softwarearchitekten 222  
     8.1 Einführung 222  
        8.1.1 Historie und derzeitiger Stand 223  
        8.1.2 Vorteile und Aufbau unserer Toolbox 224  
        8.1.3 Wie erwirbt der Architekt sein Wissen? 226  
     8.2 Lösungsvorlagen und Methoden 226  
        8.2.1 Anwendung von Architekturstilen 227  
        8.2.2 Anwendung von Architekturmustern 232  
        8.2.3 Anwendung von Entwurfsmustern 238  
     8.3 Technologien und Werkzeuge 246  
        8.3.1 Betriebssysteme und Programmiersprachen 247  
        8.3.2 Bibliotheken, Komponenten und Frameworks 248  
        8.3.3 Modellierung und Generierung 251  
        8.3.4 Analyse und Rekonstruktion 253  
     8.4 Zusammenfassung 255  
  9 Fallbeispiel 258  
     9.1 Projektbeschreibung 258  
     9.2 Schrittweises Vorgehen zur Erstellung der Architektur 259  
     9.3 Ausgangssituation 261  
     9.4 Anforderungen und Use Cases 262  
     9.5 Analysemodell 264  
     9.6 Aufbau der Architekturdokumentation 265  
     9.7 Architekturerstellung 266  
        9.7.1 Spezifikation der Einflussfaktoren 266  
        9.7.2 Entwurf und Dokumentation 272  
        9.7.3 Umfangreiches Assessment 279  
     9.8 Umsetzung der Architektur 281  
     9.9 Zusammenfassung 282  
  10 Softwarearchitektur im industriellen Maßstab 286  
     10.1 Chronische Probleme der heutigen Softwareentwicklung 287  
        10.1.1 Unnötige Freiheitsgrade bei Sprachen und Tools 287  
        10.1.2 Schwerpunkt auf Einzelprojekten 289  
        10.1.3 Ungenügendes Zusammenspiel von Komponenten 289  
     10.2 Bahnbrechende Innovationen 292  
        10.2.1 Innovationsfeld 1: Systematische Wiederverwendung 292  
        10.2.2 Innovationsfeld 2: Modellgetriebene Entwicklung 293  
     10.3 Komplexität und die Abstraktionslücke 295  
        10.3.1 Arten von Komplexität in der Softwareentwicklung 295  
        10.3.2 Die Abstraktionslücke 296  
        10.3.3 Verkleinern der Abstraktionslücke 297  
     10.4 Zusammenfassung 298  
  11 Produktlinien für Software 300  
     11.1 Was sind Produktlinien? 300  
        11.1.1 Vom Softwaresystem zur Standardplattform 301  
        11.1.2 Grundlegende Begriffe 303  
        11.1.3 Wann sind Softwareproduktlinien sinnvoll? 306  
        11.1.4 Softwareproduktlinien in drei Dimensionen 312  
        11.1.5 Wiederverwendung als treibende Kraft 313  
     11.2 Aktivitäten und Vorgehen 316  
        11.2.1 Wesentliche Aktivitäten zum Betrieb einer Produktlinie 316  
        11.2.2 Tätigkeiten des Softwarearchitekten 318  
        11.2.3 Allgemeine Schritte zum Produktlinienentwurf 320  
        11.2.4 Softwarebezogene Schritte zur Einführung 321  
     11.3 Architektur und Software Engineering 322  
        11.3.1 Aufgaben für Architekt und Softwareingenieur 322  
        11.3.2 Komponenten - Grundbausteine der Produktlinie 326  
        11.3.3 Objektorientierte Frameworks 328  
     11.4 Technische und organisatorische Aufgaben 331  
        11.4.1 Technische Aufgaben 331  
        11.4.2 Organisatorische Aufgaben 333  
     11.5 Zusammenfassung 333  
  12 Modellbasierte Entwicklung mit MDA und DSLs 336  
     12.1 Grundidee von MDA 337  
     12.2 Konzepte 339  
        12.2.1 Modelle 339  
        12.2.2 Transformationen 342  
     12.3 Metamodellierung 344  
        12.3.1 Vier-Schichten-Modell der Metamodellierung 345  
     12.4 Fallstudie 347  
        12.4.1 Plattformunabhängiges Modell (PIM) 347  
        12.4.2 Technische Lösung und Markierungen 348  
        12.4.3 Transformation PIM zu PSM 349  
        12.4.4 Plattformabhängiges Modell (PSM) 350  
        12.4.5 Transformation PSM zu Code 351  
     12.5 Alternative: Domänenspezifische Sprachen 353  
        12.5.1 Grundidee der domänenspezifischen Sprachen 353  
        12.5.2 Werkzeugunterstützung für DSLs 355  
        12.5.3 Anwendungsfelder 357  
     12.6 Zusammenfassung 358  
  Literatur 362  
  Index 368  

Kategorien

Service

Info/Kontakt