Langlebige Software-Architekturen

Technische Schulden analysieren, begrenzen und abbauen

Carola Lilienthal

Cite this publication as

Carola Lilienthal, Langlebige Software-Architekturen (2019), dpunkt.verlag, Heidelberg, ISBN: 9783960888963

3691
accesses
108
quotes

Description / Abstract

Standardwerk zur SoftwarearchitekturSchließt die Lücke zwischen Softwarearchitektur und Implementierung der Codebasis
- Einfache und übersichtliche Strukturierung aller wichtigen Grundkonzepte im Bereich der Softwarearchitektur, die die typischen Fehler in der Softwarearchitektur von großen Softwaresysteme aufzeigen und sinnvolle Lösungen vermitteln.
- Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen
Zu Beginn eines Projekts erarbeiten die Architekten und das Entwicklungsteam eine zugeschnittene Architekturblaupause für die anstehende Entwicklung. Aber während der Implementierung weicht das Team häufig ungewollt von dieser Vorgabe ab. Die Folge davon: Die Architektur des Systems erodiert, die Komplexität nimmt zu, und es werden technische Schulden aufgebaut. Wartung und Erweiterung der Software werden immer aufwendiger.
In diesem Buch zeigt die Autorin, welche Fehler in Softwareprojekten bei der Umsetzung der Architektur vermieden werden sollten und welche Prinzipien eingehalten werden müssen, um langlebige Architekturen zu entwerfen oder bei bestehenden Systemen zu langlebigen Architekturen zu gelangen. Sie geht auf Muster in Softwarearchitekturen und Mustersprachen ein, erläutert verschiedene Architekturstile und zeigt, welche Vorgaben letztlich zu Architekturen führen, die für Entwickler noch gut durchschaubar sind.
Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen werden schlechte und gute Lösungen verständlich und nachvollziehbar dargestellt. Empfehlungen und vielfältige Hinweise aus Praxisprojekten erlauben dem Leser einen direkten Transfer zu seiner täglichen Arbeit.
Die 3. Auflage wurde in einzelnen Aspekten überarbeitet und insbesondere bei den Themen Domain-Driven Design und Microservices ergänzt. Neu aufgenommen wurden die Analyse von TypeScript-Systemen sowie Clean-, Onion- und hexagonale Architekturen.

Description

Dr. Carola Lilienthal ist Geschäftsführerin der WPS Workplace Solutions GmbH in Hamburg und verantwortet dort den Bereich Softwarearchitektur. Sie hat 1995 an der Universität Hamburg ihr Diplom in Informatik gemacht und dort zum Thema "Komplexität von Softwarearchitekturen" promoviert. Seit 2003 analysiert sie international im Auftrag ihrer Kunden die Architektur von Softwaresystemen und berät Entwicklungsteams, wie sie die Langlebigkeit ihrer Softwaresysteme verbessern können. Insgesamt hat sie mit ihrem Team über dreihundert Softwaresysteme zwischen 30000 und 15 Mio. LOC in Java, C++, C#, ABAP, PHP und TypeScript untersucht. Besonders am Herzen liegt ihr die Ausbildung von Softwarearchitekten und Entwicklern, weshalb sie aktives Mitglied bei iSAQB, International Software Architecture Qualification Board, ist und ihr Wissen aus über 25 Jahren Softwareentwicklung regelmäßig auf Konferenzen, in Artikeln und bei Schulungen weitergibt.

Table of content

  • BEGINN
  • 1 Einleitung
  • 1.1 Softwarearchitektur
  • 1.2 Langlebigkeit
  • 1.3 Technische Schulden
  • 1.4 Was ich mir alles anschauen durfte
  • 1.5 Wer sollte dieses Buch lesen?
  • 1.6 Wegweiser durch das Buch
  • 2 Aufspüren von technischen Schulden
  • 2.1 Begriffsbildung für Bausteine
  • 2.2 Soll- und Ist-Architektur
  • 2.3 Verbesserung am lebenden System
  • 2.4 False Positives und generierter Code
  • 2.5 Spickzettel zum Sotographen
  • 3 Architektur in Programmiersprachen
  • 3.1 Java-Systeme
  • 3.2 C#-Systeme
  • 3.3 C++-Systeme
  • 3.4 ABAP-Systeme
  • 3.5 PHP-Systeme
  • 3.6 TypeScript -Systeme
  • 4 Architekturanalyse und -verbesserung
  • 4.1 Entwickler und Architektur
  • 4.2 Architekturarbeit ist eine Holschuld
  • 4.3 Live-Workshop zur Architekturverbesserung
  • 4.4 Der Umgang mit den Vätern und Müttern
  • 4.5 Modularity Maturity Index (MMI)
  • 4.6 Technische Schulden im Lebenszyklus
  • 5 Kognitive Psychologie und Architekturprinzipien
  • 5.1 Modularität
  • 5.2 Musterkonsistenz
  • 5.3 Hierarchisierung
  • 5.4 Zyklen = misslungene Modularität + Muster
  • 5.5 Konsequenzen für die Architekturanalyse
  • 6 Architekturstile gegen technische Schulden
  • 6.1 Regeln von Architekturstilen
  • 6.2 Trennung von fachlichen und technischen Bausteinen
  • 6.3 Schichtenarchitekturen
  • 6.4 Hexagonal, Onion und Clean Architecture
  • 6.5 Microservices und Domain-Driven Design
  • 6.6 Mustersprachen
  • 6.7 Langlebigkeit und Architekturstile
  • 7 Muster in Softwarearchitekturen
  • 7.1 Abbildung der Soll-Architektur auf die Ist-Architektur
  • 7.2 Die ideale Struktur: fachlich oder technisch?
  • 7.3 Schnittstellen von Bausteinen
  • 7.4 Interfaces – das architektonische Allheilmittel?
  • 7.5 Der Wunsch nach Microservices
  • 8 Mustersprachen – der architektonische Schatz!
  • 8.1 Die Schatzsuche
  • 8.2 Die Ausgrabungsarbeiten
  • 8.3 Aus der Schatztruhe
  • 8.4 Den Goldanteil bestimmen
  • 8.5 Jahresringe
  • 8.6 Unklare Muster führen zu Zyklen
  • 9 Chaos in Schichten – der tägliche Schmerz
  • 9.1 Bewertung des Durcheinanders
  • 9.2 Das große Wirrwarr
  • 9.3 Uneven Modules
  • 10 Modularität schärfen
  • 10.1 Kohäsion von Bausteinen
  • 10.2 Größen von Bausteinen
  • 10.3 Größen von Klassen
  • 10.4 Größe und Komplexität von Methoden
  • 10.5 Lose Kopplung
  • 10.6 Kopplung und Größe von Klassen
  • 10.7 Wie modular sind Sie?
  • 11 Geschichten aus der Praxis
  • 11.1 Das Java-System Alpha
  • 11.2 Das C#-System Gamma
  • 11.3 Das C++-System Beta
  • 11.4 Das Java-System Delta
  • 11.5 Das Java-System Epsilon mit C#-Satelliten
  • 11.6 Das ABAP-System Lambda
  • 12 Fazit: der Weg zu langlebigen Architekturen
  • Anhang
  • A Analysewerkzeuge
  • Literatur
  • Index

Related titles

    More of this author(s)