最新情報

最新情報NEWS & TOPICS

X-Analysisと他のツールとの違い⑨:DCR X-Analysis News<028>

株式会社第一コンピュータリソース               2018.8.8
■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    DCR X-Analysis メールマガジン NO <028>
    第28回  X-Analysisと他のツールとの違い⑨ 複雑度分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■
          ◆◇◆ DCR X-Analysis News ◆◇◆
いつもDCR X-Analysis NEWSをご愛読いただき、誠にありがとうございます。

本年4月より、「X-Analysisと他のツールとの違い」というタイトルで新シリ
ーズをスタートさせていただきましたが、今回はその9回目として複雑度分析
機能の違いを述べさせていただきます。

■今回のテーマ 複雑度分析の違い
 今回テーマとしている複雑度分析は、「ソフトウェアの品質を数値化して確か
 める」ことを指し、ソフトウェア開発をさまざまな視点から定量的に評価した
 ものです。
 例えば、ソースステップ数やコメントステップ数も数値評価の一つですが、
 プログラムの使用する変数の数や命令の数も評価基準になりえます。
 X-Analysisでは、プログラムソースを様々な視点から解析しリポジトリ化を
 行っています。

 今回も、X-Analysisと製品カタログベースでは一見似ていると思われる
 ツールを大きく2つのグループに分類して、それらとX-Analysisの違いを
 述べさせていただきます。

 グループ①プログラム言語解析系(ソースコードのみの解析):
      メインフレームの言語解析を行ってきたノウハウを生かし、IBM i の
      RPG、COBOL、CLPの解析を行っていますが、プログラムの複雑度を
      測るような機能はありません。

 グループ②コマンド実行結果可視化系(オブジェクトカタログ情報のみの2次加工):
      IBM iのコマンドを実行することで得られる情報をチャートなどで
      可視化します。その性質上、プログラムの複雑度を測るような機能は
      ありません。 

■X-Analysisの上記との違い
 他のツールは上記のような単純な機能しかもっていない、もしくは機能自体が
 ありませんが、X-Analysisは分析対象、分析レベルにおいて圧倒的な以下に
 挙げる機能を保有します。
  ①サイクロマティックコンプレクス(循環的複雑度)解析:
   プログラム内の経路の数を数値化するもので、Thomas J. McCabeによって
   1976年に考案されました。 例えば、ソースコード内に条件が1つのIFxx文
   のような決定論理が1つある場合、IFxx文が真の場合とIFxx文が偽の場合が
   あり、独立したパスは2つとなります。

   循環的複雑度が高くなると、プログラムは複雑になりますが、循環的複雑度
   を計測し、低く保つことで、プログラムの可読性、保守性、移植性は高まり
   ます。また、テストに必要なテストパターンの数も減るため、カバレッジも
   上げることができます。

   更にオープンシステムへの移行においても、可読性と移植性の向上は非常に
   有効であるため、将来的な移行のために日頃複雑度を下げる努力を行うこと
   で、移行コストとリスクの軽減に繋がります。

 ②ハルステッドボリューム解析:
  プログラムの命令とオペランドを分離してカウントし、プログラムの情報量を
  数値化するもので、Maurice H. Halsteadによって1970年代初頭に提案され
  ました。プログラムの読みやすさを数値化したものです。
  例えば、
  ・プログラムロジック上、1つで済む変数を複数定義している。
  ・同じ挙動を取るロジックを複数の種類の命令でコーディングしている。
  ・同じ計算内容の数式を単一パターンでなく、複数パターンで定義している。
  など、冗長的なコーディングを行っている場合、同じステップ数でもハルス
  テッドボリュームの値に差が出てきます。

 ③メンテナンスインデクス解析:
  プログラムソースコードのメンテナンスのしやすさを数値化したものです。
  数値が低いほど、コードの保全性が低くなります。
  数値はHewlett-Packardエンジニアの長年の経験に基づき提案された計算式に
  よって求められます。
  この計算式は、以前のメールマガジンで掲載させていただいた「サイクロマテ
  ィックコンプレクス(循環的複雑度)」、「ハルステッド」の値を利用して、
  コード保全性を数値を求めています。

■今回のテーマにおけるX-Analysisの導入メリット
 ①プログラム内部フローの複雑度改善:
  複数回現れる処理や深い条件文のネスト構造を外部コンポーネント化し整理
  することで複雑度が軽減され、コードの品質向上に繋がります。 
 ②プログラムの読みやすさの改善:
  他人からの「読みやすさ」を意識したプログラミングを推進することでメンテ
  ナンス率性の向上や将来的な多言語への置き換えのしやすさが享受されること
  になります。
 ③メンテナンスのしやすさの改善:
  ①②の改善により、メンテナンスしやすいリソースへと変革していきます。

■次回予告
 次回(2018/08/22号)は、
『X-Analysisと他のツールとの違い⑩ DBモダナイズ分析』をお送りいたします。

■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
知っていますか? X-Analysis製品価格は160万円~840万円になりました。
詳しくはこちらまでお問い合わせください
http://www.dcr.co.jp/X-Analysis/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■

PAGE TOP
システムソリューション
プロダクトソリューション
グローバルソリューション
企業情報
採用情報