
Modulare Softwarearchitektur
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Person
ISNI: 0000 0005 1549 7141
Content
- Intro
- Inhalt
- Vorwort
- Danksagung
- Der Autor
- 1 Über Softwarearchitektur
- 1.1 Die Softwarekrise
- 1.2 Was ist Softwarearchitektur überhaupt?
- 1.2.1 Wartbarkeit von Code
- 1.2.2 Modularisierung und andere Qualitäten von Software
- 1.3 Was ist Softwarearchitektur definitiv nicht?
- 1.4 Woran erkennt man, dass man Probleme hat?
- 1.4.1 Keine Agilität möglich
- 1.4.2 In exibilität bei Release
- 1.4.3 Tests sind schwierig
- 1.4.4 Seitene ekte
- 1.4.5 Teure Weiterentwicklung
- 1.5 Wann ist Modularisierung?
- 1.6 Digitalisierung und Legacy-Krise
- 2 Effiziente Strukturierung auf Code-Ebene
- 2.1 Die ideale Methode und das Single-Responsibility Prinzip
- 2.1.1 Das Single-Level-of-Abstraction-Prinzip
- 2.1.2 Tutorial #01: Single-Level-of-Abstraction
- 2.2 Schnittstellen
- 2.2.1 Design-by-Contract
- 2.2.2 Interface-Segregation
- 2.2.3 Abstraktionen statt Implementierungen
- 2.3 Vererbung
- 2.3.1 Composition over Inheritance
- 2.3.2 Liksov's Substitutionsprinzip
- 2.4 Immutability
- 2.5 Über Prinzipien, Pattern und Antipattern
- 2.5.1 Prinzipien
- 2.5.2 Pattern
- 2.5.3 Antipattern
- 2.6 Aber .
- 3 Strukturen auf Modul-Ebene
- 3.1 Information Hiding
- 3.1.1 Tutorial #08: Kapselung
- 3.1.2 Principle of Least Knowledge (Law of Demeter)
- 3.1.3 Keine Leaks von Internas in Schnittstellen
- 3.2 Kohäsion
- 3.2.1 Tutorial #10: Erhöhung der Kohäsivität
- 3.3 Abhängigkeiten
- 3.3.1 Abhängigkeitszyklen
- 3.4 Open-Closed
- 3.4.1 Tutorial #13: Factory-Method Pattern
- 3.4.2 Tutorial #14: ServiceLoader
- 3.5 Enge Kopplung bei Code-Reuse
- 3.5.1 Organisatorische Abhängigkeit
- 3.5.2 Daten- und Formatabhängigkeit
- 3.6 Werkzeuge
- 3.6.1 Programmiersprachen
- 3.6.2 Werkzeuge
- 4 5C Design
- 4.1 CUT - Richtig schneiden
- 4.1.1 Vertikale vs. Horizontale Abtrennung
- 4.2 CONCEAL - Verbergen
- 4.3 CONTRACT - Schnittstelle festlegen
- 4.3.1 Antipattern
- 4.3.2 Pattern
- 4.4 CONNECT - Verbinden
- 4.4.1 Formen der Kopplung
- 4.4.2 Antipattern
- 4.4.3 Pattern
- 4.5 CONSTRUCT - Aufbauen
- 4.5.1 Anitpattern
- 4.5.2 Pattern
- 5 Metriken
- 5.1 Strukturelle Codemetriken
- 5.1.1 Unit-Test-Abdeckung und das Legacy-Code-Dilemma
- 5.1.2 Komplexität und Modulgröße
- 5.1.3 Sichtbarkeit
- 5.1.4 Koha¨sion
- 5.1.5 Software-Package-Metriken nach Robert C.?Martin
- 5.1.6 Metriken nach John Lakos
- 5.1.7 Relative Cyclicity
- 5.1.8 Metriken der Objektorientierten Programmierung (OOP)
- 5.1.9 Component Rank
- 5.1.10 Weitere Metriken
- 5.2 Über den sinnvollen Einsatz von Metriken
- 5.2.1 Mögliche Probleme beim Einsatz von Software-Metriken
- 5.2.2 Mögliche Lösungsansätze
- 5.3 Strukturelle Metriken und Verteilte Systeme
- 6 Domänengetriebener Entwurf - Domain Driven Design (DDD)
- 6.1 Ubiquitous Language
- 6.2 Aufteilung in Subdomänen
- 6.3 Bounded Context
- 6.4 Integration
- 6.4.1 Shared Kernel
- 6.4.2 Published Language
- 6.4.3 Conformist
- 6.4.4 Customer/Supplier
- 6.4.5 Partnership
- 6.4.6 Open/Host Service
- 6.4.7 Anticorruption Layer
- 6.4.8 Separate Ways
- 6.5 Upstream/Downstream-Beziehungen
- 6.6 Context Map
- 6.7 Beispiel
- 6.8 Fazit
- 7 Verteilte Systeme
- 7.1 Services
- 7.2 Herausforderungen Verteilter Systeme
- 7.2.1 CAP-Theorem
- 7.2.2 Unsichere Kommunikation und Idempotenz
- 7.2.3 Konsistenz in verteilten Systemen
- 7.3 Vor- und Nachteile der Verteilung
- 7.3.1 Technische Freiheit
- 7.3.2 Deployment und Release
- 7.3.3 Fehlerisolation/Graceful Degradation
- 7.3.4 Erosion der Struktur
- 7.3.5 Komplexität
- 7.3.6 Skalierbarkeit
- 7.4 Representational State Transfer (REST)
- 7.4.1 Level 1
- 7.4.2 Level 2
- 7.4.3 Level 3
- 8 Makro-Architektur
- 8.1 Conway's Law
- 8.1.1 Die ideale Teamgröße
- 8.1.2 Das Spotify-Modell
- 8.2 Organisation der Makro-Architekturarbeit
- 8.2.1 Das klassische Anti-Pattern
- 8.2.2 Strategie und Taktik
- 8.2.3 Dokumentation
- 8.2.4 Architekturbewertung
- 8.3 Architektur-Muster/-Stile
- 8.3.1 Service-orientierte Architektur (SOA) im klassischen Sinn
- 8.3.2 Microservices
- 8.3.3 Self Contained Systems (SCS)
- 8.3.4 Modulare Monolithen
- 8.3.5 Hybride Ansätze
- 9 Komplexes Refactoring
- 9.1 Qualitätsmängel
- 9.1.1 Analyse und Zieldefinition
- 9.1.2 Managing Technical Debt (mit aim42)
- 9.1.3 Strategisches Refactoring
- 9.1.4 Kombinationen
- 9.1.5 Entwicklung neuer Features
- 9.2 Technische Migration
- 9.2.1 Indirektionen/Minimieren der Abhängigkeit
- 9.2.2 Standards
- 9.2.3 Langweilige, alte und bewährte Technologien verwenden
- 9.2.4 Verteilte Systeme bauen
- 9.2.5 Technologie-agnostische Kommunikation
- 9.2.6 Libraries statt Frameworks
- 9.2.7 Minimalinvasive Technologien
- 9.3 Stakeholder überzeugen
- 9.3.1 Metriken
- 9.3.2 4-MAT
- 9.4 Zusammenfassung
- 10 Zusammanfassung, Fazit und Ausblick
- 10.1 Vorgehen bei einer Dekomposition
- 10.1.1 Auflösung einer Smart-Pipe
- 10.1.2 Das finale Tutorial #16: Vertikalität
- 10.2 Die Grenzen der Zerlegung
- 10.3 Tipps zum Scheitern
- 10.3.1 Fallen Sie auf Bullshit rein
- 10.3.2 Legen Sie Konzepte als Ziele fest
- 10.3.3 Glauben Sie ganz fest an Hypes
- 10.3.4 Haben Sie keine vernünftige Kultur des Debattierens
- 10.3.5 Überzeugen Sie unsere Personalabteilung mit Ihrem Lebenslauf
- 10.3.6 Ignorieren Sie Feedback Ihres Teams zu Machbarkeit und Sinnhaftigkeit
- 10.3.7 Betreiben Sie Cargo-Kulte
- 10.3.8 Verlassen Sie sich darauf, dass die Teams sich immer selbst organisieren
- 10.3.9 Sorgen Sie für ein hohes Maß an Produktivität durch eine hohe Auslastung der Mitarbeiter
- 10.4 Nachhaltige Softwarearchitektur
- 10.5 Key-Take-Aways
- 11 Anhang
- 11.1 Prinzipien
- 11.2 Antipattern und klassische Denkfehler
- 11.3 Gesetze der Softwareentwicklung
- 11.4 Klassische Trade-offs (Kompromisse) der Softwareentwicklung
- 11.5 Begriffe
- Literatur
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.