refactor(KIN09/KIN08): align Java to COBOL
- KIN09CSV: FULL outputs daily detail only; SHORT additionally emits monthly summary (matches cbl:160) - KIN08DBU: RESET deletes MONTHLY_ABSENCE only; DAILY_RECORDS preserved via plain INSERT (matches cbl:486-497) - Design docs updated to reflect COBOL-correct behavior - COBOL investigation record: remove the two design self-contradiction items (KIN09 #1, KIN08 #2) and related references
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# 既存 COBOL コード不備点 調査記録
|
||||
|
||||
- **作成日**: 2026-08-25
|
||||
- **更新日**: 2026-08-29(KYU01‑09 追加 / KIN01・KIN04 フィールド数ゲート誤記削除 / KIN09(B‑1)・KIN08(B‑3) を設計書自己矛盾へ再分類 / ZAN03(C‑1)・KIN06(D‑1) を誤判・解消として記録から削除)
|
||||
- **更新日**: 2026-08-30
|
||||
- **背景**: KIN01‑09 / ZAN01‑06 / KYU01‑09 の COBOL→Java 変換後、Java↔COBOL↔設計書 の三方照合を実施。本ファイルは「既存 COBOL 側に存在する不備・設計書からの乖離」のうち、**現在も未解消の問題のみ**を記録する。解消済・誤認済の事象は記録しない。
|
||||
- **記録方針**: **Java 側の缺陷(Java 真缺陷等)は本記録の対象外**。COBOL が正・Java が誤であった事象は、COBOL 側に不備がないため ◯(または –)として扱い、Java 側対応は別途管理する。
|
||||
- **関連成果物**:
|
||||
- COBOL 側マーキング: 各対象行に `COBOL-DEFICIENCY:` コメントを付与(参照先=本ファイル)。現在小計: `cobol/KIN05MAT.cbl:400`(A類)・`cobol/KIN08DBU.cbl:294`(B類:Tカード10名上限)・`cobol/KYU01CVT.cbl:306`(B類:エラー区分)。※KIN01INP/KIN04CHK の标记は「フィールド数ゲート誤り」が誤認(UNSTRING TALLYING=フィールド数)のため削除済。※KIN09CSV.cbl:160 / KIN08DBU.cbl:489 の标记は、当該事象が設計書自己矛盾(非 COBOL 缺陷)と判明したため削除済。
|
||||
- COBOL 側マーキング: 各対象行に `COBOL-DEFICIENCY:` コメントを付与(参照先=本ファイル)。現在小計: `cobol/KIN05MAT.cbl:400`(A類)・`cobol/KIN08DBU.cbl:294`(B類:Tカード10名上限)・`cobol/KYU01CVT.cbl:306`(B類:エラー区分)。※KIN01INP/KIN04CHK の标记は「フィールド数ゲート誤り」が誤認(UNSTRING TALLYING=フィールド数)のため削除済。
|
||||
|
||||
---
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
| **KIN05** | Kin05MatMain | ✗ | **A類** | WRK‑BEST 未リセット |
|
||||
| KIN06 | Kin06CldMain | ◯ | – | COBOL 不備なし |
|
||||
| KIN07 | Kin07DaiMain | ◯ | – | COBOL 正(Java 側缺陷は記録対象外) |
|
||||
| **KIN08** | Kin08DbuMain | ✗ | **B類** | T カード対象 10 名上限(UNSTRING INTO(1)..(10), B‑2);RESET が MONTHLY のみ削除は設計「処理詳細」通りで COBOL 不備なし(§3 #2) |
|
||||
| **KIN09** | Kin09CsvMain | ✗ | **B類** | 時間欄書式 PIC Z(3)9.9 前导空格 vs 设计'8.0'(B‑1);FULL/SHORT 逆転は設計書 PARM 表との矛盾のみ(§3 #1)、COBOL 不備なし |
|
||||
| **KIN08** | Kin08DbuMain | ✗ | **B類** | T カード対象 10 名上限(UNSTRING INTO(1)..(10), B‑2) |
|
||||
| **KIN09** | Kin09CsvMain | ✗ | **B類** | 時間欄書式 PIC Z(3)9.9 前导空格 vs 设计'8.0'(B‑1) |
|
||||
| SUB01 | Sub01DatSub | △ | – | TZ 依存(条件) |
|
||||
| SUB02 | Sub02MsgSub | ◯ | – | – |
|
||||
| SUB03 | Sub03EndSub | ◯ | – | – |
|
||||
@@ -87,20 +87,10 @@
|
||||
|
||||
---
|
||||
|
||||
## 3. 設計書自身の矛盾(COBOL 不備ではないが、再分類の根拠として記録)
|
||||
|
||||
1. **KIN09CSV 詳細設計書**: PARM 表(L33) `FULL=日別+月次` に対し、§3 見出し「SHORT 時のみ追加処理(2500‑SHORT‑MODE)」が逆のニュアンス(=COBOL は「処理詳細」通りに日別常時+SHORT時摘要を実装)。→ **COBOL は「処理詳細」に合致しており COBOL 不備ではない**;設計書内部矛盾。Java が PARM 表準拠かは設計仕様の優先権による。
|
||||
2. **KIN08DBU 詳細設計書**: ステップ 3‑1 に `MONTHLY_ABSENCE` 削除のみ記載され、`DAILY_RECORDS` 削除が抜けている(使用 DB 表表・SYSIN 仕様からのみ読取可)。→ **COBOL は「処理詳細(ステップ3‑1)」に合致しており COBOL 不備ではない**;設計書内部矛盾。RESET で DAILY も削除すべきかは設計仕様の優先権(処理詳細 vs DB表/SYSIN)による。
|
||||
|
||||
> 上記は COBOL の挙動が「処理詳細」に合致するため COBOL 不備ではない。あくまで設計書の PARM 表/DB表記述との矛盾を指摘するもの。
|
||||
|
||||
---
|
||||
|
||||
## 4. 推奨対応方針
|
||||
|
||||
- **A 類 (KIN05)**: COBOL バグ。Java は設計準拠で正 → **Java 維持**。COBOL 側をレガシー不備として本ファイルに記録。業務確認の上、COBOL を「仕様通り(バグ有)」で据え置くか別途 COBOL 修正するか決定。
|
||||
- **B 類 (KIN09 時間欄書式 / KIN08 Tカード10名上限 / KYU01 エラー区分リテラル)**: COBOL が設計(CSV 例/無上限/TABLE定数)と乖離。Java は設計準拠 → **Java 維持**。COBOL 側を不備記録。**厳密な COBOL 出力パリティ(並行運用比較等)が必要な場合のみ**、Java に「COBOL 互換モード」フラグを検討(要合意)。
|
||||
- **設計書矛盾 (KIN09 / KIN08)**: 上記 §3 を設計書へ反映(設計側修正)。COBOL は「処理詳細」通りのため COBOL 不備ではない。
|
||||
- **Java 側缺陷**: 本記録の対象外(別途チケット/PR で管理)。
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user