Creado por Lukas Holzner
hace 10 meses
|
||
softwareintensives System
Rolle der Softwarearchitektur
Vorteile der Softwarearchitektur
Arten von Architektur
Inhalte der Geschäftsarchitektur
Inhalte der Prozessarchitektur
Inhalt der Integrationsarchitektur
Inhalt der Anwendungsarchitektur
Inhalt der Infrastrukturarchitektur
Definition: Softwarearchitektur
Rolle von Software-Architektur im Entwicklungsprozess
Nutzen von Software-Architektur
Definition: Baustein
Arten von Bausteinen
Aspekte von Bausteinen
Arten von Sichten
Blackbox-Sicht (Außensicht)
Whitebox-Sicht (Glasbox-/Innensicht)
Greybox-Sicht (Konfigurationssicht)
Verantwortung des Architekten bei Blackbox-Bausteinen
Verantwortung des Architekten bei Whitebox-Zerlegung
Definition: Schnittstelle
Postel's Law
Orte der Schnittstellendefinition
Ziele von Software-Architekturen
Aufgaben des Software-Architekten
Abwägungen
angrenzende Rollen an den Software-Architekten
Informationen sammeln
Fragen zu Lösungsidee
Was ist die Kernaufgabe des Systems?
Wie wird das System genutzt?
Wer nutzt das System?
Welche Schnittstellen gibt es?
Wie verwaltet das System Daten?
Wie wird das System gesteuert?
Systemidee kommunizieren
Einflussfaktoren und Randbedingungen klären
typische Risiken
Risiken identifizieren
Qualitätseigenschaften
Qualitätsmerkmale der Eigenschaft Funktionalität
Qualitätsmerkmale der Eigenschaft Zuverlässigkeit
Qualitätsmerkmale der Eigenschaft Benutzbarkeit
Qualitätsmerkmale der Eigenschaft Effizienz
Qualitätsmerkmale der Eigenschaft Sicherheit
Qualitätsmerkmale der Eigenschaft Kompatibilität
Qualitätsmerkmale der Eigenschaft Wartbarkeit
Qualitätsmerkmale der Eigenschaft Portierbarkeit
Produktkarton mit Beipackzettel
Top-Down-Entwurf
Bottom-Up-Entwurf
Vorteile Top-Down-Entwurf
Nachteile Top-Down-Entwurf
Vorteile Bottom-Up-Entwurf
Nachteile Bottom-Up-Entwurf
Architekturebenen
fachliche Umgangsformen
Entwurf nach Zuständigkeiten
Entwurfsprinzipien
Law of Demeter
Ziele von gutem Design
Kopplung
Zyklenfreiheit
fachliche Architekturansätze
Transaction Script
Table Module
Domain Model
CRC-Karten
Vorgehen bei CRC-Karten-Modellierung
Vermeiden bei CRC-Karten-Modellierung
Architekturstil
Schichtung
Vorteile von Schichtung
Nachteile von Schichtung
Schwierigkeiten & Lösungen für die Infrastrukturschicht
Effekte durch Zwang zur Zyklenfreiheit
Trennung fachlicher und technischer Bestandteile
Architekturen die Fachlichkeir und Technik trennen
Elemente der Domain-Schicht
DDD Entities
DDD ValueObjects
DDD Services
DDD Factories
DDD Repositories
DDD Aggregates
DDD Schichtenarchitektur
Werkezug-Material-Ansatz
Conway's Law
Zuordnung Bausteine zu Teams
Monolith vs. Microservices
Entwurfsmuster
Ziele von Entwurfsmustern
Factory-Pattern
Vor-/Nachteile des Factory-Pattern
Adapter-Pattern
Klassenadapter
Objektadapter
Brückenmuster
Vor-/Nachteile des Brückenmusters
Fassadenmuster
Vor-/Nachteile des Fassadenmusters
Proxymuster
Vor-/Nachteile des Proxymusters
Dekorierermuster
(Decorator Pattern)
Vor-/Nachteile des Dekorierermusters
Beobachtermuster
(Observer Pattern)
M(odel)-V(iew)-C(ontroller) Muster
Broker (Vermittler)-Muster
Vorteile Brokermuster
Nachteile Brokermuster
SOLID
Single Responsibility Principle (SRP)
Open/Closed Principle (OCP)
Liskov Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
Inversion of Control (IoC)
Dependency Injection (DI)
Varianten von Dependency Injection
Constructor Injection
Setter Injection
Field Injection
Interface Injection
Vor-/Nachteile von Dependency Injection
Dependency Injection Framework
Was gehört unter DI-Kontrolle?
Logische Ebenen für Client/Server-Verteilung
Anforderungen an die technische Infrastruktur
Mögliche Client/Server-Schnitte
Fat-Client
Rich-Client
Thin-Client
Ultra-Light/Thin-Client
Dimensionen für Gestaltung von IT-Arbeitsplätzen
Integration verteilter Anwendungen
Ansätze für die Integration
File Transfer
Shared Database
Remote Procedure Invocation
Messaging
Message-Oriented Middleware (MOM)
Auswirkungen asynchroner Komunikation
Delivering im MOM
Herausforderung durch MOM
Integration von Alt-/Fremdsystemen
Probleme bei verteilten Anwendungen
Lösungen für verteilte Systeme
Probleme bei Integration bestehender Systeme (Legacy)
Lösungen für Legacy-Systeme
Warum gibt es Service-Oriented Architecture (SOA)?
Was ist SOA?
Wie funktioniert SOA?
Kopplung zwischen Services
Peer-to-Peer
Blackboard
Technische Architektur
Paradigmen von Datenbanken
Risiken und Probleme der Persistenz
Lösungsmuster der Persistenz
Anforderungen an Persistenzschicht
Kommunikation und Nebenläufigkeit
grafische Oberflächen
Probleme der Internationalisierung
Lösungen für Internationalisierung
Sicherheit
Probleme der Sicherheit
Lösungen für Sicherheit
Probleme der Protokollierung
Lösungen für Protokollierung
Ausnahme- und Fehlerbehandlung
Fehlerkategorien
Muster zur Fehlerbehandlung
Energieeffizienz
Warum Architektur dokumentieren?
Ziele der Architekturdokumentation
stakeholder gerechte Beschreibung
Architektursichten
Arten von Architektursichten
Kontextsicht
Bausteinsicht
Verteilungssicht
Laufzeitsicht
Diagramm-/Dokumentarten für Sichten
Paketdiagramm
Komponentendiagramm
Zeit(verlaufs)diagramm
Aktivitätsdiagramm
Verteilungsdiagramm
Kompositionsstrukturdiagramm
Kommunikationsdiagramm
Interaktionsübersichtsdiagramm
Use-Case-Diagramm
IT-Landschaft
Glossar
Szenarien & Visionen
Leitfragen für Entscheidungen
Schnittstellendokumentation
ARC42
typische Architekturdokumente