16 KiB
16 KiB
カバレッジ統計
本ファイルは全コードベース(KIN + ZAN + SUB)を統合したカバレッジ状況を集計する。 定義ファイル(COBOLキーワード網羅定義書.md)の Part 1(予約語一覧)・Part 3.1(カテゴリ定義)を参照して集計する。 凡例:◎=使用済、○=使用あり(一部構文のみ)、×=未使用、△=調査中
1. プログラムタイプカバレッジ
1.1 全35タイプ内訳
| No. | 名称 | 分類 | 対応プログラム | 状態 |
|---|---|---|---|---|
| 01 | マッチング(1:1) | 匹配 | ZAN04MAT | ◎ |
| 02 | マッチング(1:N) | 匹配 | KIN05MAT, KIN03EXP | ◎ |
| 03 | マッチング(N:1) | 匹配 | ZAN03CHK | ◎ |
| 04 | レイアウト編集のみ(GETPUT) | 编辑 | KIN06CLD | ◎ |
| 05 | 振り分け(IF文) | 分支 | 全メインプログラム(12本) | ◎ |
| 06 | 振り分け(EVALUATE文) | 分支 | 12本中11本(KIN04/KIN06以外) | ◎ |
| 07 | キーブレイク(集計) | key切 | ZAN05CAL | ◎ |
| 08 | キーブレイク(集約) | key切 | ZAN05CAL | ○ |
| 09 | DB更新 | 数据库 | KIN02UPD, ZAN06UPD | ◎ |
| 10 | 50分割 | 分割 | — | × |
| 11 | 25分割 | 分割 | — | × |
| 12 | 100分割 | 分割 | — | × |
| 13 | 項目チェック(重複含まず) | 校验 | ZAN01CHK, ZAN03CHK, KIN01INP, KIN04CHK, SUB04CHK | ◎ |
| 14 | オンラインPGM | online | — | × |
| 15 | CSV→FB変換(改行なし) | 文件转换 | ZAN01CHK(UNSTRING), KIN01INP(UNSTRING) | ◎ |
| 16 | 2段階マッチング(1:1⇒1:1) | 匹配 | — | × |
| 17 | 2段階マッチング(N:1⇒N:1) | 匹配 | — | × |
| 18 | マッチングM:N⇒出力M件 | 匹配 | — | × |
| 19 | マッチングM:N⇒出力N件 | 匹配 | — | × |
| 20 | マッチングM:N⇒出力M×N件 | 匹配 | — | × |
| 21 | CSV→FB変換(改行あり) | 文件转换 | — | × |
| 22 | 2段階マッチング(M:N⇒M:N) | 匹配 | — | × |
| 23 | SELECT条件 | 数据库 | — | × |
| 24 | 内部テーブル検索 | 内部处理 | KIN01INP(SEARCH), KIN03EXP(SEARCH ALL), ZAN03CHK(SEARCH ALL) | ◎ |
| 25 | サブプログラム使用 | 内部处理 | SUB01DAT~SUB05TIM | ◎ |
| 26 | DB検索 | 数据库 | KIN03EXP, KIN06CLD | ◎ |
| 27 | 項目チェック(半角20桁/4桁) | 校验 | — | × |
| 28 | SYSIN読込 | 内部处理 | KIN08DBU | ◎ |
| 29 | ASCII→EBCDIC変換 | 文件转换 | — | × |
| 30 | キーブレイク(集計集約以外) | key切 | KIN03EXP(社員小計), ZAN02CHK(重複検出), KIN05MAT(N:1ループ) | ◎ |
| 31 | 項目チェック(重複含む) | 校验 | ZAN02CHK(時間帯重複) | ◎ |
| 32 | 1:N+キーブレイク(同キー) | 混合 | — | × |
| 33 | 1:N+キーブレイク(異キー) | 混合 | — | × |
| 34 | SORT(INPUT/OUTPUT PROCEDURE) | 排序 | — | × |
| 35 | MERGE(複数ファイル結合) | 排序 | — | × |
1.2 集計
| 指標 | 値 |
|---|---|
| 全タイプ数 | 35 |
| ◎(使用済) | 15 |
| ○(一部使用) | 1 |
| △(調査中) | 0 |
| ×(未使用) | 19 |
| カバレッジ率(◎/35) | 42.9% |
| カバレッジ率(◎+○/35) | 45.7% |
2. カテゴリカバレッジ
2.1 カテゴリ別使用状況
| カテゴリ | 全文数 | 使用文数 | 使用文一覧 | 未使用文 | カバレッジ率 |
|---|---|---|---|---|---|
| 入出力(ファイル) | 7 | 6 | READ, WRITE, OPEN, CLOSE, WRITE FROM, WRITE ADVANCING | DELETE(SEQ), REWRITE, START | 85.7% |
| 入出力(ソート) | 4 | 0 | — | SORT, MERGE, RELEASE, RETURN | 0.0% |
| 入出力(画面/システム) | 3 | 2 | ACCEPT, DISPLAY | STOP RUN(SUB03END使用), STOP literal | 66.7% |
| 算術演算 | 5 | 5 | ADD, SUBTRACT, MULTIPLY, DIVIDE, COMPUTE | —(CORRESPONDING/REMAINDERは一部使用) | 100% |
| 制御(条件分岐) | 4 | 4 | IF, EVALUATE, SEARCH, CONTINUE | — | 100% |
| 制御(繰返し) | 1 | 1 | PERFORM(UNTIL/VARYING/THRU/TEST AFTER) | — | 100% |
| 制御(分岐/呼出) | 7 | 4 | CALL, GOBACK, EXIT, GO TO | CANCEL, ENTRY, ALTER, EXIT PROGRAM | 57.1% |
| 文字操作 | 4 | 4 | STRING, UNSTRING, INSPECT, INITIALIZE | —(MOVE含む) | 100% |
| 埋込み言語 | 1 | 1 | EXEC SQL ... END-EXEC | —(EXEC CICS未使用) | 100% |
| 合計 | 38 | 27 | (上記参照) | 11件(ALTER,CANCEL,ENTRY,EXEC CICS,EXIT PROGRAM,MERGE,RELEASE,RETURN,REWRITE,SORT,START) | 71.1% |
2.2 未カバーカテゴリ
| カテゴリ | 未使用文 | 備考 |
|---|---|---|
| 入出力(ソート) | SORT, MERGE, RELEASE, RETURN | JCL PGM=SORTに委譲。COBOL SORT不使用 |
| 制御(分岐/呼出) | CANCEL, ENTRY, ALTER, EXIT PROGRAM | GOBACKで代用。ALTERは非推奨 |
| 入出力(ファイル) | REWRITE, START | VSAM/INDEXED非対応。DELETEはEXEC SQLのみ |
3. 予約語・構文パターンカバレッジ
定義ファイル(COBOLキーワード網羅定義書.md Part 1)の「対応するCOBOL節/文」列に基づき、各構文パターンの使用状況を記録する。 優先度:高=当該プログラムタイプで必須、中=使用頻度高い、低=特殊用途 凡例:◎=使用済(複数PGM)、○=使用あり(単一PGM)、×=未使用
3.1 入出力(ファイル)
READ
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| READ INTO | レコード読込+データ移動 | ◎ | 高 | 全ファイル読込PGM(KIN03EXP/KIN06CLDを除く) |
| READ KEY IS | キー指定読込 | × | 高 | 逐次読込のみ、キー指定不要 |
| READ AT END | 終了条件処理 | ◎ | 高 | READ AT END / NOT AT END / END-READ |
| READ NEXT | 順次読込 | ◎ | 高 | 全READ文は順次読込 |
| READ PREVIOUS | 逆方向読込 | × | 低 | 動的アクセス時のみ |
| READ NOT AT END | 終了条件否定処理 | ○ | 中 | ZAN01CHKなど |
| READ WITH WAIT | ファイル解放待ち | × | 低 | |
| READ LOCK/IGNORE LOCK | ロック制御 | × | 低 |
WRITE
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| WRITE FROM | 転記書出 | ○ | 高 | KIN04CHK(2050NORMSOR)のみ |
| WRITE ADVANCING | 改行・改ページ制御 | ○ | 中 | KIN09CSV(PAGE/2 LINES/1 LINE) |
| WRITE END-OF-PAGE | ページ終了処理 | × | 低 | |
| WRITE INVALID KEY | キー異常処理 | × | 中 | 索引ファイル時 |
OPEN
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| OPEN INPUT | 入力オープン | ◎ | 高 | 全ファイル入力PGM |
| OPEN OUTPUT | 出力オープン | ◎ | 高 | 全ファイル出力PGM |
| OPEN I-O | 入出力オープン | × | 高 | VSAM非対応 |
| OPEN EXTEND | 追加オープン | × | 中 | |
| OPEN WITH NO REWIND | 巻戻しなし | × | 低 | テープ時のみ |
CLOSE
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| CLOSE WITH LOCK | ロック付きクローズ | × | 低 | |
| CLOSE FOR REMOVAL | テープリール取外し | × | 低 |
DELETE, REWRITE, START
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| DELETE(SEQ FILE) | 逐次ファイル削除 | × | 中 | EXEC SQL DELETEはKIN02UPDで使用 |
| REWRITE FROM | 書換え+転記 | × | 中 | |
| REWRITE INVALID KEY | 書換え+キー異常処理 | × | 中 | |
| START KEY IS | 開始位置指定 | × | 中 | |
| START INVALID KEY | 位置指定+異常処理 | × | 中 |
3.2 入出力(ソート)
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| SORT ON KEY | 整列キー指定 | × | 低 | 現状未使用 |
| SORT USING | 入力ファイル指定 | × | 低 | |
| SORT GIVING | 出力ファイル指定 | × | 低 | |
| SORT INPUT PROCEDURE | 入力手続き | × | 低 | |
| SORT OUTPUT PROCEDURE | 出力手続き | × | 低 | |
| MERGE ON KEY | 結合キー指定 | × | 低 | |
| RELEASE FROM | SORTへの引渡し | × | 低 | |
| RETURN INTO | SORTからの受取り | × | 低 |
3.3 入出力(画面/システム)
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| ACCEPT FROM DATE/DAY/TIME | システム日付時刻取得 | ○ | 高 | KIN06CLDでACCEPT FROM COMMAND-LINE使用(DATE系はSUB01DAT委譲) |
| DISPLAY UPON | 出力先指定表示 | × | 高 | DISPLAYはあるがUPON句不使用 |
| DISPLAY WITH NO ADVANCING | 改行なし表示 | × | 中 | |
| STOP RUN | プログラム終了 | ○ | 高 | SUB03ENDのみ(STOP RUN RETURN-CODE) |
| STOP literal | 一時停止 | × | 低 |
3.4 算術演算
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| ADD TO/GIVING | 加算 | ◎ | 高 | ADD 1 TO CUN-xxx(全メインプログラム) |
| ADD CORRESPONDING | 対応項目加算 | × | 中 | 未使用 |
| SUBTRACT FROM/GIVING | 減算 | ◎ | 高 | KIN07DAI(6100/6300)、ZAN06UPD |
| SUBTRACT CORRESPONDING | 対応項目減算 | × | 中 | 未使用 |
| MULTIPLY BY/GIVING | 乗算 | ◎ | 中 | KIN07DAI、ZAN06UPD(時間→分変換) |
| DIVIDE INTO/BY | 除算 | ◎ | 中 | ZAN01CHK、ZAN05CAL、SUB05TIM、KIN07DAI |
| DIVIDE REMAINDER | 商と余り | ◎ | 中 | DIVIDE...GIVING...REMAINDER(ZAN01, ZAN05, SUB05, KIN07) |
| COMPUTE | 計算代入 | ◎ | 高 | ZAN01, ZAN03, ZAN05, KIN03, KIN06, SUB05 |
| ROUNDED | 丸め指定 | ◎ | 中 | COMPUTE ROUNDED(上記PGM) |
| SIZE ERROR | サイズ異常処理 | ○ | 中 | COMPUTE ON SIZE ERROR(ZAN01, ZAN03) |
3.5 制御(条件分岐)
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| IF THEN/ELSE/END-IF | 条件分岐 | ◎ | 高 | 全メインプログラム + SUB04CHK, SUB05TIM |
| EVALUATE ALSO/WHEN/OTHER | 多分岐 | ◎ | 高 | 12本中11本(KIN04/KIN06以外) |
| SEARCH ALL | バイナリサーチ | ◎ | 中 | KIN03EXP(休日), ZAN03CHK(休日) |
| SEARCH VARYING | 変数変化付探索 | × | 中 | SEARCH(非ALL)はKIN01INPのみ |
| CONTINUE | 無操作 | ◎ | 低 | SEARCH ALL AT END, EVALUATE WHEN OTHER |
3.6 制御(繰返し)
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| PERFORM 外部段落 | 段落呼出 | ◎ | 高 | 全メインプログラム |
| PERFORM THRU | 段落範囲呼出 | ○ | 中 | KIN03EXP(2100 THRU ...-EXIT) |
| PERFORM TIMES | 回数指定 | × | 中 | 未使用 |
| PERFORM UNTIL | 条件指定 | ◎ | 高 | 全メインプログラム |
| PERFORM VARYING/AFTER | 変数変化付 | ◎ | 高 | ZAN06UPD, KIN06CLD(線形探索) |
| PERFORM インライン | インライン記述 | × | 高 | 全PERFORMは外部段落呼出し |
| PERFORM TEST BEFORE/AFTER | 判定タイミング指定 | ○ | 中 | ZAN06UPD(PERFORM TEST AFTER VARYING) |
3.7 制御(分岐/呼出)
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| CALL USING | 引数付呼出 | ◎ | 高 | 全メインプログラム(CALL SUB01-05) |
| CALL RETURNING | 戻値付呼出 | × | 中 | RETURN-CODEは使用するがCALL RETURNING不使用 |
| CALL ON EXCEPTION | 呼出異常処理 | × | 中 | |
| GOBACK | プログラム終了 | ◎ | 高 | 全14プログラム |
| EXIT(plain) | 段落・節の共通終点 | ◎ | 中 | 全14プログラム(xxx-EXT. EXIT.) |
| EXIT PROGRAM | 呼出元復帰 | × | 高 | GOBACKで代用 |
| EXIT PARAGRAPH/SECTION | 段落・節終了 | × | 低 | |
| EXIT PERFORM/CYCLE | PERFORM脱出 | × | 低 | |
| GO TO | 制御移行 | ○ | 中 | ZAN01CHK, KIN01INP, KIN04CHK, SUB04CHK, KIN08DBU(DEPENDING ON) |
| CANCEL ON EXCEPTION | プログラム解放 | × | 低 | |
| ALTER TO PROCEED TO | 分岐先変更 | × | 低 | 廃止予定 |
| ENTRY USING | 別エントリポイント | × | 低 |
3.8 文字操作
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| STRING DELIMITED BY/INTO | 文字列連結 | ◎ | 高 | KIN01,02,04,06, ZAN01-04,06, SUB02MSG |
| STRING WITH POINTER | 位置指定連結 | ○ | 中 | KIN09CSV(2000MAJSOR/2500-SHORT-MODE) |
| UNSTRING DELIMITED BY/INTO | 文字列分解 | ◎ | 高 | KIN01INP, KIN04CHK, ZAN01CHK |
| UNSTRING WITH POINTER | 位置指定分解 | × | 中 | |
| UNSTRING TALLYING | 分解数計数 | ○ | 中 | KIN01INP, KIN04CHK, ZAN01CHK(TALLYING IN CNT) |
| INSPECT TALLYING | 文字計数 | ◎ | 中 | ZAN01CHK, KIN04CHK, SUB04CHK |
| INSPECT REPLACING | 文字置換 | ○ | 中 | KIN09CSV(CSVカンマ・改行サニタイズ) |
| INSPECT CONVERTING | 文字変換 | × | 中 | |
| INITIALIZE REPLACING | カテゴリ別初期化 | ○ | 中 | KIN08DBU(1110-TARGETSOR) |
| MOVE TO | 基本代入 | ◎ | 高 | 全14プログラム |
| MOVE CORRESPONDING | 対応項目代入 | × | 中 |
3.9 埋込み言語
| 構文パターン | 説明 | 使用状況 | 優先度 | 備考 |
|---|---|---|---|---|
| EXEC SQL ... END-EXEC | DB2アクセス | ◎ | 高 | KIN02UPD, KIN03EXP, ZAN06UPD |
| EXEC CICS ... END-EXEC | CICSコマンド | × | 低 | 現状バッチのみ |
4. 全体サマリ
| 指標 | 値 |
|---|---|
| プログラムタイプカバレッジ(35タイプ) | |
| ◎(使用済) | 14 / 35 |
| ○(一部使用) | 1 / 35 |
| ×(未使用) | 20 / 35 |
| △(調査中) | 0 / 35 |
| カバレッジ率(◎/35) | 40.0% |
| カバレッジ率(◎+○/35) | 42.9% |
| 実装対象限定(1-9,13-15,24-26,28,30-31)= 20種中 | 16件 = 80.0% |
| カテゴリカバレッジ(9カテゴリ) | |
| 全カテゴリ数 | 9 |
| カバー済カテゴリ(使用文あり) | 8 / 9 |
| 未カバーカテゴリ | 入出力(ソート)(4文すべて未使用) |
| カテゴリカバレッジ率 | 88.9% |
| ステートメントカバレッジ(45ユニーク) | |
| 全ステートメント数 | 45 |
| 使用済ステートメント | 37 |
| 未使用ステートメント | 8 |
| カバレッジ率 | 82.2% |
| 予約語カバレッジ | |
| 全予約語数(COBOLキーワード網羅定義書.md準拠) | 193 |
| 使用予約語数 | 137 |
| カバレッジ率 | 71.0% |
| TYPE定義カバレッジ(11種) | |
| 全TYPE定義数 | 11 |
| 使用済TYPE | 7(X, 9, 9V9, S9V9, S9V9 COMP-3, S9 COMP-3, S9 COMP) |
| 特殊形式(補足) | 3(9(004).9(001), S9 DISPLAY, +9(009)) |
| 未使用TYPE | 4(G, N, BINARY, ZZZ9) |
| TYPEカバレッジ率 | 63.6%(特殊含め90.9%) |
5. サブシステムA プログラム実装状況
| No. | プログラムID | プログラム名 | プログラムタイプ | 実装 | 備考 |
|---|---|---|---|---|---|
| 1 | KIN01INP | 休暇申請CSV取込・検証処理 | 振り分け(IF) + CSV→FB | ◎ | 実装済 |
| 2 | KIN02UPD | 休暇申請DB更新処理 | DB更新(INSERT/DELETE/SELECT) | ◎ | 実装済 |
| 3 | KIN03EXP | 休暇日別展開処理 | キーブレイク + DB検索 | ◎ | 実装済 |
| 4 | KIN04CHK | 打刻項目チェック処理 | 項目チェック(重複無) | ◎ | 実装済 |
| 5 | KIN05MAT | 打刻休暇照合処理 | マッチング(1:N) + キーブレイク | ◎ | 実装済 |
| 6 | KIN06CLD | 出勤日カレンダー生成処理 | GETPUT + DB検索 | ◎ | 実装済 |
| 7 | KIN07DAI | 日別勤怠計算処理 | マッチング(1:N) + EVALUATE分岐 | ◎ | 実装済 |
| 8 | KIN08DBU | 勤怠DB更新処理 | DB更新 + SYSIN読込 | ◎ | 実装済 |
| 9 | KIN09CSV | 勤怠CSV出力処理 | 編集出力(WRITE AFTER ADVANCING) | ◎ | 実装済 |
サブシステムA全9プログラム実装完了
本ファイルは全コードベース(KIN01-09 + ZAN01-06 + SUB01-05 = 20プログラム)を統合したカバレッジ状況。 サブシステムA 全9プログラム実装済。定義ファイル(COBOLキーワード網羅定義書.md)と合わせて参照すること。