はじめに
本シリーズではLattixとUnderstandのメトリクスを活用した様々な分析方法を、分析スクリプトとして紹介しております。
今回のテーマは「Lattix影響分析レポートの加工」です。
本シリーズはメトリクスがテーマのシリーズではありますが、今回はLattixが出力するレポートを取り扱います。
Lattixが出力する「影響分析レポート」を取り扱い、これをより活用のしやすい形に加工します。
今回はビルドツールであるant 1.4.1を分析したプロジェクトにおいて、
いくつかの特定のクラスを変更した場合の影響範囲を影響分析レポートとして出力したものを[オリジナルの影響分析レポート]とし、これをスクリプトを使用することで変換、加工します。
通常の影響分析レポートの読み方
まず、Lattixの出力する影響分析レポートの読み方を簡単に示します。
上記図のように、シートごとに影響レベルが分かれており、
例えば1レベルの[Used By]列に記載の影響先要素Aについて、さらにその先の影響先がある場合には、
要素Aが2レベルのシートの[サブシステム]列に表示されます。以降のレベルでは、これが同様に繰り返されます。
実現したこと
まずは、Lattixから出力される[オリジナルの影響分析レポート]と今回ご紹介する変換スクリプトで変換した[変換後の影響分析レポート]を比較してみてください。
変換内容は以下の通りです。
- [Used By]列において、次の[影響X]シート内該当要素へのリンクを付けた。
- [サブシステム]列を色分けした。
- [No]列を付けた。
- [間接影響先有]列を追加し、本列を利用してExcelのフィルター機能により影響先があるレコードのみを表示することができるようにした。
- Excelの[フィルター]機能を有効にした。
変換によるメリット
この変換により、[影響]シート、[影響X]シートを跨いだ場合の間接影響を順番に追いやすくなり、
各影響階層から次の間接影響先を把握するために役立ちます。
変換後の影響分析レポートの操作例(動画)
以下は変換後の影響分析レポートの操作例となります。
変換後の影響分析レポートの確認手順の例
変換後のレポートを利用します。
1. まず、影響が1段階で止まる要素を確認します。
[影響]シートにおいて、[間接影響先有]列に○がついていない要素について、影響先(”Used By”列)要素を確認します。確認が終わったら、 “間接影響先有” 列の隣に”確認済”とチェックをします。
2. 次に間接影響先がある要素を確認します。
“影響”列において、”間接影響先有”に○がついている要素について、[影響]シートの影響先(“Used By”列)要素を確認します。 確認が終わったら、 “間接影響先有” 列 の隣 に”確認済”とチェックをします。
3. 手順2で確認した要素について、影響先( “Used By”列 )のリンクをたどり、[影響1]シートの影響先(“Used By”列)要素を確認します。 確認が終わったら、 “間接影響先有” 列 の隣に”確認済”とチェックをします。
以下、同様に [影響2]シート 、 [影響3]シートと、影響先をたどり、
各シートにおいて”影響先(”Used By”列)要素としてリストアップされている要素を
確認していきます。
スクリプトの実行方法
コマンドラインから、以下のように実行することで、変換することが可能です。
python addNextImpactLink.py (Lattixの出力した影響分析レポート).xlsx
本スクリプトのダウンロード
こちらからzipファイルをダウンロードしてください。
(pyファイルをzip形式に圧縮しています。)
スクリプト検証時の動作環境
- OS:Windows
- Python環境:Python 3.11.8
- 利用したパッケージ:openpyxl 3.1.2
Lattix Architect 2022.1.1 , Lattix Architect 2023.1.1(※2024年2月時点の国内リリース済最新版はLattix 2022.1.1です。)
注意事項
本ブログ記事添付のスクリプトは、Lattixバージョン2022.1.1以降でシート名が
「”影響”」, 「”影響X”」として出力される影響分析レポートを想定しています。
ご使用のLattixのバージョンによっては、標準の影響分析レポートにおけるシート名が
本スクリプトで想定している名前と異なる場合がございます。
この場合にはスクリプト内において、シート名を扱っている箇所を、
該当するシート名に書き換える必要がございます。
終わりに
筆者はこのスクリプトを特にCI環境で利用してほしいと考えております。
CI環境において、プロジェクトの更新を実行した際に生成されたUpdateDeltaタグに対して
(差分要素に対する)影響分析レポートを出力している場合、「実行方法」に記載のコマンドの実行を追加するだけで、使いやすくなったレポートを利用することができるようになります。
UpdateDeltaタグとは
例えば、異なるバージョンのソースコードを比較分析する際、
Lattixにおいて解析対象のデータソースを更新(変更)した上で、”プロジェクトの更新”操作を行うことで自動的に抽出されるタグです。差分要素がある場合、差分要素に[UpdateDelta]タグ付けされます。
詳細は、Lattix Architectの[ヘルプ]-[ヘルプ]-[ユーザーズガイド]における、
「プロジェクトを更新する」の欄をご確認ください。