Zum Inhalt

07. Artefakte & Dokumentation

Lernziele

Nach diesem Kapitel können Sie: - Wichtige Artefakte in IT-Projekten identifizieren und erstellen - Komponentensteckbriefe (Component Briefs) strukturieren - Schnittstellenkataloge (Interface Catalogs) erstellen - Projektstrukturpläne (PSP/WBS) aufstellen - Dokumentationsstandards und Vorlagen anwenden - Die Bedeutung von Dokumentation für den Projekterfolg begründen

Lesezeit

ca. 15-20 Minuten

1. Einführung: Warum Artefakte und Dokumentation entscheidend sind

Artefakte und Dokumentation sind die "Bausteine" eines IT-Projekts. Sie strukturieren die Arbeit, dokumentieren Entscheidungen und bilden die Basis für Wissensmanagement und Wiederverwendbarkeit.

flowchart TD
    A[Artefakte & Dokumentation] --> B[Strukturierung]
    A --> C[Dokumentation von Entscheidungen]
    A --> D[Wissensmanagement]
    A --> E[Wiederverwendbarkeit]

    B --> F[Transparenz & Kontrollierbarkeit]
    C --> G[Nachvollziehbarkeit & Verantwortung]
    D --> H[Wissensverlust vermeiden]
    E --> I[Effizienzsteigerung durch Wiederverwendung]

    F --> J[Projekterfolg]
    G --> J
    H --> J
    I --> J

    style J fill:#e1ffe1

1.1 Artefakte vs. Dokumentation

Begriff Beschreibung Beispiele
Artefakte Konkrete Ergebnisse (Produkte, Modelle, Code) Software, Datenbank-Schema, Architektur-Diagramm
Dokumentation Beschreibungen und Anleitungen Spezifikationen, Handbücher, README-Dateien

Beziehung: Artefakte werden durch Dokumentation beschrieben, Dokumentation bezieht sich auf Artefakte.

1.2 Die Rolle des IT-Beraters bei Artefakten und Dokumentation

Der IT-Berater ist oft derjenige, der: - Artefakte identifiziert und strukturiert - Vorlagen und Standards erstellt - Die Qualität der Dokumentation sicherstellt - Wissensmanagement initiiert

2. Komponentensteckbriefe (Component Briefs)

2.1 Grundkonzept

Ein Komponentensteckbrief (auch Component Brief oder Component Card genannt) ist eine strukturierte Beschreibung einer Systemkomponente. Er dient als "Datenblatt" für Entwickler, Architekten und Stakeholder.

2.2 Struktur eines Komponentensteckbriefs

Template:

# Komponentensteckbrief: [Name der Komponente]

## Metadaten
- **ID:** [Unique ID, z.B. COM-001]
- **Name:** [Name der Komponente]
- **Version:** [Version, z.B. 1.0]
- **Status:** [Status, z.B. In Development, In Production]
- **Eigentümer:** [Verantwortliche Person/Team]
- **Zuletzt aktualisiert:** [Datum]

## Zusammenfassung
[Kurze Beschreibung der Komponente (1-2 Sätze)]

## Zweck & Ziel
- **Geschäftlicher Zweck:** [Welches Geschäftsproblem wird gelöst?]
- **Technischer Zweck:** [Welche technische Aufgabe erfüllt die Komponente?]

## Verantwortlichkeiten
- **Funktionen:** [Was macht die Komponente?]
- **Eingaben:** [Welche Daten/Ereignisse nimmt die Komponente auf?]
- **Ausgaben:** [Welche Daten/Ereignisse gibt die Komponente ab?]

## Schnittstellen
- **Abhängigkeiten:** [Von welchen Komponenten ist diese Komponente abhängig?]
- **Abhängige Komponenten:** [Welche Komponenten hängen von dieser Komponente ab?]
- **APIs:** [Welche APIs werden angeboten oder konsumiert?]

## Nicht-funktionale Anforderungen
- **Performance:** [z.B. Antwortzeit < 2 Sekunden, 10.000 Requests/Minute]
- **Sicherheit:** [z.B. OAuth 2.0, Verschlüsselung At Rest]
- **Verfügbarkeit:** [z.B. 99.9% Uptime]
- **Skalierbarkeit:** [z.B. Horizontal Scaling, Auto-Scaling]

## Technologie-Stack
- **Sprache:** [z.B. Java 17, Python 3.11]
- **Framework:** [z.B. Spring Boot 3.2, Django 5.0]
- **Datenbank:** [z.B. PostgreSQL 15, MongoDB 6.0]
- **Deployment:** [z.B. Kubernetes, Docker Compose]

## Betrieb & Monitoring
- **Deployment-Strategie:** [z.B. Blue-Green Deployment, Rolling Update]
- **Monitoring:** [z.B. Prometheus, CloudWatch, Application Insights]
- **Logging:** [z.B. ELK Stack, CloudWatch Logs]
- **Alerting:** [z.B. PagerDuty, OpsGenie]

## Governance
- **Code-Review-Prozess:** [z.B. 2 Reviewer, SonarQube-Check]
- **Testing-Strategie:** [z.B. Unit Tests, Integration Tests, E2E Tests]
- **Release-Prozess:** [z.B. CI/CD-Pipeline, GitHub Actions]
- **Rollback-Strategie:** [z.B. Automatischer Rollback bei Fehler]

## Stakeholder
- **Entwickler:** [Team verantwortlich für Entwicklung]
- **QA:** [Team verantwortlich für Testing]
- **Ops:** [Team verantwortlich für Betrieb]
- **Produktmanagement:** [Produktmanager verantwortlich für Anforderungen]

## Risiken & Abhängigkeiten
- **Risiken:** [Welche Risiken bestehen?]
- **Abhängigkeiten:** [Welche externen Abhängigkeiten gibt es?]

## Metriken & KPIs
- **Performance-KPIs:** [z.B. Response Time P95 < 1 Sekunde]
- **Quality-KPIs:** [z.B. Bug Density < 1 Bug/1000 LOC]
- **Availability-KPIs:** [z.B. Uptime > 99.9%]

2.3 Beispiel: Payment-Service

# Komponentensteckbrief: Payment-Service

## Metadaten
- **ID:** COM-PAY-001
- **Name:** Payment-Service
- **Version:** 1.0
- **Status:** In Production
- **Eigentümer:** Payments Team
- **Zuletzt aktualisiert:** 2024-01-15

## Zusammenfassung
Der Payment-Service ist für die Abwicklung von Kreditkarten- und PayPal-Zahlungen zuständig. Er integriert zu Stripe, PayPal und Adyen.

## Zweck & Ziel
- **Geschäftlicher Zweck:** Ermöglicht Kunden die Bezahlung von Bestellungen mit Kreditkarte und PayPal
- **Technischer Zweck:** Abstraktion und Konsolidierung von Payment-Provider-APIs

## Verantwortlichkeiten
- **Funktionen:**
  - Kreditkarten-Zahlungen (Stripe)
  - PayPal-Zahlungen (PayPal)
  - Zahlungen via Adyen
  - Refund-Prozess
  - Zahlungs-Status-Tracking
- **Eingaben:**
  - Zahlungsanfrage (Betrag, Währung, Zahlungsart, Bestell-ID)
  - Refund-Anfrage (Zahlungs-ID, Betrag)
- **Ausgaben:**
  - Zahlungsbestätigung (Zahlungs-ID, Status, Transaktions-ID)
  - Fehlermeldung (Fehlercode, Nachricht)

## Schnittstellen
- **Abhängigkeiten:**
  - User-Service (Benutzerdaten)
  - Order-Service (Bestelldaten)
  - Notification-Service (Zahlungsbenachrichtigungen)
- **Abhängige Komponenten:**
  - Order-Service (Zahlungsstatus für Bestellungen)
  - Billing-Service (Rechnungserstellung)
- **APIs:**
  - REST API `/api/v1/payments` (POST, GET, PUT)
  - Webhooks für Payment-Provider (Stripe Webhook, PayPal Webhook)

## Nicht-funktionale Anforderungen
- **Performance:**
  - Antwortzeit: P95 < 1 Sekunde
  - Durchsatz: 10.000 Payment-Requests/Minute
- **Sicherheit:**
  - PCI DSS Compliance
  - OAuth 2.0 für interne Services
  - TLS 1.3 für externe Aufrufe
  - Verschlüsselung sensibler Daten At Rest (AES-256)
- **Verfügbarkeit:**
  - 99.95% Uptime (max. 21.9 Minuten Ausfall/Jahr)
- **Skalierbarkeit:**
  - Horizontal Scaling (Kubernetes HPA)
  - Auto-Scaling basierend auf CPU-Last

## Technologie-Stack
- **Sprache:** Java 17
- **Framework:** Spring Boot 3.2
- **API-Style:** REST mit OpenAPI 3.0
- **Datenbank:** PostgreSQL 15
- **Cache:** Redis 7
- **Deployment:** Kubernetes (Helm Charts)
- **Monitoring:** Prometheus + Grafana
- **Logging:** ELK Stack (Elasticsearch, Logstash, Kibana)

## Betrieb & Monitoring
- **Deployment-Strategie:** Blue-Green Deployment
- **Monitoring:**
  - Response Time (P50, P95, P99)
  - Error Rate
  - Request Rate
  - Provider-Specific Metrics (Stripe, PayPal, Adyen)
- **Logging:**
  - Strukturierte Logs (JSON)
  - Correlation IDs für Request-Tracking
  - Sensitive Data Masking (PCI DSS Compliance)
- **Alerting:**
  - Error Rate > 1% → PagerDuty Alert
  - Response Time P95 > 2 Sekunden → OpsGenie Alert
  - Provider-Down → PagerDuty Alert

## Governance
- **Code-Review-Prozess:**
  - Mindestens 2 Reviewer pro Pull Request
  - SonarQube Quality Gate (Code Quality > 80)
- **Testing-Strategie:**
  - Unit Tests (Mocking von Payment-Providern)
  - Integration Tests (Payment-Provider Sandbox)
  - E2E Tests (Kreditkarten-Zahlung, PayPal-Zahlung)
- **Release-Prozess:**
  - CI/CD-Pipeline (GitHub Actions)
  - Automatisiertes Deployment nach Merge in main
  - Canary Deployment (10% → 50% → 100%)
- **Rollback-Strategie:**
  - Automatischer Rollback bei Error Rate > 5%
  - Manueller Rollback über Kubernetes Rollout Command

## Stakeholder
- **Entwickler:** Payments Team (3 Developer)
- **QA:** QA Team (2 QA Engineer)
- **Ops:** DevOps Team (2 DevOps Engineer)
- **Produktmanagement:** Product Manager Payments
- **Compliance:** DPO & Security Team (PCI DSS Compliance)

## Risiken & Abhängigkeiten
- **Risiken:**
  - Payment-Provider-Ausfall (Mitigation: Multi-Provider, Fallback-Strategie)
  - PCI DSS Compliance-Verletzung (Mitigation: Regular Security Audits, Penetration-Tests)
  - Performance-Probleme bei Peak-Lasten (Mitigation: Auto-Scaling, Cache)
- **Abhängigkeiten:**
  - Stripe API (Dependency Level: High)
  - PayPal API (Dependency Level: Medium)
  - Adyen API (Dependency Level: Low)
  - PostgreSQL (Dependency Level: High)

## Metriken & KPIs
- **Performance-KPIs:**
  - Response Time P95 < 1 Sekunde
  - Request Rate > 5.000/Minute bei Peak-Lasten
- **Quality-KPIs:**
  - Bug Density < 1 Bug/1000 LOC
  - Payment-Success Rate > 95%
  - Refund-Success Rate > 98%
- **Availability-KPIs:**
  - Uptime > 99.95% (max. 21.9 Minuten Ausfall/Jahr)
  - Provider-Uptime-Availability > 99.9%

3. Schnittstellenkataloge (Interface Catalogs)

3.1 Grundkonzept

Ein Schnittstellenkatalog (Interface Catalog) ist eine strukturierte Auflistung aller Schnittstellen zwischen Komponenten, Systemen und externen Partnern. Er ist essenziell für die Integration, das Testen und das Verständnis der Systemarchitektur.

3.2 Struktur eines Schnittstellenkatalogs

Feld Beschreibung Beispiel
ID Eindeutige Identifikation der Schnittstelle IF-001
Name Name der Schnittstelle Payment-API
Typ Art der Schnittstelle (REST, GraphQL, gRPC, Message Queue, etc.) REST
Konsument Wer nutzt die Schnittstelle? Order-Service, Billing-Service
Provider Wer stellt die Schnittstelle bereit? Payment-Service
Zweck Warum wird die Schnittstelle benötigt? Zahlungsabwicklung
Endpunkt URL oder Pfad /api/v1/payments
Methoden HTTP-Methoden (GET, POST, PUT, DELETE, etc.) POST (Zahlung erstellen), GET (Status abfragen)
Authentifizierung Wie wird authentifiziert? OAuth 2.0, JWT, API Key
Autorisierung Wie wird autorisiert? Role-Based Access Control (RBAC)
Request-Format Format der Anfrage JSON
Response-Format Format der Antwort JSON
Rate Limiting Begrenzung der Anfragerate 1.000 Requests/Minute
SLA Service Level Agreement Verfügbarkeit 99.9%, Antwortzeit < 1 Sekunde
Version Version der Schnittstelle v1
Dokumentation Link zur Dokumentation OpenAPI 3.0 Spec
Kontakt Ansprechpartner bei Problemen payments-team@company.com

3.3 Beispiel: Schnittstellenkatalog E-Commerce-System

ID Name Typ Konsument Provider Zweck Endpunkt Methoden Auth SLA
IF-001 User-API REST Order-Service, Payment-Service User-Service Benutzerdaten abfragen /api/v1/users/{id} GET, PUT OAuth 2.0, JWT 99.9%, < 500ms
IF-002 Order-API REST Webshop, Payment-Service Order-Service Bestellungen erstellen und verwalten /api/v1/orders POST, GET, PUT, DELETE OAuth 2.0, JWT 99.9%, < 1s
IF-003 Payment-API REST Order-Service, Billing-Service Payment-Service Zahlungsabwicklung /api/v1/payments POST, GET, PUT OAuth 2.0, JWT + API Key 99.95%, < 1s
IF-004 Product-API REST Webshop, Order-Service Product-Service Produktdaten abfragen /api/v1/products GET, POST, PUT OAuth 2.0, JWT 99.9%, < 500ms
IF-005 Stripe-API REST Payment-Service Stripe (External) Kreditkarten-Zahlungen https://api.stripe.com/v1/charges POST API Key 99.9%, < 1s
IF-006 PayPal-API REST Payment-Service PayPal (External) PayPal-Zahlungen https://api.paypal.com/v2/payments POST OAuth 2.0 99.9%, < 1s
IF-007 Kafka-Orders Message Queue Payment-Service, Notification-Service Order-Service Ereignisbasierte Kommunikation zu Bestellungen Topic: orders Produce, Consume SASL/SCRAM 99.9%, < 100ms

3.4 Best Practices für Schnittstellenkataloge

DO: - ✅ Automatisierte Dokumentation: OpenAPI/Swagger, gRPC Reflection - ✅ Versionierung: Semantische Versionierung (v1, v2, v3) - ✅ SLAs: Definierte Service Level Agreements - ✅ Monitoring: Überwachung der Schnittstellen (Response Time, Error Rate) - ✅ Deprecation-Strategie: Vorankündigung von Änderungen - ✅ Mocking: Mock-Server für Tests

DON'T: - ❌ Breaking Changes ohne Vorankündigung: Breaking Changes ohne Versions-Update - ❌ Undokumentierte Schnittstellen: "Geheime" APIs - ❌ Fehlende Authentifizierung: Unauthentifizierte Schnittstellen - ❌ Kein Rate Limiting: DoS-Anfälligkeit - ❌ Fehlende Fehlerbehandlung: Keine Standard-Fehlercodes - ❌ Keine Monitoring-Integration: "Blindflug" bei Problemen

4. Projektstrukturplan (PSP) / Work Breakdown Structure (WBS)

4.1 Grundkonzept

Der Projektstrukturplan (PSP), international auch Work Breakdown Structure (WBS) genannt, ist eine hierarchische Gliederung der Projektaufgaben in Arbeitspakete.

graph TD
    A[Projekt: CRM-Einführung] --> B[Phase 1: Konzeption]
    A --> C[Phase 2: Entwicklung]
    A --> D[Phase 3: Test & Go-Live]

    B --> B1[Anforderungsanalyse]
    B --> B2[Architektur-Design]
    B --> B3[Entscheidungs-Freigabe]

    C --> C1[Backend-Entwicklung]
    C --> C2[Frontend-Entwicklung]
    C --> C3[Integrationen]

    D --> D1[Testing]
    D --> D2[Go-Live]
    D --> D3[Hypercare]

    C1 --> C1A[User-Service]
    C1 --> C1B[Order-Service]
    C1 --> C1C[Payment-Service]

    C2 --> C2A[Webshop UI]
    C2 --> C2B[Admin-UI]

    C3 --> C3A[Stripe-Integration]
    C3 --> C3B[PayPal-Integration]

4.2 PSP-Beispiel: ERP-Migration

ID Arbeitspaket Beschreibung Verantwortlich Dauer Kosten Vorbedingung
WP-1 Phase 1: Vorstudie
WP-1.1 Ist-Analyse Analyse der aktuellen Prozesse und Systeme Business Analyst 2 Wochen €10.000 -
WP-1.2 Soll-Konzept Definition des Zielzustands Business Analyst 3 Wochen €15.000 WP-1.1
WP-1.3 Vorstudie-Review Review mit Stakeholdern Project Manager 1 Woche €5.000 WP-1.2
WP-2 Phase 2: Konzeption
WP-2.1 Architektur-Design High-Level-Architektur entwerfen Solution Architect 2 Wochen €10.000 WP-1.3
WP-2.2 Data-Modeling Datenbank-Design entwerfen Data Architect 2 Wochen €10.000 WP-2.1
WP-2.3 Integration-Design Schnittstellen zu bestehenden Systemen Integration Architect 2 Wochen €10.000 WP-2.1
WP-3 Phase 3: Entwicklung
WP-3.1 Backend-Entwicklung ERP-Backend entwickeln Backend Team 12 Wochen €120.000 WP-2.3
WP-3.2 Frontend-Entwicklung ERP-Frontend entwickeln Frontend Team 10 Wochen €100.000 WP-2.3
WP-3.3 Integrationen Integrationen zu Dritttsystemen implementieren Integration Team 8 Wochen €80.000 WP-2.3
WP-4 Phase 4: Test & Go-Live
WP-4.1 System-Testing Systemtest und Fehlerbehebung QA Team 4 Wochen €40.000 WP-3.1, WP-3.2, WP-3.3
WP-4.2 User-Acceptance-Test (UAT) UAT mit Fachbereich QA Team 2 Wochen €20.000 WP-4.1
WP-4.3 Go-Live Go-Live und Hypercare DevOps Team 2 Wochen €20.000 WP-4.2

Zusammenfassung:

Phase Dauer Kosten
Phase 1: Vorstudie 6 Wochen €30.000
Phase 2: Konzeption 6 Wochen €30.000
Phase 3: Entwicklung 12 Wochen €300.000
Phase 4: Test & Go-Live 8 Wochen €80.000
Gesamt 32 Wochen €440.000

4.3 Gantt-Diagramm

gantt
    title ERP-Migration Projektplan
    dateFormat  YYYY-MM-DD
    axisFormat  %Y-%m-%d

    section Phase 1: Vorstudie
    Ist-Analyse              :a1, 2024-02-01, 14d
    Soll-Konzept             :a2, after a1, 21d
    Vorstudie-Review         :a3, after a2, 7d

    section Phase 2: Konzeption
    Architektur-Design       :b1, after a3, 14d
    Data-Modeling            :b2, after a3, 14d
    Integration-Design       :b3, after b1, 14d

    section Phase 3: Entwicklung
    Backend-Entwicklung      :c1, after b3, 60d
    Frontend-Entwicklung     :c2, after b3, 50d
    Integrationen             :c3, after b3, 40d

    section Phase 4: Test & Go-Live
    System-Testing           :d1, after c1 c2 c3, 28d
    UAT                      :d2, after d1, 14d
    Go-Live                  :d3, after d2, 14d

5. Dokumentationsstandards und Vorlagen

5.1 Dokumentations-Typen

Typ Zweck Zielgruppe Format
Spezifikationen Anforderungen definieren Stakeholder, Entwickler Markdown, Word, Confluence
Design-Dokumente Architektur und Design dokumentieren Architekten, Entwickler Markdown, PlantUML, draw.io
API-Dokumentation Schnittstellen beschreiben Entwickler, Integration-Partner OpenAPI/Swagger, GraphQL Schema
Benutzerhandbücher Nutzung für Endanwender Anwender, Support PDF, Online Help
Betriebshandbücher Betrieb und Wartung Ops, DevOps Confluence, Wiki
Test-Dokumentation Testfälle und Testergebnisse QA, Entwickler Excel, Test Management Tool

5.2 Dokumentations-Checkliste

Projekt-Start: - [ ] Projektcharter erstellt - [ ] Stakeholder identifiziert - [ ] Anforderungen dokumentiert - [ ] Architektur-Design erstellt - [ ] PSP/WBS erstellt

Projekt-Durchführung: - [ ] Komponentensteckbriefe erstellt - [ ] Schnittstellenkatalog erstellt - [ ] API-Dokumentation (OpenAPI/Swagger) - [ ] Testplan und Testfälle dokumentiert - [ ] Risk-Register gepflegt

Projekt-Abschluss: - [ ] Abschlussbericht erstellt - [ ] Lessons Learned dokumentiert - [ ] User- und Admin-Dokumentation erstellt - [ ] Übergabedokumentation erstellt - [ ] Wissensmanagement aktualisiert

6. Wissensmanagement

6.1 Wissensmanagement-Strategie

graph TD
    A[Wissensmanagement] --> B[Dokumentation]
    A --> C[Training]
    A --> D[Tools & Plattformen]
    A --> E[Kultur]

    B --> B1[Wikis, Confluence]
    C --> C1[Onboarding, Workshops]
    D --> D1[Git, Jira, Confluence]
    E --> E1[Wissensaustausch, Peer-Reviews]

6.2 Wissensarten

Art Beschreibung Beispiel
Expertenwissen Wissen, das in den Köpfen der Experten steckt Architektur-Entscheidungen, Lessons Learned
Explizites Wissen Dokumentiertes Wissen Dokumentation, APIs, Code-Kommentare
Implizites Wissen Erfahrungswissen, nicht direkt dokumentierbar "Wie machen wir das hier eigentlich?", Heuristiken

6.3 Vermeidung von Wissensverlust

Strategien: - Regelmäßige Dokumentation: Aktualisierung nach wichtigen Entscheidungen - Pair Programming: Wissen wird geteilt während der Entwicklung - Code-Reviews: Wissen wird durch Code-Reviews transferiert - Lunch & Learns: Regelmäßige Präsentationen und Workshops - Shadowing: Neue Mitarbeiter schauen erfahrenen Mitarbeitern über die Schulter - Rotaion: Regelmäßiger Wechsel der Aufgabenbereiche - Exit-Interviews: Wissen von austretenden Mitarbeitern erfassen

Schlüsselbegriffe

Begriff Definition
Artefakt Konkretes Ergebnis eines Projekts (Software, Dokumentation, Modelle)
Komponentensteckbrief Strukturierte Beschreibung einer Systemkomponente (Component Brief)
Schnittstellenkatalog Systematische Auflistung aller Schnittstellen (Interface Catalog)
PSP / WBS Projektstrukturplan / Work Breakdown Structure, hierarchische Gliederung von Projektaufgaben
OpenAPI / Swagger Standard für API-Dokumentation (REST APIs)
API Application Programming Interface, Schnittstelle zwischen Software-Komponenten
SLA Service Level Agreement, Vereinbarung über Service-Qualität (Verfügbarkeit, Antwortzeit)
Wissensmanagement Systematische Erfassung, Speicherung und Verteilung von Wissen
Explicit Knowledge Explizites, dokumentiertes Wissen
Implicit Knowledge Erfahrungswissen, Heuristiken, nicht direkt dokumentierbar

Verständnisfragen

Frage 1: Komponentensteckbrief

Sie erstellen einen Komponentensteckbrief für einen "User-Service". Welche Informationen sollten im Abschnitt "Nicht-funktionale Anforderungen" enthalten sein? Geben Sie konkrete Beispiele.

Lösung: Nicht-funktionale Anforderungen (NFRs) im Komponentensteckbrief für User-Service:

Performance: - Response Time: P95 < 500 ms, P99 < 1 Sekunde für Benutzerabfragen - Throughput: 10.000 Requests/Minute für gleichzeitige Benutzeranfragen - Concurrency: Unterstützung von 1.000 gleichzeitigen Benutzern - Caching: Cache für Benutzerdaten (TTL: 5 Minuten) zur Performance-Steigerung

Sicherheit: - Authentifizierung: OAuth 2.0 mit JWT (JSON Web Tokens) - Autorisierung: Role-Based Access Control (RBAC) mit Rollen (Admin, User, Guest) - Verschlüsselung: Verschlüsselung sensibler Daten At Rest (Passwort-Hashing mit bcrypt, AES-256 für PII) - Verschlüsselung In Transit: TLS 1.3 für alle API-Aufrufe - DSGVO-Compliance: Datenminimierung, Recht auf Löschung implementieren, Audit-Logs für Zugriffe - Penetration-Tests: Regelmäßige Penetration-Tests vor Go-Live und alle 6 Monate

Verfügbarkeit: - Uptime: 99.9% (max. 43,2 Minuten Ausfall pro Monat) - Redundanz: Multi-AZ Deployment (Availability Zones in AWS/Azure) - Disaster Recovery: Hot-Standby in sekundärer Region, RTO < 4 Stunden, RPO < 15 Minuten

Skalierbarkeit: - Horizontal Scaling: Auto-Scaling basierend auf CPU-Last und Request-Rate - Vertical Scaling: Skalierung auf größere Instanzen bei Bedarf - Database Scaling: Read Replicas für Lesezugriffe, Sharding für hohe Datenvolumina

Wartbarkeit: - Code-Qualität: SonarQube Quality Gate (Code Quality > 80, Test Coverage > 80%) - Logging: Strukturierte Logs (JSON) mit Correlation IDs für Request-Tracking - Monitoring: Metrics (Prometheus) für Performance und Verfügbarkeit - Alerting: PagerDuty Alerts bei Error Rate > 1% oder Response Time P95 > 1 Sekunde

Beispiel-Konfiguration im Komponentensteckbrief:

## Nicht-funktionale Anforderungen

- **Performance:**
  - Response Time P95 < 500 ms
  - Throughput: 10.000 Requests/Minute
  - Concurrency: 1.000 gleichzeitige Benutzer
  - Cache: Redis mit TTL 5 Minuten

- **Sicherheit:**
  - Authentifizierung: OAuth 2.0 mit JWT
  - Autorisierung: RBAC (Admin, User, Guest)
  - Verschlüsselung At Rest: AES-256, bcrypt für Passwörter
  - Verschlüsselung In Transit: TLS 1.3
  - DSGVO-Compliance: Data Minimization, Right to Delete, Audit-Logs
  - Penetration-Tests: Alle 6 Monate

- **Verfügbarkeit:**
  - Uptime: 99.9% (max. 43,2 Min./Monat)
  - Redundanz: Multi-AZ Deployment
  - Disaster Recovery: Hot-Standby sekundäre Region, RTO < 4h, RPO < 15m

- **Skalierbarkeit:**
  - Horizontal Scaling: Auto-Scaling (CPU, Request-Rate)
  - Vertical Scaling: Größere Instanzen bei Bedarf
  - Database Scaling: Read Replicas, Sharding

- **Wartbarkeit:**
  - Code-Qualität: SonarQube Quality Gate > 80, Test Coverage > 80%
  - Logging: Strukturierte JSON-Logs, Correlation IDs
  - Monitoring: Prometheus Metrics
  - Alerting: PagerDuty (Error Rate > 1%, Response Time P95 > 1s)
Frage 2: Schnittstellenkatalog

Ein E-Commerce-System besteht aus folgenden Komponenten: Webshop, Order-Service, Payment-Service, User-Service, Product-Service. Erstellen Sie einen Schnittstellenkatalog für die REST-API-Schnittstellen zwischen diesen Komponenten.

Lösung: Schnittstellenkatalog: E-Commerce-System

ID Name Typ Konsument Provider Zweck Endpunkt Methoden Auth Request-Format Response-Format Rate Limit SLA

| IF-001 | User-API | REST | Webshop, Order-Service, Payment-Service | User-Service | Benutzerdaten abfragen und verwalten | /api/v1/users | GET, POST, PUT, DELETE | OAuth 2.0, JWT | JSON | JSON | 1.000 Req/Min | 99.9%, < 500ms | | IF-002 | Order-API | REST | Webshop, Payment-Service, Notification-Service | Order-Service | Bestellungen erstellen und verwalten | /api/v1/orders | POST, GET, PUT, DELETE | OAuth 2.0, JWT | JSON | JSON | 2.000 Req/Min | 99.9%, < 1s | | IF-003 | Payment-API | REST | Order-Service, Billing-Service | Payment-Service | Zahlungsabwicklung | /api/v1/payments | POST, GET, PUT | OAuth 2.0, JWT + API Key | JSON | JSON | 1.000 Req/Min | 99.95%, < 1s | | IF-004 | Product-API | REST | Webshop, Order-Service | Product-Service | Produktdaten abfragen | /api/v1/products | GET, POST, PUT | OAuth 2.0, JWT | JSON | JSON | 5.000 Req/Min | 99.9%, < 500ms |

**Detailbeschreibung der Schnittstellen:**

**IF-001: User-API**

```yaml
ID: IF-001
Name: User-API
Typ: REST
Konsument: Webshop, Order-Service, Payment-Service
Provider: User-Service
Zweck: Benutzerdaten abfragen und verwalten
Endpunkt: /api/v1/users
Methoden:
  - GET: Benutzerdaten abfragen
  - POST: Neuen Benutzer erstellen
  - PUT: Benutzerdaten aktualisieren
  - DELETE: Benutzer löschen
Authentifizierung: OAuth 2.0, JWT
Request-Format: JSON
Response-Format: JSON
Rate Limiting: 1.000 Requests/Minute
SLA:
  - Verfügbarkeit: 99.9%
  - Antwortzeit: < 500ms (P95)
Dokumentation: [OpenAPI 3.0 Spec](https://api.company.com/swagger/user-api.yaml)
Kontakt: users-team@company.com
```

**IF-002: Order-API**

```yaml
ID: IF-002
Name: Order-API
Typ: REST
Konsument: Webshop, Payment-Service, Notification-Service
Provider: Order-Service
Zweck: Bestellungen erstellen und verwalten
Endpunkt: /api/v1/orders
Methoden:
  - POST: Neue Bestellung erstellen
  - GET: Bestellstatus abfragen
  - PUT: Bestellung aktualisieren (z.B. Storno)
  - DELETE: Bestellung löschen (nur für Admins)
Authentifizierung: OAuth 2.0, JWT
Request-Format: JSON
Response-Format: JSON
Rate Limiting: 2.000 Requests/Minute
SLA:
  - Verfügbarkeit: 99.9%
  - Antwortzeit: < 1 Sekunde (P95)
Dokumentation: [OpenAPI 3.0 Spec](https://api.company.com/swagger/order-api.yaml)
Kontakt: orders-team@company.com
```

**IF-003: Payment-API**

```yaml
ID: IF-003
Name: Payment-API
Typ: REST
Konsument: Order-Service, Billing-Service
Provider: Payment-Service
Zweck: Zahlungsabwicklung
Endpunkt: /api/v1/payments
Methoden:
  - POST: Neue Zahlung initiieren
  - GET: Zahlungsstatus abfragen
  - PUT: Zahlung aktualisieren (z.B. Refund)
Authentifizierung: OAuth 2.0, JWT + API Key (für kritische Operationen)
Request-Format: JSON
Response-Format: JSON
Rate Limiting: 1.000 Requests/Minute
SLA:
  - Verfügbarkeit: 99.95% (kritisch für E-Commerce)
  - Antwortzeit: < 1 Sekunde (P95)
Dokumentation: [OpenAPI 3.0 Spec](https://api.company.com/swagger/payment-api.yaml)
Kontakt: payments-team@company.com
```

**IF-004: Product-API**

```yaml
ID: IF-004
Name: Product-API
Typ: REST
Konsument: Webshop, Order-Service
Provider: Product-Service
Zweck: Produktdaten abfragen
Endpunkt: /api/v1/products
Methoden:
  - GET: Produktdaten abfragen (Liste, Detail, Suche)
  - POST: Neues Produkt erstellen (nur für Admins)
  - PUT: Produktdaten aktualisieren (nur für Admins)
Authentifizierung: OAuth 2.0, JWT
Request-Format: JSON
Response-Format: JSON
Rate Limiting: 5.000 Requests/Minute (höheres Rate Limit für Lesezugriffe)
SLA:
  - Verfügbarkeit: 99.9%
  - Antwortzeit: < 500ms (P95)
Dokumentation: [OpenAPI 3.0 Spec](https://api.company.com/swagger/product-api.yaml)
Kontakt: products-team@company.com
```

**Best Practices angewendet:**

1. **Automatisierte Dokumentation:** OpenAPI 3.0 Spec für jede Schnittstelle
2. **Authentifizierung:** OAuth 2.0, JWT für alle internen Services, zusätzliche API Key für kritische Operationen (Payment-API)
3. **Rate Limiting:** Unterschiedliche Rate Limits je nach Nutzungsmuster (z.B. Product-API hat höheres Limit für Lesezugriffe)
4. **SLAs:** Verfügbarkeits- und Antwortzeit-Anforderungen definiert
5. **Monitoring:** Überwachung der Schnittstellen (Response Time, Error Rate) empfohlen
6. **Versionierung:** Semantische Versionierung (v1) für zukünftige Änderungen
Frage 3: Projektstrukturplan (PSP/WBS)

Ein Unternehmen plant die Entwicklung eines neuen CRM-Systems. Erstellen Sie einen Projektstrukturplan (PSP) mit mindestens 4 Phasen und 3-4 Arbeitspaketen pro Phase. Gehen Sie auch auf die Abhängigkeiten zwischen Arbeitspaketen ein.

Lösung: Projektstrukturplan (PSP): CRM-System

ID Arbeitspaket Beschreibung Verantwortlich Dauer Kosten Vorbedingung Abhängigkeiten
WP-1 Phase 1: Vorstudie
WP-1.1 Ist-Analyse Analyse der aktuellen Vertriebsprozesse und -tools Business Analyst 2 Wochen €10.000 - -
WP-1.2 Stakeholder-Interviews Interviews mit Vertriebsmitarbeitern, Managern, IT Business Analyst 2 Wochen €10.000 WP-1.1 -
WP-1.3 Anforderungserhebung Anforderungen dokumentieren (Use Cases, User Stories) Business Analyst 3 Wochen €15.000 WP-1.2 -
WP-1.4 Soll-Konzept Soll-Konzept (Fachkonzept) erstellen Business Analyst 3 Wochen €15.000 WP-1.3 -
WP-1.5 Vorstudie-Review Review mit Stakeholdern und Management Project Manager 1 Woche €5.000 WP-1.4 -
WP-2 Phase 2: Konzeption
WP-2.1 Architektur-Design High-Level-Architektur entwerfen Solution Architect 2 Wochen €10.000 WP-1.5 -
WP-2.2 UI/UX-Design Wireframes und Prototypen für das UI entwerfen UI/UX Designer 3 Wochen €15.000 WP-1.4 WP-1.4
WP-2.3 Datenbank-Design Datenbank-Schema und Datenmodell entwerfen Data Architect 2 Wochen €10.000 WP-2.1 WP-2.1
WP-2.4 API-Design REST-APIs spezifizieren (OpenAPI/Swagger) API Architect 2 Wochen €10.000 WP-2.1 WP-2.1
WP-2.5 Sicherheit- und Compliance-Konzept Security- und Compliance-Konzept erstellen Security Architect 2 Wochen €10.000 WP-2.1 WP-2.1
WP-3 Phase 3: Entwicklung
WP-3.1 Backend-Entwicklung CRM-Backend entwickeln Backend Team 10 Wochen €100.000 WP-2.3, WP-2.4 WP-2.3, WP-2.4
WP-3.2 Frontend-Entwicklung CRM-Frontend (Web) entwickeln Frontend Team 8 Wochen €80.000 WP-2.2, WP-2.4 WP-2.2, WP-2.4
WP-3.3 Integrationen Integrationen zu bestehenden Systemen (ERP, E-Mail, Kalender) implementieren Integration Team 6 Wochen €60.000 WP-2.4 WP-3.1
WP-3.4 Security-Implementierung Sicherheitsmaßnahmen (Auth, RBAC, Encryption) implementieren Security Engineer 4 Wochen €40.000 WP-2.5, WP-3.1 WP-2.5, WP-3.1
WP-4 Phase 4: Test & Go-Live
WP-4.1 Unit-Testing Unit Tests für Backend und Frontend Backend Team, Frontend Team 4 Wochen €40.000 WP-3.1, WP-3.2 WP-3.1, WP-3.2
WP-4.2 Integration-Testing Integration Tests für Schnittstellen QA Team 3 Wochen €30.000 WP-3.3 WP-3.3
WP-4.3 System-Testing Systemtest und Fehlerbehebung QA Team 3 Wochen €30.000 WP-4.1, WP-4.2 WP-4.1, WP-4.2
WP-4.4 Security-Testing Penetration-Tests und Security-Audit Security Team 2 Wochen €20.000 WP-3.4 WP-3.4
WP-4.5 UAT (User-Acceptance-Test) UAT mit Vertriebsmitarbeitern QA Team, Vertrieb 2 Wochen €20.000 WP-4.3, WP-4.4 WP-4.3, WP-4.4
WP-4.6 Go-Live Go-Live und Hypercare (2 Wochen) DevOps Team, Project Manager 2 Wochen €20.000 WP-4.5 WP-4.5

Zusammenfassung:

Phase Dauer Kosten
Phase 1: Vorstudie 11 Wochen €55.000
Phase 2: Konzeption 11 Wochen €55.000
Phase 3: Entwicklung 10 Wochen €280.000
Phase 4: Test & Go-Live 14 Wochen €160.000
Gesamt 46 Wochen €550.000

Abhängigkeiten visualisiert:

graph TD
    WP1_1[WP-1.1 Ist-Analyse] --> WP1_2[WP-1.2 Stakeholder-Interviews]
    WP1_2 --> WP1_3[WP-1.3 Anforderungserhebung]
    WP1_3 --> WP1_4[WP-1.4 Soll-Konzept]
    WP1_4 --> WP1_5[WP-1.5 Vorstudie-Review]

    WP1_5 --> WP2_1[WP-2.1 Architektur-Design]
    WP1_4 --> WP2_2[WP-2.2 UI/UX-Design]

    WP2_1 --> WP2_3[WP-2.3 Datenbank-Design]
    WP2_1 --> WP2_4[WP-2.4 API-Design]
    WP2_1 --> WP2_5[WP-2.5 Security-Konzept]

    WP2_3 --> WP3_1[WP-3.1 Backend-Entwicklung]
    WP2_4 --> WP3_1
    WP2_2 --> WP3_2[WP-3.2 Frontend-Entwicklung]
    WP2_4 --> WP3_2

    WP3_1 --> WP3_3[WP-3.3 Integrationen]
    WP2_5 --> WP3_4[WP-3.4 Security-Implementierung]
    WP3_1 --> WP3_4

    WP3_1 --> WP4_1[WP-4.1 Unit-Testing]
    WP3_2 --> WP4_1

    WP3_3 --> WP4_2[WP-4.2 Integration-Testing]

    WP4_1 --> WP4_3[WP-4.3 System-Testing]
    WP4_2 --> WP4_3

    WP3_4 --> WP4_4[WP-4.4 Security-Testing]

    WP4_3 --> WP4_5[WP-4.5 UAT]
    WP4_4 --> WP4_5

    WP4_5 --> WP4_6[WP-4.6 Go-Live]

Kritische Pfade (Critical Paths):

  1. Kritischer Pfad 1 (Backend-Fokus): WP-1.1 → WP-1.2 → WP-1.3 → WP-1.4 → WP-1.5 → WP-2.1 → WP-2.3 → WP-3.1 → WP-3.3 → WP-4.2 → WP-4.3 → WP-4.5 → WP-4.6 Gesamtdauer: 46 Wochen

  2. Kritischer Pfad 2 (Frontend-Fokus): WP-1.1 → WP-1.2 → WP-1.3 → WP-1.4 → WP-1.5 → WP-2.2 → WP-3.2 → WP-4.1 → WP-4.3 → WP-4.5 → WP-4.6 Gesamtdauer: 42 Wochen

Empfehlung: - Parallelisierung von Backend- und Frontend-Entwicklung möglich (siehe kritische Pfade) - UI/UX-Design kann parallel zu Architektur-Design starten - Integration-Testing erst nach Integrationen möglich - UAT erst nach System-Testing und Security-Testing möglich - Puffer (10-15%) in Zeitplan einplanen für unvorhergesehene Verzögerungen