# 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, 3–5 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`.