261 lines
6.9 KiB
Markdown
261 lines
6.9 KiB
Markdown
---
|
||
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 & 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)
|