---
marp: true
html: true
paginate: true
style: |
  @import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;700&display=swap');
  section {
    font-family: 'Ubuntu', Arial, sans-serif;
    padding-top: 55px;
    font-size: 30px;
  }
  .columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2em;
  }
  .grau, .grau p, .grau li, .grau ol { color: #888 !important; }
  section h1 {
    position: absolute;
    top: 0; left: 0; right: 0;
    margin: 0;
    padding: 8px 30px;
    font-size: 1.2em;
    background-color: #274E93;
    color: white;
  }
  footer {
    position: absolute;
    bottom: 15px; left: 30px;
    font-size: 0.85em;
    color: #888;
    font-style: italic;
  }
  section::after {
    content: "Seite " attr(data-marpit-pagination) " / " attr(data-marpit-pagination-total);
    position: absolute;
    bottom: 15px; right: 30px;
    font-size: 0.75em;
    color: #666;
  }
  /* Cover Slide */
  section.cover { padding: 0; background: #ffffff; }
  section.cover h1, section.cover::after { display: none; }
  .cover-wrap { display: flex; width: 100%; height: 100%; }
  .cover-left {
    flex: 0 0 60%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    padding: 40px 80px 40px 40px;
    background: #ffffff;
  }
  .cover-left img {
    width: 550px;
    margin-bottom: 14px;
  }
  .cover-subtitle {
    align-self: flex-start;
    margin-left: 23%;
    color: #737373;
    font-size: 1.0em;
    letter-spacing: 0.03em;
  }
  .cover-right { flex: 0 0 40%; position: relative; overflow: hidden; }
  .cover-right img {
    width: 150%; height: 150%;
    object-fit: cover;
    object-position: 75% center;
    display: block;
  }
  .cover-right::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(255, 255, 255, 0.68);
  }

---

<!-- _class: cover -->
<div class="cover-wrap">
  <div class="cover-left">
    <img src="img/logo-mista.png" alt="Mista GmbH Logo">
    <p class="cover-subtitle">Digitalisierung &amp; Engineering</p>
  </div>
  <div class="cover-right">
    <img src="img/photo-mista-2.jpeg" alt="">
  </div>
</div>

---

# Zentraler Projekt-Anker: Use Cases (Epics, Sollprozesse ...)

## Notwendige Inhalte:

1. Story/  Kurzbeschreibung

2. Liste aller Akteure (Stakeholder) und deren Interessen/Ziele

3. Standard-Ablauf (primäres Erfolgsszenario)

4. Beschreibung aller Ausnahme-Szenarios

---
# Titel, Story, Beispiele

## Barabheben vom Geldautomat

- Bankkunde hebt an einem Geldautomaten einen beliebigen Geldbetrag von einem Konto ab.

## Konstrukteur erzeugt CAD Document

- Designer erzeugt eins neues CAD document aus einem template.

## Tester führt Testcase durch

- Tester fuhrt die Schritte eines Test Case durch und bewertet.

---
# Stakeholder und Interessen, möglich Losung

## Kunde

- will jederzeit einen möglichst beliebigen Betrag komfortabel abheben
- will, dass Ort und Zeit seiner Abhebung aus dem Kontoauszug ersichtlich sind
- will, dass kein anderer von seinem Konto abheben kann
- mochte optional eine Sprache und Stückelung vorgeben

## Bank

- muss nur auszahlen, wenn der Betrag durch das Kunden-Konto gedeckt ist
- muss sicherstellen, dass der GA nicht missbräuchlich benutzt wird
- mochte mögliche Haftungsrisiken bei Missbrauch minimieren

---
# Beispiel Standardablauf fur UC: Barabheben vom Geldautomat

1. Kunde fuhrt EC — Karte in Geldautomat (GA) ein
2. GA identifiziert und validiert Karte und Kontodaten, verlangt
Transaktionsauswahl und PIN
3. Kunde wählt Barabhebung und gibt PIN ein.
4. GA validiert PIN und präsentiert gängige Beträge zur Auswahl
5. Kunde wählt Betrag
6. GA sendet Betrag und Kontodaten zur Abhebung an Hauptsystem, erhält Freigabe und neuen Kontostand
7. GA stellt EC-Karte und Geldbetrag in beliebiger Stückelung zur Verfügung und zeigt aktuellen Kontostand.
8. Kunde entnimmt Geldbetrag und Karte
9. GA archiviert Transaktionsinformationen

---
# Für jeden Schritt im Standard-Ablauf (main flow) ...

1. Kunde führt EC-Karte in Geldautomat (GA) ein:

   1.1 Kunde wählt andere Sprache (X) *

2. GA identifiziert und validiert Karte und Kontodaten,
   -> verlangt Transaktionsauswahl und PIN:

   2.1 Karte oder Konto nicht bekannt oder Karte nicht lesbar
   -> Kunde informieren, Karte zurückgeben, Vorgang abbrechen, loggen

   2.2 Karte oder Konto gesperrt
   -> Kunde informieren, Karte einbehalten, Vorgang abbrechen, loggen

   2.3 Hauptsystem nicht erreichbar

Identifizieren von Ausnahmen, Erweiterungen (X), Optionen (X) per Brainstorming

---
# Beispiel **Ausnahmen** für UC: Barabheben — Schritte 1–4

<style scoped>section { font-size: 28px; }</style>

<div class="columns">
<div>

1. Kunde führt EC — Karte in GA ein
2. GA identifiziert und validiert Karte und Kontodaten, verlangt Transaktionsauswahl und PIN
3. Kunde wählt Barabhebung und gibt PIN ein
4. GA validiert PIN und präsentiert gängige Beträge zur Auswahl

</div>
<div class="grau">

1.1 Kunde wählt andere Sprache (X)
2.1 Karte, Konto nicht bekannt oder Karte nicht lesbar
2.2 Karte oder Konto gesperrt
2.3 Hauptsystem nicht erreichbar
3.1 Kunde wählt andere Transaktion (X)
3.2 Kunde bricht ab (X)
4.1 PIN falsch
4.2 PIN 3x falsch

</div>
</div>

---
# Beispiel **Ausnahmen** für UC: Barabheben — Schritte 5–9

<style scoped>section { font-size: 28px; }</style>

<div class="columns">
<div>
<ol start="5">
<li>Kunde wählt Betrag</li>
<li>GA sendet Betrag und Kontodaten zur Abhebung an Hauptsystem, erhält Freigabe und neuen Kontostand</li>
<li>GA stellt EC-Karte und Geldbetrag in beliebiger Stückelung zur Verfügung und zeigt aktuellen Kontostand</li>
<li>Kunde entnimmt Geldbetrag und Karte</li>
<li>GA archiviert Transaktionsinformationen</li>
</ol>

</div>
<div class="grau">

5.1 Kunde möchte spezifischen Betrag (X)
5.2 Kunde wählt spezielle Stückelung (X)
5.3 Kunde bricht ab (X)
6.1 Konto nicht gedeckt, keine Freigabe
6.2 Hauptsystem nicht erreichbar
7.1 gewünschter Betrag nicht mehr verfügbar
7.2 gewünschte Stückelung nicht vorhanden
8.1 Karte wird nicht entnommen
8.2 Geldbetrag wird nicht entnommen
9.1 Hauptsystem nicht erreichbar

</div>

</div>


---
<!-- _footer: "die Trennung in primäres Erfolgsszenario und Ausnahmeszenario" -->
# Verblüffende Neben-Effekte

- Fokus, Priorität
- Prozess-Verständnis
- Sämtliche Test Case Pfade fix und fertig
- Implizit optimiertes, einfacheres Datenmodell
- Implizite Stabilität und Performance für den Standardpfad
- Freiheiten für die Umsetzung bewahrt

---
<!-- _footer: "Draft liefert: genügend Details für Schätzungen (Aufwand, Termine, Budget)
" -->

# 7 Schritte zum finalen Use Case ...

C:  Kunde / Project Owner
M:  Dev Team Member
T:  Dev Team

1. Titel /Teaser, Prosa Story (C)
2. Stakeholder / Interessen (Anwender Ziele) (T)
3. Standard Ablauf entwerfen (M)
4. Ausnahmen und Erweiterungen sammeln (T)
5. Ausnahme / Behandlung detaillieren, Schneiden in Userstories (M)
6. Schätzen BV / Schätzen Aufwand (T)
7. Review / Prüfe alle Interessen , DOR (C)
