Files
cobol-tna-system/品質管理/サブシステムE整合性レビュー報告書.md
T

7.5 KiB
Raw Blame History

サブシステムE(人事情報管理)整合性レビュー報告書

作成日: 2026-08-01 対象: 基本設計書 / 詳細設計書 / コード(src) / COPY定義 / 使用資源一覧 / テスト / カバレッジ統計


1. 検証範囲と実施内容

基本設計書に計画されるプログラム 9 本(JIN01KNS〜JIN09RPT)に対し、以下をレビューした:

  • 基本設計書の設計合理性・ロジック
  • 詳細設計書・コード・COPY 定義の整合性(レコード長・DD・COPY・CALL)
  • IBM COBOL 適合性(予約語・固定書式・コーディング規約)
  • テスト充足性(全ケース実行・テスト基準との一致)
  • 使用資源一覧・カバレッジ統計の最新状況

GnuCOBOL 3.2.0 で全実在プログラムのコンパイル・テスト実実行済み。


2. 実装状況の実測

プログラム 基本設計 src実装 詳細設計書 使用資源一覧 テスト テスト結果文書 production反映
JIN01KNS ×
JIN02SKL ×
JIN03RAN ×
JIN04PRT × × ×
JIN05UPD × × ×
JIN06SRT × × × × × ×
JIN07SUB × × × × × ×
JIN08TST × × × × × ×
JIN09RPT

計画 9 本に対して実装は 6 本。JIN06SRT / JIN07SUB / JIN08TST は未着手。


3. 問題点リスト(重要度順)

🔴 高重要度(対応必須)

H-1. JIN06SRT / JIN07SUB / JIN08TST が完全未実装

  • 基本設計書には計画 9 本・予約語カバー対象(SORT/RELEASE/PERFORM TIMES/EXIT PROGRAM/ADDRESS/OMITTED/EXIT PARAGRAPH)と記載
  • しかし src にコード無し、詳細設計書・テスト・使用資源一覧・production 全て未着手
  • SORT/RELEASE/ADDRESS/OMITTED はこの 3 本でしかカバーできない予約語のため、カバレッジ統計の「×」リストにも現状は未達のまま

H-2. SKIP2 予約語カバーの「◎」主張が虚偽

  • 品質管理/カバレッジ統計.md使用資源一覧/JIN09RPT_使用資源一覧.md・基本設計書に「SKIP2 ◎(段落境界)」と記録
  • しかし全コード中に SKIP2 ディレクティブが皆無。JIN09RPT.cbl:12 はヘッダコメント記載のみ、JIN04PRT/JIN05UPD の*SKIP2 も col7=* のコメント行
  • 実態は ◎144 / ×35(表示 83.4% でなく 82.4%
  • 直近コミット 415427a の「6語(CANCEL/I-O-CONTROL/NEXT SENTENCE/EJECT/SKIP2/FALSE)カバー」は実際 5 語SKIP2 除く)

H-3. JIN04PRT / JIN05UPD が production/ 未反映

  • 両プログラムは root 実装済み・テスト PASS なのに production/ に存在せず git 未反映

H-4. JIN03RAN の SET ... UP/DOWN BY が IBM COBOL でコンパイル不可

  • src/JIN03RAN.cbl:206, 251, 288SET WRK-RANK-NO UP BY 1 等の対象が PIC 9(004)PIC 9(004) BINARY数値項目
  • IBM Enterprise COBOL の SET ... UP/DOWN BYインデックス名専用。数値項目には使用不可 → コンパイルエラー
  • GnuCOBOL はエラーなく受け付けるためローカルでは通過(潜在的本番障害)

H-5. production 側カバレッジ統計が root と 63 行差分・かつ内部矛盾

  • production 側 カバレッジ統計.md119+29+51=199 ≠ 205、率も記載 75.1% と矛盾

4. 重要度:中(対応推奨)

  • M-1. JIN04PRT・JIN05UPD の詳細設計書が存在しないroot/production 双方)。開発フロー Phase 3(設計書解析→実装)に違反、双方向トレーサビリティ欠如
  • M-2. カバレッジ統計のプログラム数・タイプ数が JIN09RPT 追加後未更新(「39本」「44プログラム」等。実際は 40 本)
  • M-3. SEARCH ALL の「SKILL-MST 昇順」前提が JCL/設計書で未担保JIN02SKL・JIN09RPT)。JINJ020/JINJ090 に PGM=SORT 手順がなく、未ソート入力時の誤動作リスク
  • M-4. JIN09RPT の ODOOCCURS 1 TO 20 DEPENDING ON)初期値 0 が IBM の未定義動作リスク(範囲外参照。GnuCOBOL は検出せず PASS)。SSRANGE 有効時は実行時 ABEND
  • M-5. SKILL-MST-REC の BINARY レコード長差異GnuCOBOL=79B / IBM=80BPIC 9(002) BINARY のバイト数差)。単に長さだけでなく MST-LEVEL-NAME のオフセットもずれる
  • M-6. JIN09RPT の内部表定義が詳細設計書と不一致TBL-LEVEL 等)
  • M-7. 詳細設計書(JIN01/02/03/09)の段落名が実コードの SOR 規約名と完全不一致(概念名 JIN01KNS-OPEN 等 vs 実装 1000ITTSOR 等)。トレーサビリティ崩壊
  • M-8. 使用資源一覧の誤記JIN01KNSVALID-ERROR-REC 帰属、JIN01REC 内と誤記載)、JIN02SKLSUB02MSG CALL箇所 4000→6000、JIN01REC 誤使用)、JIN09RPTSKIP2 誤記載)
  • M-9. JIN05UPD のキーワードカバー実体不在FALSE / EXIT PARAGRAPH がコメントのみで実装なし、VALID-ERROR-REC COPY を使用せず内約定義
  • M-10. 基本設計書のレコード長矛盾JIN-LEDGER が行 40=132B なのに行 117=133B。実規格は 132B
  • M-11. JIN01〜05 のテスト結果文書が未作成(テスト結果_KYU.md・テスト結果_JIN09RPT.md のみ)
  • M-12. JIN09RPT の MST>20 件時のオーバーフローガード無しSKILL-LIST-MAX=20 がコード未反映)

5. 中:テスト充足性の不足点

プログラム 不足ケース
JIN01KNS 全角混入(VF-A002)、MEI 単独エラー
JIN02SKL MST 重複キー、SEARCH ALL 未ソート表、ODO 空表検索、純粋 1:1
JIN03RAN (網羅度高。概ね充足)
JIN04PRT LINAGE 境界(FOOTING/TOP/BOTTOM 最大行)、PAGE-COUNTER 値検証、DATE/TIME/ON OVERFLOW 実例
JIN05UPD SQLCODE≠03400DBERRSOR)、上限500件ガード(CNS-MAX-TRANS)、CONNECT 失敗分岐
JIN09RPT MST 0 件×R01 複数、境界 89/51/1、S=100/90 解釈

6. まとめ:全体評価と推奨対応

機能面:実装 6 本は全て GnuCOBOL でコンパイル・テスト PASS。DD/CALL/COPY/レコード長・DB 定義(ddl/schema_jin.sql)の整合は概ね健全。IBM COBOL 適合の基本要件(SOURCE-COMPUTER、カラム位置、88-level 引用符、コメント方式、>>SOURCE 混入なし)はほぼ全項目合格。

工程・整合面:以下が特に重要。

  1. JIN06SRT/07SUB/08TST の実装が未完了(基本設計上の予約語カバー対象もカバーできない)
  2. SKIP2 の◎主張が虚偽(統計・資源一覧・コミット記述の是正 or SKIP2 実装)
  3. JIN03RAN の SET 非インデックス利用は IBM 本番でエラー(最重要修正)

推奨アクション(対応優先順)

  1. JIN03RAN.cbl の SET ... UP/DOWNADD/SUBTRACT に修正(H-4
  2. SKIP2 の記載整合:実装 or 統計・資源一覧・コミットの修正(H-2)
  3. JIN04PRT・JIN05UPD の production 反映と詳細設計書作成(H-3, M-1)
  4. JIN06SRT/07SUB/08TST の実装(H-1)— 大規模、要計画立案
  5. カバレッジ統計・使用資源一覧・基本設計書の矛盾是正(M-2, M-7〜M-10
  6. 不足テストケースの追加(Section 5)
  7. production カバレッジ統計の root 同期(H-5)