text=阿野 幸裕 ジーアールソリューションズ
前編では、アプリケーションの調査に関するツールの成り立ちと違いを解説し、アプリケーションを深く解析でき、かつ毎日使えるツールとして、アプリケーション解析ツールの必要性に触れた。後編では、アプリケーション解析ツールのBI的な活用方法について解説する。データ活用におけるデータレイク的蓄積や品質管理、クレンジング、データマート、多次元分析、統計分析、データマイニングなどに相当する機能の活用方法である。
BI的に使えるアプリケーション解析ツール
アプリケーション解析ツールでは、以下のBI的活用が可能である。すでに多くのユーザーが利用している。
①アプリ情報の蓄積:データレイク、データウェアハウスに相当
②アプリ品質の調査:データクオリティ、データクレンジングに相当
③アプリ使用状況・変更頻度、複雑度等の計測:統計分析に相当
④アプリ解析用途、目的などに応じたグルーピング:データマートに相当
⑤アプリの多角的な可視化:OLAPに相当
⑥アプリの変数レベルの遷移調査、ビジネスルール抽出:データマイニングに相当
そしてこれに加えて、これらの利用を簡便にし、アプリケーションの調査に集中できるようにするインタフェースや仕組みも、アプリケーション解析ツールの特徴である。
1つ1つ紐解いていこう。
アプリ情報の蓄積
アプリケーションの解析に網羅性や深さをもたせるには、情報の蓄積が重要な基本事項となる。オブジェクトのカタログ情報に加えて、そのカタログ情報からは得られない変数の遷移、ビジネスルール、動的呼出し、プログラム内部記述などを蓄積したものである。あらゆる世代・種類のリソースをデータ化して蓄積することにより、システムフローといった俯瞰的な視点やソースコードレベルの視点、オブジェクト中心、ファイルフィールド中心などの、調査・分析作業において必要な多角的な視点を得ることができる。
以下は、オブジェクトの例(図表2)である。
オブジェクト | 内容 |
---|---|
*BNDDIR | バインド・ディレクトリ |
*CMD | コマンド |
*DTAARA | データ域 |
*DTAQ | データ域待ち行列 |
*FILE | ファイル |
*JOBD | ジョブ記述 |
*MENU | メニュー |
*MODULE | モジュール |
*MSGF | メッセージ・ファイル |
*PGM | プログラム |
*PNLGRP | パネル・グループ |
*QRYDFN | クエリー定義 |
*SRVPGM | サービス・プログラム |
*USRSPC | ユーザー・スペース |
次はソースの例(図表3)である。
RPGソースファイル (Ⅱ、Ⅲ、ILE、FFRPG、SQLRPG |
COBOLソースファイル (CBLLE可) |
CL、CLPソースファイル |
DDSソースファイル |
FMTソースファイル |
APWソースファイル |
OCLソースファイル |
CMDソースファイル |
コピーソースファイル |
アプリ品質の調査
アプリケーションは、オブジェクトの元となったソースコードの欠落や冗長資産、不要資産、誤作動の恐れのある資産などさまざまな問題を抱えているのが一般的だが、正確に把握されていないことが多い。そしてアプリケーションの調査はこれらの問題を解決しないまま行われることが少なくなく、調査工数に大きく影響が出ることがある。その場合は資産の整理が必要だが、アプリケーション解析ツールを使うと、これらの問題を人間ドックの受診結果表のようにダッシュボード化して確認することができる。
図表4 品質評価による不要資産抽出
アプリケーション使用状況・変更頻度、複雑度などの計測
アプリケーション調査ツールでは、オブジェクトの使用状況やソースコードの変更頻度情報を取得できる。アプリケーション解析ツールではこれに加えて、ソースコード全体やステップ数、複雑度データ(後述)、ファイルオブジェクトのレコード増減数などの情報を変更履歴情報中に保持している。そのため、現在のソースコードと過去の複数の変更履歴時点のソースコードを行レベルで比較したり、ステップ数やレコード数、複雑度の変化を時系列グラフで見ることができる。
複雑度とは、情報工学に基づくソフトウェアメトリクス手法によってソースコードの規模・複雑さ・保守性などを定量的に示すもので、アプリケーション解析ツールを用いると属人的な経験値に頼らない数値を算出できる。変更時の工数見積りの根拠や改善すべきリソースの特定に利用可能である。
図表5 複雑性の高いプログラム抽出
アプリケーション解析用途、目的などに応じたグルーピング
アプリケーション解析ツールのグルーピングは、調査・分析作業の効率化や精度向上に必須となる機能である。グルーピングは、自動的になされるものとユーザーが任意に設定するものの2つに分かれる。自動処理のメリットとしては、オブジェクトを中心に調査する場合、オブジェクトとコンパイルソースが関連づけられバックアップのソースは分析対象とならないため、ノイズとならない点があげられる。ソースを中心に見る場合はバックアップソースも含めて解析できるため、調査の用途に合わせて選択可能である。一方、ユーザーによる任意の設定はさまざまな目的に使うことができ、アイデア次第で用途を広げられるメリットがある。
グルーピングの例としては、稼働・非稼働オブジェクトの区別、業務サブシステムごとの区分け、ライブラリ違いの同名オブジェクトの仕分け、廃止候補オブジェクトの仮置きなどがある。グルーピングすると内部・外部が区別されるため、検索や影響調査などは範囲内で行えるのに対して、俯瞰的なチャート類はノイズが除去されるとともに、グループ外への影響も逃さない調査が可能となる。また、グループ同士の関連性も分析でき、一部の業務システムのパッケージ化、SaaS化の影響分析に用いることもできる。
図表6 オブジェクト中心、ソースコード中心の視点の切り替え
図表7 稼働・非稼働オブジェクトの区別、業務サブシステムごとのデータマート的区分
アプリケーションの多角的な可視化
IBM iのアプリケーション調査は、プログラムだけでなく、オブジェクトを頂点や中心に据えて分析したり、出力結果から逆展開で見ていく必要がある。そのため、ジョブフローなどプログラムの実行方向の視点で可視化された設計書的なチャートだけで仕様を読み解くのは難しく、「ソースを見たほうが早い」ということになる。
アプリケーション解析ツールでは、多階層のプログラム呼出し関係の正展開、逆展開、あらゆるオブジェクトを中心に据えることのできるデータフロー、物理ファイル間の参照関係(ER図)などをインタラクティブに駆使して、BIツールのように起点や軸、粒度を切り替えて調査を進められる。これにより、関連性の把握、データの流れ、問題点の発見、仕様の把握が効率的に行える。
図表8 多角的可視化の例
アプリケーションの変数レベルの遷移調査、ビジネスルール抽出
アプリケーションの調査において一番時間がかかるのは、複数のソースを跨って、変数や定数のレベルでどのように処理がなされているかを調べるときである。これらは文字列検索では非常に効率が悪く、答えが出せない場合もある。アプリケーション解析ツールでは、変数やフィールドレベルの代入・置換関係の解析とその情報の格納を行える。またデータベースや装置ファイルフィールドと定数の比較などのビジネスルールの抽出とその情報格納も行えるため、下図のようなマイニング分析が可能になる。こうした機能はアプリケーション解析ツールの優れた費用対効果を示すもので、アプリケーション解析ツールが「毎日使える」理由でもある。
図表9 フィールドおよび変数の代入・置換先の影響分析
図表10 フィールドおよび変数の代入・置換元の影響分析
図表11 ビジネスルールの抽出例
アプリケーション解析ツールのBI活用メリット
アプリケーション解析ツールは、ドキュメント化ツールやアプリケーション調査ツールと比較して多機能なため、価格が高くなる傾向がある。その半面、アプリケーションの保守・開発を日々行っている企業にとっては毎日使うことができるため、費用対効果は桁違いに高くなる。また調査効率も格段に上がるため、費用対効果はさらによくなると言える。
さらにIBM iアプリケーションの次世代継承の基盤として、非IBM i技術者の早期立ち上げを支援し、IBM iに関連する情報システム業務のモダナイゼーションに貢献できるメリットがある。
アプリケーション調査のためのツールは、価格だけで選択すると自社の実情や課題にマッチしないことが多々あり、買い直しになるケースが少なくない。ツールの選択は、本稿で述べたことを考慮のうえで行うことをお薦めしたい。
著者
阿野 幸裕 氏
ジーアールソリューションズ株式会社
モダナイゼーション事業
専任部長/X-Analysisスペシャリスト
IBM i継続利用のために、アプリケーション解析ツールの本質を理解しよう
前編◎IBM i用アプリケーション分析ツールの整理
後編◎アプリケーション解析ツールのBI的活用のすすめ
[i Magazine・IS magazine]