COBOLとは
まずはCOBOLとは何なのか、その特徴やプログラムの記述方法について解説します。
言語の概要
COBOLは、1959年に事務処理用に開発された汎用系のプログラミング言語です。企業や自治体、金融機関における事務処理を自動化することを目的に作られました。COBOLが開発されてから60年以上経っていますが、現在でも行政、企業の基幹業務、銀行、ホテルの予約、座席の予約システムなどで利用されています。
COBOLのプログラムの記述について
COBOLのプログラムは、4部に分けて記述する点が特徴です。各部は、さらに節や段落に分けられます。部、節、段落に分かれていることで、それぞれの役割が明確となるため、COBOLは可読性が高い言語といわれます。
見出し部(IDENTIFICATION DIVISION)
見出し部には、プログラム名、作者名、作成日などのメタ情報を記載します。以下に、見出し部の例を記載します。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE001.
AUTHOR. TARO-SUZUKI.
DATE-WRITTEN. 2023/4/1.
DATE-COMPILED. 2023/4/1.
環境部(ENVIRONMENT DIVISION)
環境部には、環境変数や使用するファイルなどを記載します。下記は環境部の記載例です。
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. COMPUTER01.
OBJECT-COMPUTER. COMPUTER01.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO FILE01
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO FILE02
ORGANIZATION IS LINE SEQUENTIAL.
データ部(DATA DIVISION)
データ部には、変数の定義やファイルのレイアウトなどを記載します。データ項目のデータ型と桁数を指定する場合は、PICTURE句を利用します。データ型は、数値形式、英数字形式、書式編集形式の3つに大きく分けられます。例えば、9は数字1桁、Xは任意の文字を表しており、データ型の後ろに記載される括弧内の数字はバイト数です。下記にデータ部の例を記載します。
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-RECORD.
03 IN-PRODUCT-CODE PIC X(6).
03 IN-PRODUCT-NAME PIC X(30).
03 IN-PRODUCT-PRICE PIC 9(8).
WORKING-STORAGE SECTION.
77 WRK-COUNT PIC 9(2).
LINKAGE SECTION.
REPORT SECTION.
SCREEN SECTION.
手続き部(PROCEDURE DIVISION)
手続き部には、プログラムが行う処理内容を記載します。行の先頭に*を記述すると、その行はコメント行になります。
下記は手続き部の記載例です。
PROCEDURE DIVISION.
PERFORM INIT-PROC.
*
PERFORM MAIN-PROC.
*
STOP RUN.
*
INIT-PROC SECTION.
*
MOVE ZERO TO WRK-COUNT.
*
OPEN INPUT IN-FILE.
PERFORM INFILE-READ-PROC.
*
INIT-PROC-EXIT.
*
EXIT.
COBOLでhello worldを出力する場合のプログラミング例
COBOLでhello worldを出力する場合のプログラム例を記載します。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD-01.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
PROCEDURE DIVISION.
MAIN.
DISPLAY "hello world" UPON CONSOLE.
STOP RUN.
COBOLが採用されている業界や理由
COBOLはどのような業界で採用されているのでしょうか、理由も合わせて解説します。
採用されている業界や企業
COBOLが採用されているのは、金融、銀行や保険、損保などの金融業界です。事務処理、計算処理、帳票の作成処理といった業務で利用されます。
採用されている理由
COBOLは開発されてから60年以上経っていますが、今でも利用され続けているのには理由があります。
金額計算に向いている
COBOLが多く採用されている金融業界では、大きな桁数の金額計算を行う必要があるうえ、誤差の発生は許されません。COBOL以外のプログラミング言語を利用する場合、浮動小数点を扱うと、丸め誤差が生じたり、切り捨てが発生したりしてしまいます。COBOLは、データを10進数で扱う構文です。小数点以下を明示的に定義できるほか、桁数を指定することも可能です。
大量レコード処理に向いている
COBOLは、データの書き込みや並列処理を高速で実行できるプログラミング言語です。そのため、金融業界で大量のデータを取り扱うバッチ処理などに用いられます。
長期で運用されてきた実績による信頼性の高さ
COBOLは60年以上の歴史があるため、システム運用のノウハウや事例が豊富です。これまでに蓄積された実績から、他の言語と比べて高い信頼性があります。
COBOLエンジニアの求人例
次に、レバテックキャリアに掲載されているCOBOLエンジニアの求人例(※2023年4月現在)を紹介します。
【汎用系エンジニア】COBOLを用いた金融・保険システムのアプリ開発
【想定年収】
400万円~
【仕事内容】
主な業務は、金融・保険システムのアプリケーション開発
【具体的な業務内容】
アプリの開発、要件提案/要件定義などの上流工程※経験による
【必須条件】
経験
・Javaを用いたシステム開発実務(2年以上)
・COBOLを用いたシステム開発実務(2年以上)
※上記いずれかで可
マインド
・上流工程に携わってみたいという気持ちをお持ちの方
・主体的に業務に取り組める方
【SE】第2新卒可/会計やセキュリティなどの設計・開発・保守・運用/フルフレックス
【想定年収】
326万~420万円
【仕事内容】
システムエンジニアとして活躍していただきます。
【具体的な業務内容】
以下のような分野での、設計/開発/保守/運用
・会計
・セキュリティ
・人事/給与
・BPO(データセンター)
・金融
・システム運用
※その他、さまざまな特定業務支援あり
【仕事の特色】
活かせる経験・スキル
・Java、C、C++、COBOL、Python、JavaScript、SQL、VBA、PHP、VB.NETなど
・アジャイル開発の経験
・基盤系(OS、ネットワークのセッティング)の経験
【必須条件】
経験
・下記いずれかのご経験をお持ちの方
・Javaを学生時代、スクールなどで学ばれていた方
・現在、Javaの学習をされている方(独学可)
マインド
・主体性を持って前向きに働ける方
・スキルアップ/キャリアアップに対する意欲が高い方
・上流から下流まで幅広く経験を積み、自身に最も合うキャリアを考えていきたい方
【汎用系エンジニア】COBOLを用いた金融・保険システムのアプリ開発
【想定年収】
400万~660万円
【仕事内容】
お客様先にて、開発業務(業務系開発)を行っていただきます。
【現在募集プロジェクト】
某機構様システム保守・開発
・業務内容:基本設計~総合テストまでをご担当いただきます
・必須スキル:COBOL、Unix、DB2
・場所:23区外
某生命保険会社様開発業務
・業務内容:保険金支払系の開発業務を行っていただきます
・環境:IBM汎用機/COBOL
・場所:23区内
某通信向け開発維持作業
・業務内容:基本設計~結合テスト/障害対応
・環境:COBOL、OS:Windows、UNIX 、DB:oracle
その他プロジェクト例
・金融系のシステムの保守開発
・生命保険にて基幹業務開発
・損保にて開発業務
上記のようなプロジェクトがあり、メンバーそれぞれがご自身のスキルに合わせたプロジェクトに参画しています。
【必須条件】
経験
・COBOLを使用した開発経験3年以上
仕事へのマインド
・円滑にコミュニケーションが図れる方
【業務系システムエンジニア】PM・PLまたは技術スペシャリスト/金融系システム開発
【想定年収】
400万~800万円
【仕事内容】
主に、金融系システム開発におけるPL、PM候補、または技術スペシャリストとして、下記の業務に携わっていただきます。まずは2~3名程度のPL候補または技術スペシャリストとして従事。PM、PL志望の方には、将来10名以上の規模でPL、PMとしてスキルアップできるよう、環境が用意されます。
【具体的な業務内容】
管理系
・PM、PLとしてメンバーの管理(3名以上)
・エンドユーザーとの仕様調整、見積り
・若手社員の教育、指導
・ビジネスパートナー会社との打合せ、要員調整
開発工程
・独力での開発(Java、.NET、PL/SQL、COBOL)
Web・ビジネスアプリ系
・Java、.NETなどを使用したオープン系業務アプリケーション開発
汎用機系
・クレジットカード(売上、精算、回収、請求、情報系)のシステム開発
・生命保険、損害保険システム開発
PM・業務コンサルティング
・大規模プロジェクトのマネジメント
・金融(クレジットカード、生損保)などの顧客に対するコンサルティング
【必須条件】
・Java、.NET、COBOLいずれかを用いた開発経験(1年以上)、またはオープン系システムの開発経験(1年以上)をお持ちの方
※独力での開発が可能な方
・自発的に業務を考えて取り組める方
・コミュニケーション力をお持ちの方
・論理思考のできる方
COBOLエンジニアの業務内容と必要なスキル
次に、COBOLエンジニアの業務内容と必要なスキルを紹介します。
業務内容
COBOLを用いて金融、生命保険、損保などのシステムやアプリを開発することがメインですが、人事、給与、会計に関する開発を行う場合もあります。また、運用・保守や障害対応が業務内容として明記されている求人も見られます。企業によっては、上流工程から携わるケースもあるでしょう。
必要なスキル
COBOLを用いて汎用系システムを開発した経験が一定年数求められます。また、COBOLエンジニアに限らず、開発に携わるエンジニアに共通して必要なスキルとして、コミュニケーション能力や主体性が挙げられます。
関連記事:COBOLエンジニアの転職に必要な経験・スキルとは?
COBOLエンジニアの将来性と転職のポイント
最後に、COBOLエンジニアの将来性と、転職する際のポイントについて紹介します。
COBOLの利用状況
COBOLは、現在でも日本国内における多くの企業で利用されています。IPA(情報処理推進機構)が公表しているソフトウェア開発分析データ集2022によると、国内のソフトウェア開発プロダクト開発に使われているプログラミング言語の累積件数において、COBOLは16.3%を占めており、1位のJava(42.4%)に次ぐ2位です。
COBOLエンジニアの需要と将来性
COBOLは1960年代に登場したプログラミング言語であり、COBOLでの開発をメインで担当してきたエンジニアは、すでに退職している人も少なくありません。また、若年層のエンジニアは、金融業界を志望していない限りは、Web系で用いられるプログラミング言語の習得を優先するため、COBOLを扱える人材は不足気味です。しかし、COBOLで開発されたシステムが稼働している限り、これらのシステムの開発・運用・保守を行えるエンジニアの需要は続くでしょう。
COBOLエンジニアへの転職のポイント
COBOLエンジニアへの転職については下記のポイントを踏まえて、自身の志向やキャリアプランと合う場合に選択肢に含めるとよいでしょう。
金融業界、銀行などの大規模システムの運用・保守経験を積みたい場合
金融業界の大規模システムでは、取り扱う情報量が膨大であるうえ、金額計算の誤差が許されません。堅牢なシステム設計や、安全性についての知見を深められます。
COBOLから別のプログラミング言語へのリプレイス経験を積みたい場合
リプレイスでは、運用中のシステムの要件を把握するとともに、新システムで漏れなくその要件を反映する必要があります。さらに、システム移行の部分で通常のシステム開発とは異なる経験を積めるでしょう。
関連記事:COBOLエンジニアの需要と将来性、年収例などを解説
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて