From cf016287acd62e04986f3fb35b265eac00433d00 Mon Sep 17 00:00:00 2001 From: opencode Date: Sat, 29 Aug 2026 22:55:41 +0800 Subject: [PATCH] docs(COBOL): drop resolved/misjudged items (ZAN03 C-1, KIN06 D-1) from record; keep only existing COBOL deficiencies --- JavaSrc/doc/COBOL不备点_调查记录.md | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/JavaSrc/doc/COBOL不备点_调查记录.md b/JavaSrc/doc/COBOL不备点_调查记录.md index af100f3..e936a97 100644 --- a/JavaSrc/doc/COBOL不备点_调查记录.md +++ b/JavaSrc/doc/COBOL不备点_调查记录.md @@ -1,15 +1,15 @@ # 既存 COBOL コード不備点 調査記録 - **作成日**: 2026-08-25 -- **更新日**: 2026-08-29(KYU01‑09 追加 / KIN01・KIN04 フィールド数ゲート誤記削除 / KIN09(B‑1)・KIN08(B‑3) を設計書自己矛盾へ再分類 / ZAN03(C‑1)・KIN06(D‑1) を誤判として削除 / 詳細設計書_ZAN03CHK.md にフラグ値を追記) -- **背景**: KIN01‑09 / ZAN01‑06 / KYU01‑09 の COBOL→Java 変換後、Java↔COBOL↔設計書 の三方照合を実施。本ファイルは「既存 COBOL 側に存在する不備・設計書からの乖離」のみを記録する。 +- **更新日**: 2026-08-29(KYU01‑09 追加 / KIN01・KIN04 フィールド数ゲート誤記削除 / KIN09(B‑1)・KIN08(B‑3) を設計書自己矛盾へ再分類 / ZAN03(C‑1)・KIN06(D‑1) を誤判・解消として記録から削除) +- **背景**: 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 缺陷)と判明したため削除済。※ZAN03CHK.cbl:385 の NOTE は「設計書にフラグ='1' を規定」に更新済。 + - 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 缺陷)と判明したため削除済。 --- -## 1. 照合結果サマリ(照合対象 39 項目) +## 1. 照合結果サマリ 判定: ◯=一致(無影響) △=軽差/条件無影響 ✗=差異(有影響・COBOL側不備) ※ Java 側缺陷は記録対象外のため、COBOL が正しい事象は ✗/△ とせず ◯ または – とする。 @@ -18,15 +18,14 @@ |------|------|------|--------------|------| | ZAN01 | Zan01ChkMain | ◯ | – | trim/再符号化のみ | | ZAN02 | Zan02ChkMain | ◯ | – | キー比較のみ条件差 | -| **ZAN03** | Zan03ChkMain | ◯ | – | 設計書にフラグ値='1' を追記済(2026-08-29);Java は '1' のみ→COBOL と一致、COBOL 不備なし(C‑1 誤判削除) | | ZAN04 | Zan04MatMain | ◯ | – | – | | ZAN05 | Zan05CalMain | ◯ | – | COBOL 正(Java 側缺陷は記録対象外) | -| ZAN06 | Zan06UpdMain | ◯ | – | 設計「処理詳細 §1‑6」が HOLIDAY-COUNT<50 を明示要求、かつ月≤31日で未発動→COBOL 不備なし(D‑1 誤判削除) | | KIN01 | Kin01InpMain | ◯ | – | COBOL/Java ともフィールド数検証一致(WRK-COMMA-CNT=UNSTRING TALLYING のフィールド数)、COBOL 不備なし | | KIN02 | Kin02UpdMain | ◯ | – | – | | KIN03 | Kin03ExpMain | ◯ | – | – | | KIN04 | Kin04ChkMain | ◯ | – | 同上(フィールド数=6 で一致)、COBOL 不備なし | | **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 不備なし | @@ -50,7 +49,7 @@ --- -## 2. COBOL 側不備の詳細分類 +## 2. COBOL 側不備の詳細分類(未解消分のみ) ### A 類:COBOL 自身のバグ(Java は設計書通りに修正済) @@ -88,13 +87,12 @@ --- -## 3. 設計書自身の矛盾(COBOL/Java 双方に関係) +## 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)による。 -3. **ZAN03CHK**: 設計書に休日フラグ値を未規定だったが、**2026-08-29 に `詳細設計書_ZAN03CHK.md` へ「入力フラグ `R03HOLIDAY-FLG` は値 `'1'`=休日・それ以外=平日(運用慣習)」を追記**。これに伴い COBOL(`'1'` のみ) も Java(`'1'` のみ、'H' 入力許容を削除) も設計と一致→**本件解消**。※`'H'`/`'W'` は出力 `OVT-TYPE` であり入力フラグではない。 -4. **KYU07DIV 補足(設計矛盾ではない)**: 過去に「COBOL 実際は KYU07nn、設計 KYU07Dnn で乖離(B類)」と見なしたが、実 COBOL ソース(`cobol/KYU07DIV.cbl:37` 等)は `KYU07D01`~`KYU07D50` を使用。設計=COBOL=Java の三方一致であり、COBOL 不備・設計矛盾ともに存在しない。当該見解は誤りであった。 -5. **KIN01INP / KIN04CHK 補足(COBOL 不備なし・記録訂正)**: 過去に「UNSTRING TALLYING の WRK-COMMA-CNT は区切り数(7/5)で、フィールド数ゲート(`NOT = 8` / `= 6`)が off‑by‑one バグ」と記録したが、**COBOL の UNSTRING TALLYING は受信フィールド数(8/6)を返す**。したがってゲートはフィールド数を正しく検証しており COBOL に不備はない。当該 A‑1/A‑2 記録は誤りとして削除(変数名 WRK-COMMA-CNT が誤導的であったための見誤り)。 +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表記述との矛盾を指摘するもの。 --- @@ -102,10 +100,9 @@ - **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)**: 上記 #1/#2 を設計書へ反映(設計側修正)。COBOL は「処理詳細」通りのため COBOL 不備ではない。 -- **ZAN03**: 設計書へフラグ値('1')を追記済→COBOL/Java とも設計と一致、本件解消。 +- **設計書矛盾 (KIN09 / KIN08)**: 上記 §3 を設計書へ反映(設計側修正)。COBOL は「処理詳細」通りのため COBOL 不備ではない。 - **Java 側缺陷**: 本記録の対象外(別途チケット/PR で管理)。 --- -*本ファイルは調査記録であり、コード変更は別途チケット/PR で管理すること。COBOL 側マーキング箇所は各 `.cbl` 内の `COBOL-DEFICIENCY:` コメントを参照。* +*本ファイルは調査記録であり、コード変更は別途チケット/PR で管理すること。COBOL 側マーキング箇所は各 `.cbl` 内の `COBOL-DEFICIENCY:` コメントを参照。解消済・誤認済の事象(ZAN03 休日フラグ値、KIN06 休日取込上限、KIN01/KIN04 フィールド数ゲート、KYU07 セクション名等)は本記録から削除済。*