1. 導入:なぜこの記述を知っておく必要があるのか
COBOLのプログラムには、いわゆる「見出し部(IDENTIFICATION DIVISION)」という場所があり、そこにプログラムの情報を記述するルールがあります。その中の一つに「SECURITY」という項目が存在します。かつてはプログラムの機密レベルを記述するために使われていましたが、現在の開発現場ではどう扱うべきか、なぜ廃止されたのかを解説します。古い保守案件に触れる際、この記述に出会ったときに慌てないための知識として非常に重要です。
2. 基礎知識:SECURITY句の役割と現状
SECURITY句は、プログラムの取り扱い注意や機密性(例:社外秘、極秘など)を記述するためのものでした。しかし、これはコンパイラに対して「このプログラムを暗号化せよ」といった命令を与えるものではなく、あくまで人間が読むための「メモ」のような存在です。
最新のCOBOL規格では、このSECURITY句は「Obsolete(廃止予定・非推奨)」とされています。現在では、プログラムの仕様変更や修正履歴と同様に、ソースコード内の「注釈(コメント)」として記述するのが、現代のスタンダードな開発作法となっています。
3. 実装と解決策
SECURITY句を使わずに、機密情報や注意事項を記述したい場合は、アスタリスク()を使用した注釈行を活用しましょう。これにより、コンパイル時に一切の影響を与えず、誰が見ても分かりやすいドキュメントとしてソースコードに残すことができます。
4. サンプルプログラム
以下は、古い形式と、現代推奨されている形式の比較サンプルです。
- IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE01.
- — 古い形式(非推奨) —
SECURITY. CLASSIFIED-LEVEL-1.
- — 現代の推奨形式(注釈行を活用) —
- プログラム名 : SAMPLE01
- 機密区分 : 社外秘(重要)
- 作成日 : 2023/10/27
- 備考 : このプログラムは外部公開不可。
PROCEDURE DIVISION.
DISPLAY “プログラムを実行します。”
STOP RUN.
5. 応用・注意点:現場で陥りやすい罠
現場で古いソースコードをメンテナンスする際、「SECURITY. CLASSIFIED.」という記述を見つけても、それを無理に消す必要はありません。コンパイルエラーになるわけではないからです。ただし、新しく機能を追加する際に、わざわざSECURITY句を新設するのは避けましょう。
また、機密性の高い情報は、ソースコード内にハードコーディング(直接記述)するのではなく、環境変数や設定ファイルで管理するのが現代のセキュリティの常識です。ソースコードはバージョン管理システム(Gitなど)に載ることが多いため、プログラム内に「極秘」と書いても、閲覧権限を持つ人が増えれば意味を成さなくなるからです。
古い作法を知りつつ、現代の標準的な手法(注釈や設定ファイルの活用)を使い分けるのが、ベテランへの第一歩です。

コメント