--- model: sonnet --- # AP11 – M1-Abnahme > **Meilenstein:** M1 > **Vorgänger:** AP01–AP10 alle ✅ erforderlich > **Nachfolger:** M2 > **Grundlage:** `docs/specs/meilensteine.md` v3, M1-Abnahmekriterien ## Ziel M1 wird formal abgenommen. Alle Abnahmekriterien aus `meilensteine.md` sind erfüllt und nachweisbar. Das Projekt ist bereit für M2. ## Voraussetzungen - AP01–AP10 abgeschlossen und grün - Alle AP-Berichte liegen in `docs/arbeitspakete/m1/berichte/` vor ## Scope IN ### 1. Test-Artefakt anlegen `test-artefakte/m1/minimal.txt` anlegen — eine einfache ISO-8859-15-kompatible Textdatei mit 3–5 Zeilen Dummy-Inhalt. Keine echten ASV-Daten, kein gültiges EDIFACT — reiner Lauftest. ### 2. End-to-End-Läufe durchführen `mvn clean package` ausführen, dann alle fünf Läufe: | Lauf | Befehl | Erwarteter Exit-Code | Erwartetes Verhalten | |---|---|---|---| | 1 | `java -jar target/asv-format-validator-*.jar test-artefakte/m1/minimal.txt` | `0` | `.txt` und `.log` entstehen im Verzeichnis | | 2 | identischer Aufruf wie Lauf 1 | `0` | `_v1.txt` und `_v1.log` entstehen | | 3 | `java -jar ... nicht-vorhanden.txt` | `2` | Minimalbericht auf Konsole | | 4 | `java -jar ...` (ohne Argument) | `2` | Minimalbericht nur auf Konsole | | 5 | `java -jar ... datei1.txt datei2.txt` | `2` | Minimalbericht nur auf Konsole | Alle fünf Läufe werden im M1-Abschlussbericht dokumentiert (Befehl, tatsächlicher Exit-Code, relevante Ausgabe). ### 3. Meilenstein-Abnahmeprüfung Jeden Punkt aus `docs/specs/meilensteine.md` v3 §„Abnahme von M1" mit konkretem Nachweis verknüpfen: | Kriterium | Nachweis | Status | |---|---|---| | Anwendung als JAR unter Windows mit Java 21 startbar | Lauf 1 | | | Fehlendes/falsches Argument → Exit-Code `2` mit Minimalbericht | Lauf 3, 4, 5 | | | Bericht- und Log-Datei im Eingabeverzeichnis mit korrekter Suffix-Logik | Lauf 1 + 2 | | | Log4j2-Bindung außerhalb Bootstrap/Logging-Adapter nicht sichtbar | Architekturtest AP10 Regel A | | | Befundmodell trennt Spec-Urteil und diagnostische Weiteranalyse | Unit-Test AP05 | | | Build und Tests grün | `mvn clean verify` | | ### 4. Konsolidierter M1-Abschlussbericht Datei: `docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md` Pflichtabschnitte: - **Zusammenfassung** — Was ist M1 geworden (max. zwei Absätze) - **AP-Übersicht** — Tabelle mit allen 11 APs, Status, letzter Commit - **Meilenstein-Abnahmetabelle** (siehe oben, vollständig ausgefüllt) - **End-to-End-Protokoll** — alle fünf Läufe mit Befehl, Exit-Code, Ausgabe-Zusammenfassung - **Quality-Metriken** — Testanzahl, Coverage-Wert (informativ, keine Gate-Prüfung in M1) - **Rest-Risiken** — konsolidiert aus allen AP-Berichten - **Empfehlungen für M2** — was M2 beachten sollte - **Freigabe-Vermerk** — „M1 ist abnahmebereit" oder „M1 ist mit folgenden Einschränkungen abnahmebereit: ..." ### 5. Git-Tag setzen ```bash git tag -a m1-done -m "Meilenstein 1 abgeschlossen, siehe docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md" ``` ## Scope OUT - Vorgriffe auf M2-Themen - Release-Builds, Signierung, Publizierung - Inhaltliche Berichtsvertiefung über M1-Minimum hinaus ## Schritte 1. `test-artefakte/m1/minimal.txt` anlegen 2. `mvn clean package` 3. Alle fünf Läufe durchführen und protokollieren 4. `mvn clean verify` ein letztes Mal 5. Konsolidierten M1-Abschlussbericht schreiben 6. Git-Tag `m1-done` setzen ## Abnahmekriterien - [ ] `test-artefakte/m1/minimal.txt` existiert - [ ] Alle fünf Läufe sind protokolliert - [ ] `M1-abschlussbericht.md` existiert mit allen Pflichtabschnitten - [ ] Meilenstein-Abnahmetabelle vollständig, jede Zeile mit konkretem Nachweis - [ ] Kein Exit-Code `3` mehr erreichbar - [ ] `mvn clean verify` grün - [ ] Git-Tag `m1-done` gesetzt - [ ] Freigabe-Vermerk ist explizit - [ ] Abschlussbericht unter `docs/arbeitspakete/m1/berichte/AP11-bericht.md` ## Rest-Risiken und offene Punkte - 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 `docs/arbeitspakete/m1/templates/ap-bericht.md`. **Zusätzlich** konsolidierter `docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md`.