MENU

RPG Ⅲ、Ⅳ、COBOL、CLなどIBM iのソースコードに対して品質チェックを実行する「ARCAD CodeChecker」

可読性の低いソースコードを
発見してプログラム品質を向上

仏ARCAD社は変更管理、開発、テスト、配布までシステムのライフサイクル全般をカバーする、IBM i向けのDevOpsソリューションを開発・販売している。

国内でARCAD製品を提供している三和コムテックからはすでに、IBM iのプログラム資産を分析・可視化する「ARCAD Observer」や、既存のRPGプログラム(RPG Ⅲ、RPG Ⅳ)をフリーフォームRPGへ自動的に変換する「ARCAD Transformer RPG」などが提供されている。

今年8月、そのラインナップに新しいソリューションが加わった。「ARCAD CodeChecker」である。

ARCAD CodeCheckerは、RPG Ⅲ、RPG Ⅳ、CL、COBOLなど、IBM iのソースファイルに対して品質チェックを実行するツールである。

運用歴の長いIBM iユーザーでは、過去のプログラムがスパゲティコード状態で、つまり可読性が低い状態のまま運用されているケースは少なくない。

たとえば処理が複雑に入り組んでいる、GOTO文を多用しているためあちこちにジャンプしている、機能ごとにモジュール化されていない、開発途中のコメントなど動作に無関係なコードが残されている、変数名・関数名が曖昧で目的が不明である、など。

こうしたスパゲティコードが生まれる背景には、開発ルールが徹底されていないことや、開発者の経験やスキルが不足している、あるいは納期が厳しく十分な品質チェックが行われていないといった状況がある。

プログラム内容を理解するのに時間がかかれば、障害発生時の原因特定や修正に多くの時間が必要になる。昨今指摘されているように、開発者の高齢化や退職・転職などでプログラムの作成者が不在になれば、的確なメンテナンスが実行しにくくなるというリスクも潜んでいる。プログラムの品質がメンテナンス性に直結することは言うまでもない。

そこでソースコードの品質管理を目的に誕生したのが、ARCAD CodeCheckerである。IBM iのソースコードに対し、あらかじめ開発ルールを定め、そのルールに抵触したソースコードがないかをチェックする。

IBM iのソースコードが対象であるが、オープン系言語で使用する場合には、オープン系の品質管理ツールである「SonarQube」と連携することで、同様の管理が可能となる。

100種の標準ルールに加え
ユーザー独自ルールをカスタマイズ

ARCAD CodeCheckerはオンプレミスでの利用を前提とし、IBM i側に「CodeChecker Server」をインストールする。そしてWindows上で稼働する「CodeChecker Studio」を使用して、ルール設定や品質チェックを実行する。

デフォルトで100種類近いコーディング標準のレビュールールがあらかじめ用意されている。たとえば、「300文字以上のコメントを検出」「Elselfが2つを超えるブロックの場合を検出」「20行以上の条件ブロックを検出」といった標準ルールが設定されている。

このほか、ユーザー独自のルールをカスタマイズすることも可能である。ルール設定に上限はない。単一もしくは複数のルールを実行し、ソースコードの品質を3段階(OK、Fatal、Warning)で評価する。

「Rational Developer for i」のアドインとして組み込んだり、CI/CDを実現するオープンソースソフトウェアのJenkinsと連携させることも可能である。

 RCAD CodeCheckerによる品質チェックの流れは、以下のようになる。

ARCAD CodeCheckerによる品質チェックの流れ

① Rule Setsの選択
② Quality RuleMetricの選択
③ 対象システムへ接続
④ ルール実行/実行結果の一覧表示
⑤ 詳細出力

①と②でルールとその詳細を選択・決定し、③でチェック対象のシステムへ接続し、④と⑤で実行結果を表示する。ソースコード内にチェック結果の詳細が表示されるので、問題箇所をスムーズに特定できる。こうしたチェック結果はExcelに出力したり、メールで通知することもできる。

またSQLインジェクションを招く脆弱性、あるいは脆弱なAPIの呼び出しなど、セキュリティ上のリスクが潜むソースコードを検出するような場合にも役立つ。

三和コムテックではまず、開発業務を主体とするITベンダーや内製の開発量が多いIBM iユーザーに対して、ARCAD CodeCheckerによるアプローチを開始する予定である。

海外市場ではすでに豊富な実績がある。開発したプログラムの品質チェックはもちろん、ARCAD Transformer RPGでフリーフォームRPGへ変換したタイミングで品質チェックを実施したり、ARCAD CodeCheckerの導入を機に標準ルールを策定・統一することで、若手技術者の育成に活かすといった事例も見られるという。

 

三和コムテック株式会社 
https://www.sct.co.jp/

[i Magazine・IS magazine]