モダンを極める:IBM i 開発者にとっての万能ナイフ
開発者およびプログラマーとしての強みは、書くコードに現れるだけでなく、周囲に置いているツールにも現れます。適切なツールを選べるかどうかによって、どれくらい生産的、効率的、正確に作業を行えるかが決まることもよくあります。自分が書いたわけではない大規模なアプリケーションで作業する際には特にそうです。
ほんの一握りのプログラム、テクノロジー、言語、またはデータベースを管理するだけでよかった時代は遠く過ぎ去ってしまいました。社内特有のナレッジを頼りにして極めて重大なビジネスの意思決定をするというのは、危険なだけでなく、無責任でもあります。経験豊富なIBM i (AS/400)開発者の転職や引退がますます増えている時には、なおさらです。社内特有のナレッジも彼らとともに社内からなくなってしまうからです。
X-Analysisを使用して、企業のIBM i リソース/ナレッジの移転にまつわる問題の解決支援業務に携わるようになって7年以上になります。ソフトウェア ソリューションの実装と、スキルおよびリソースの提供の両方を通じて、支援を必要としている顧客がIBM i 環境を管理するサポートを行ってきました。
Fresche Solutions社で、IBM i 開発者、アーキテクト、モダナイゼーションおよびデータベース エキスパートとして過ごしてきた30年の間には、様々な顧客との出会いがありました。何年間もITスタッフなしでIBM i システムを「運用」してきたという組織から(これには怖さと感心の両方の思いがありますが、やはり、怖さが大半です)、何百万ものコード行および何千ものプログラムをサポートしている大規模なチームに至るまで、実に様々です。1つの一貫したテーマがあるとすれば、一貫しているものは何もない、ということです。今日でも、たいていのITグループは、システムのドキュメンテーションをほとんどまたはまったく備えていません。そして、アプリケーションは多くの場合、長年にわたって多くの人手を介して構築されてきたものであるため、そのことが、アプリケーションの管理をしづらくし、新たなチーム メンバーやスキルの導入を不可能に近いものにしています。しかし、必ずしもそのようになるとは限らないのです。
指先を動かすだけでアプリケーション インサイトを引き出す
数か月前、ニューオーリンズで開催されたCOMMON POWERUp 2022に参加したところ、Fresche社の X-Analysisをご使用の何人かのお客様にお会いしました。この記事をまとめる気になったのは、その時に聞いた話に触発されたところもあります。クライアントの話によれば、彼らが別の会社へ移った際に、Fresche社のX-Analysis製品を持参したそうです。X-Analysisのおかげで、新しい職場に溶け込み、新しいアプリケーションおよび環境を理解でき、ほんの数週間でITチームの戦力として認めてもらえるようになったということです。実際にはX-Analysisで収集したインサイトおよびフォレンジクス データを活用したということですが、長年、在籍していてアプリケーションをよく知っているITチームのメンバーからも、すぐに信頼と敬意を勝ち取ることができたと話してくれました。アプリケーションがどのように構築されているか、それが何をインターフェースしているか、変更の影響、そうした変更がどこへどのように適用される必要があるかが分かったら、基本は押さえられます。
では、X-Analysisを使用しているITリーダーやIBM i 開発者が、X-AnalysisなしではIBM i 環境の保守作業はやりたくないと言うのはなぜでしょうか。
簡単です。環境内にあるすべてのプログラムについての詳細な情報をすべて把握している人はいません。ナレッジの移転、共有されるデータ、憶測、ビジネス上の判断、こうしたものには正確でないものが紛れ込んでいたり、内部でも考えが分かれたりすることもあります。そうなると、重要なプロジェクトも不安定なものになりかねず、さらには遅延を引き起こすことさえあります。X-Analysisは、アプリケーションに関する実際のメトリクスや詳細な情報(サイズ、複雑性、関係性、使用法など)を提供することによって当て推量の入り込む余地をなくし、全員が共通の理解を持てるようにします。
X-Analysisは、データをより直観的に理解しやすくする視覚的なフォーマットで表示することによって、開発者の作業のやり方を変え、タスクを完了するのに必要となる手作業による労力を省力化します。得られたインサイトによって、意思決定や変更の実装をより迅速に行えるようになるため、時間の節約になり、浮いた時間をより重要なプロジェクトに振り向けられるようになります。
X-Analysisによる解析はどれくらい精密か
X-Analysisは、アプリケーション全体またはシステム全体にわたっての非常に詳細なリポジトリを構築します。リポジトリには、アプリケーション オブジェクトについてのすべての情報、それらの関係性、およびシステム全体にわたって各オブジェクトから詳細な情報を取得するのに必要なすべての情報が保持されます。
長い年月を掛けて、RPGの全バージョン、CA 2E(Synon)、COBOL、およびCLで書かれた何千ものOS/400およびIBM i アプリケーションを対象にして開発作業が行われてきたため、オブジェクトから個々の変数まで、アプリケーションについてのあらゆる情報を抽出できる比類のない機能が生み出されました。さらに良いのは、リポジトリおよびドキュメンテーションは、提供されたデータ ソースに基づいて自動的に構築されることです。ドキュメンテーションにはいつでもアクセスでき、変更が行われるたびに自動的に更新されるため、ドキュメンテーションは常に正確で、最新であることが保証されます。
X-Analysisで作業を簡略化する
一見、単純そうな作業でも、表面上そう見えるよりも、はるかに長い時間が掛かり、はるかに煩雑な場合があります。X-Analysisは、設計リカバリー プロセスを可能な限り簡略化にするように設計され、最適化されています。1つのコマンドを使用すると、X-Analysisは最初にオブジェクトに関連するすべての情報を収集しますが、次に、指定したシステム内のすべてのソース メンバーおよびすべてのソース行を解析して、システム内のそれぞれの変数のコンテキスト情報をマッピングします。次いで、ある程度の論理的抽象化の処理が行われ、同時に、RPGアプリケーションに特有な機能について記述するリポジトリが構築されます。RPGで特徴的なものとしては、変数プログラム呼び出し、ファイル オーバーライド、プレフィックシング、および名前変更などがあります。次いで、リポジトリは、アプリケーション全体が個々の変数に対してどのように機能するかを表すマップを表示します。
設計リカバリー
X-Analysisを使用すると、最新のダイアグラム標準、エンティティ関係性ダイアグラム、システム フロー ダイアグラム、およびストラクチャー チャートを使用して、複雑な、何十年も使用してきたIBM i (AS/400)アプリケーションを完全に文書化することができます。
X-Analysisのユーザーの視点から見ると、こうしたクロスリファレンス リポジトリを構築して、モデルを抽出するプロセスは、自動的に行われているように見えます。それらは、インストール プロセスの一部として作成されますが、必要に応じて、後で再実行することもできます。
IBM i アプリケーションは、RPGプログラム、DDS/DDLファイルおよび表示装置ファイルのメンバー、データベース ファイルおよび論理ビューの組み合わせから構成されるのが一般的です。より新しいシステムでは、これらにSQLスクリプトが組み込まれていることもありますが、そのようなシステムにおける数々のナレッジや、システムが機能し、システムの各要素が相互に作用し合う仕組みは、そうしたソース ファイルやコンパイルされたオブジェクトの中に埋め込まれています。たいていのIT組織にとって問題となるのは、そうしたナレッジの効率的な取り出し方です。
X-Analysisがどのような問題を解決するのかを把握し、十分に理解するために、よく知らないシステムがどのように動作しているか、あるいはそのシステムに対してどのように変更を適用したらよいかを理解したい場合に取り組む必要があるプロセスについて考えてみましょう。
サンプル ユース ケース:「詳細」画面へメール アドレスと電話番号を追加する
シンプルな例として、「顧客詳細」画面があるアプリケーションの一部分を使用してみましょう。ただし、メール アドレスおよび携帯電話番号用の場所はありません。多くのIBM i アプリケーションが.extra.および.notes.アドホック フィールドを利用することによってそうしてきたように、システムはインターネット時代に適応してきました。
システムは進化しましたが、販促キャンペーンで使用するために、これらのメールおよび携帯電話についての詳細データを検索するのは時間の掛かる作業です。
システムをアップデートするには、まずは、顧客情報の表示とメンテナンスを処理するプログラムと表示装置ファイルを調べることから始めます。そうした最初の調査で、関連のあるデータベース表/ファイルが見つかるはずです。
ごく単純に言えば、これで、変更作業を行うのに必要な情報は用意できたことになります。そしておそらく、実際には、これはそれほど難しい変更作業ではありません。単に、データベース表にメールおよび携帯電話用の新たなフィールドを追加するか、または、既存のフィールドの名前を変更してから、プログラムおよび表示装置ファイルをそれに合わせて修正するだけです。
しかし、おそらく、このような疑問が浮かんでくるのではないでしょうか。すなわち、システムのそれ以外の部分についてはどうなるだろうか、他に何がその表を使用しているだろうか、表示装置ファイルは他のどこかで使用されるだろうか、などです。つまり、変更というものには、最初にそう見えたよりも大きな波及効果があるということです。そのようなシステム変更を実装するときに、答えを準備しておく必要がある質問項目の例を以下にいくつか示します。
- 変更の範囲および影響はどのようなものか。影響を受けるプログラムおよび表はどれくらいあるか。
- データベース変更をどのように処理するか。新たなフィールドを追加するのか、あるいはフィールドを名前変更するだけにして現状を維持するのか。それらのフィールドがメールおよび携帯電話のデータ用に使用されるのみであったかどうか把握しているか。
- データベースの完全性をどのように維持するか。「その他の情報」や「メモ」のようなアドホック データが予定されているフィールドは、検証の対象になりそうにない。さらには必須フィールドとされることさえなさそうである。したがって、既存の値を新たなフィールドに移行する場合は、それを単純にコピーすることはできない。多少、クレンジングが必要。
これらの質問に答えるためのナレッジを集めるプロセスは、それほど簡単ではないかもしれません。特に、システムが複雑な場合、またはそれらの質問に答えようとしている担当者がアプリケーション、システム、またはプラットフォームに馴染みがない場合はそうなります。
変更の範囲および影響を評価するためには、影響を受けるファイル/表をどのプログラムが使用するか調べる必要があります。以下の作業を行う必要があるため、これにはかなり労力を要するかもしれません。
- PDMですべてのソース ファイルを調べる
- オプション25で検索
- F13で繰り返し
- Enterを押す
- 検索語句を入力
- 結果をレビュー...
そして、これはまさに上述した1つ目の質問です。システムの複雑性や来歴によっては、すべてのソースまたは最新バージョンを調べることができたかどうか確信が持てない場合もあるかもしれません。X-Analysisでは、数回クリックするだけで、どのプログラムが使用されているか、変更される必要があるのはどれなのかが示されます。また、X-Analysis内からアプリケーション全体にわたって変更処理を管理することができ、さらには変更処理を実行することもできます。
設計と機能を簡単に理解する
アプリケーションの構造および全般的な機能をより詳しく理解するには、オブジェクト同士の関連性情報と結び付けられたソース コードの抽象化が必要となります。シンプルながら、様々なパターンの色分けが施されたグラフィカルなダイアグラムによって、個々のオブジェクトまたはシステム全体の各部分のデータ フローおよびアーキテクチャーが明らかにされます。
ダイアグラムには、英語の構文または擬似コードとして自動生成される説明が結び付けられており、その説明は、ダイアグラムの中で、またはソース コードのブラウズ時に表示されます。こうしたX-Analysisクライアントのインターフェースの特長は、どこでもドリルダウンでき、どこからでもどこへでも移動でき、インタラクティブである点であり、情報統合のための比類のないアプローチを提供します。これにより、アナリストまたはビジネス利害関係者は、自分にとって分かりやすいやり方で、概要情報または非常に詳細な情報を収集できるようになります。そのため、ドキュメンテーションは、ITとビジネス利害関係者の間で瞬時に共有できるようになります。
以下は、これらのダイアグラムおよびビューのいくつかについて、簡単に説明したものす。
- Structure Chart Diagram(SCD: ストラクチャー チャート ダイアグラム) は、アプリケーション内でプログラムから別のプログラムにどのように制御が渡されるかをグラフィカルに表現します。このダイアグラムは、呼び出しストラクチャーをスタック全体で追跡します。このダイアグラムは、データ入力オブジェクトも表示し、また、各オブジェクトについての概要説明をダイアグラムに自動的に抽出します。また、色分けにより、更新、出力、および表示など、重要な機能の種類も示されます。これにより、一般に利用頻度の高い詳細情報にユーザーが注目しやすくなります。
- Data Flow Diagram(DFD: データ フロー ダイアグラム) は、プログラム/オブジェクトがどこで使用されているかをグラフィカルに表現します。サブジェクト/オブジェクトによって、アクセスされるファイルおよびプログラムを示します。色分けされており、高いオブジェクト レベルでのデータ フローと、オブジェクト間で渡される特定の変数/パラメーターについてのコンテキスト情報の両方が表示されます。
- Program Structure Chart(プログラム ストラクチャー チャート) は、プログラム内の呼び出しのシーケンスをグラフィカルに表示します。呼び出しによって、サブルーチン/プログラム/モジュール/サービス プログラムのいずれかが実行されます。
- Overview Structure Chart(概要ストラクチャー チャート) は、アプリケーションのスナップショットを提供します。アプリケーションへのすべての入口点を表示し、次いで、入口点ごとのストラクチャー チャートを表示します。
この記事では、X-Analysisで実現できることについて、表面をなぞる程度に紹介できたに過ぎません。フィールド サイズ自動変更機能や自動テスト機能など、組織にとって極めて利用価値の高い機能が他にもたくさんあります。IBM i アプリケーションの開発責任者または管理者、新たなリソース導入時のIBM i オンボーディング/トレーニングを担当される方には、ぜひとも X-Analysisデモを視聴 または フリー トライアルにサイン アップ されることを強くお勧めします。生産性およびアプリケーション理解を向上させるために、X-Analysisをどのように活用できるかについて、ご体感いただけると思います。また、メールでもお問い合わせいただけます( info@freschesolutions.com)。