Dokumentation und Arbeitspakete angelegt

This commit is contained in:
2026-04-09 06:27:29 +02:00
parent fa36297e32
commit 79109594aa
13 changed files with 1069 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
# AP11 M1-Abnahme
## Ziel
Der letzte Schritt in M1: Alles wird gegen die Meilenstein-Abnahmekriterien aus `docs/specs/meilensteine.md` v3 **geprüft**, ein **End-to-End-Lauf** mit einer Minimal-Eingabedatei wird durchgeführt, und alle AP-Berichte werden in einem **konsolidierten M1-Abschlussbericht** zusammengeführt.
## Voraussetzungen
- AP01 bis AP10 abgeschlossen und grün
- alle AP-Berichte liegen in `docs/arbeitspakete/m1/berichte/` vor
## Scope IN
### End-to-End-Lauf
1. **Minimaldatei erstellen**: eine einfache Dummy-Textdatei im ISO-8859-15-Encoding, z.B. `test-artefakte/m1/minimal.txt` mit ein paar Zeilen Inhalt. Keine echten ASV-Daten, kein gültiges EDIFACT — dies ist nur ein Lauftest, kein Fachtest.
2. **JAR bauen**: `mvn clean package`
3. **Lauf 1**: `java -jar target/asv-format-validator-0.0.1-SNAPSHOT.jar test-artefakte/m1/minimal.txt`
- **Erwartung:** Exit-Code `0` (Dummy-Pfad, leerer Report), Berichtdatei `minimal.txt.txt` und Log-Datei `minimal.txt.log` entstehen, Konsolenausgabe vorhanden
4. **Lauf 2**: identischer Aufruf
- **Erwartung:** `minimal.txt_v1.txt` und `minimal.txt_v1.log` entstehen
5. **Lauf 3**: `java -jar ... nicht-vorhanden.txt`
- **Erwartung:** Exit-Code `2`, Minimalbericht auf Konsole, gegebenenfalls Berichtdatei im übergeordneten Verzeichnis wenn schreibbar
6. **Lauf 4**: `java -jar ...` (ohne Argument)
- **Erwartung:** Exit-Code `2`, Minimalbericht **nur** auf Konsole
7. **Lauf 5**: `java -jar ... datei1.txt datei2.txt`
- **Erwartung:** Exit-Code `2`, Minimalbericht auf Konsole
Alle fünf Läufe werden im M1-Abschlussbericht dokumentiert (Befehl, Exit-Code, relevante Ausgabe).
### Meilenstein-Abnahmeprüfung
Jeder Abnahmepunkt aus `docs/specs/meilensteine.md` v3 Abschnitt „Abnahme von M1" wird mit einem konkreten Nachweis verknüpft:
| M1-Abnahmekriterium | Nachweis | Status |
|---|---|---|
| Anwendung ist als JAR unter Windows mit Java 21 startbar | Lauf 1, JAR-Pfad | ✅ |
| falsches oder fehlendes Argument → Exit-Code `2` mit Minimalbericht | Lauf 3, 4, 5 | ✅ |
| Bericht- und Log-Datei werden im Eingabeverzeichnis mit korrekter Suffix-Logik erzeugt | Lauf 1 + Lauf 2 | ✅ |
| Log4j2-Bindung ist außerhalb von Bootstrap und Logging-Adapter nicht sichtbar | Architekturtest AP10, Test 1 | ✅ |
| Befundmodell unterscheidet Spec-Urteil und diagnostische Weiteranalyse | Unit-Test AP05 | ✅ |
| Build und Tests sind grün | `mvn clean verify` | ✅ |
### M1-Abschlussbericht
- Datei: `docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md`
- Inhalt:
- **Zusammenfassung**: Was ist M1 geworden, in zwei Absätzen
- **AP-Übersicht**: Tabelle mit allen 11 APs, Status, Commit-Hashes, Abschlussdatum
- **Meilenstein-Abnahmetabelle** (siehe oben)
- **End-to-End-Protokoll**: die fünf Läufe mit Befehl, Exit-Code, Zusammenfassung der Ausgabe
- **Quality-Metriken** (Coverage, Testanzahl — **keine harten Gates in M1**, nur Informationswert)
- **Rest-Risiken und übertragene Punkte** aus allen AP-Berichten konsolidiert
- **Empfehlungen für M2**: Was sollte M2 beachten? Was ist aus M1-Sicht offen geblieben?
- **Commit-Graph-Snapshot**: `git log --oneline --graph main` für den M1-Zeitraum
- Freigabe-Vermerk am Ende: „M1 ist abnahmebereit" oder „M1 ist mit folgenden Einschränkungen abnahmebereit: ..."
### Tagging
- Git-Tag `m1-done` auf dem letzten AP11-Commit setzen
- Tag-Message: „Meilenstein 1 abgeschlossen, siehe docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md"
## Scope OUT
- Vorgriffe auf M2-Themen (Dateinamensschemata, globale Rahmenregeln, ISO-8859-15 über Dateinamen hinaus — außer dem Einlese-Encoding aus AP06, das bleibt)
- Release-Builds, Signierung, Publizierung
- Externe Reviews (die kommen vom Rezensenten der Arbeitspakete, nicht aus diesem AP)
## Schritte
1. Branch `m1/ap11-abnahme`
2. Test-Artefakt `test-artefakte/m1/minimal.txt` anlegen (ISO-8859-15, 35 Zeilen Dummy-Inhalt)
3. `mvn clean package` ausführen
4. Die fünf Läufe durchführen und protokollieren
5. Konsolidierten M1-Abschlussbericht schreiben
6. `mvn clean verify` ein letztes Mal laufen lassen
7. Commit `M1-AP11: M1-Abnahme, End-to-End-Protokoll, konsolidierter Abschlussbericht`
8. Git-Tag `m1-done` setzen: `git tag -a m1-done -m "Meilenstein 1 abgeschlossen"`
## Abnahmekriterien
- `test-artefakte/m1/minimal.txt` existiert
- alle fünf Läufe sind protokolliert
- M1-Abschlussbericht existiert und enthält alle oben genannten Abschnitte
- Meilenstein-Abnahmetabelle ist vollständig und jede Zeile hat einen konkreten Nachweis
- `mvn clean verify` ist grün
- Git-Tag `m1-done` ist gesetzt
- der Freigabe-Vermerk am Ende des Abschlussberichts ist explizit
## Rest-Risiken und offene Punkte
- Dieser AP ist ein reines Zusammenfassungs-AP. Wenn hier Abnahmekriterien nicht erfüllt sind, zeigt das, dass ein früheres AP unvollständig war. In dem Fall: **zurück zum betroffenen AP**, nachbessern, dann AP11 wiederholen. Keine Abkürzungen.
## Bericht
`docs/arbeitspakete/m1/berichte/AP11-bericht.md` nach `templates/ap-bericht.md` **zusätzlich** zum konsolidierten `M1-abschlussbericht.md`.