最新情報

最新情報NEWS & TOPICS

IBM iユーザが抱える課題解決のヒント⑤:DCR X-Analysis News<008>

株式会社第一コンピュータリソース            2017.10.04
■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
       DCR X-Analysis メールマガジン NO <008>
第2回  ユーザが抱える課題解決のヒント⑤ ソフトウエアサイエンス
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■
        ◆◇◆ DCR X-Analysis News ◆◇◆
DCR X-Analysis NEWSをご愛読いただき、誠にありがとうございます。

前回までのメールマガジンではIBM i ユーザ様が抱える課題解決のヒントに
ついて、その要素の 一つである「測定」における手法の「ソフトウエアメ
トリクス」について記載させていただきま した。本号は、続いて「ソフト
ウエアサイエンス」について述べさせていただきます。

■ソフトウエアサイエンスとは?
 自然言語の「文書の読みやすさ」に着目して、それをプログラミング言語
 にあてはめ、コーディングの難しさの推定を行うものです。例えば、
 低学年向けの本は語彙が少ないので誰でも読みやすく、専門書は非常に
 語彙が多いので全ての人間にとって読みやすいものではありません。
 プログラムも文書の一種であるから同様のことが言えないか?を科学的に
 測定しようというものです。今回はその代表格である「Halstead Volume」
 をご紹介します。

■Halstead Volumeとは?
 プログラムの命令とオペランドを分離してカウントし、プログラムの情報
 量を数値化するもので、Maurice H. Halsteadによって1970年代初頭に
 提案されました。どのように数値化するか手順を列挙します。
 まず、プログラムソースコードから以下の4つの値を取得します。
  ① n1 - ユニークなオペレーションコード数(命令、関数、式など)
  ② n2 - ユニークなオペランド数(変数、パラメータ、ファイル名など)
  ③ N1 - オペレーションコードの総数
  ④ N2 - サブルーチンのすべての変数インスタンスの総数
 次に以下の計算を行います。
  ⑤ A = n1 + n2 (プログラム内で使用されている命令、変数などの種類数、最小単位)
  ⑥ B = N1 + N2 (プログラム内で使用されている命令、変数などの総数)
 最後に以下の式でHalstead Volumeを求めます。
  ⑦ Halstead Volume = B * log(2)A (プログラムソースコードの情報量)

■Halstead Volumeの応用性
 コードステップ数が増えれば前述の③④の総数も増加するため、Halstead
 Volumeは増加します。只、例えば、
  ①プログラムロジック上、1つで済む変数を複数定義している。
  ②同じ挙動を取るロジックを複数の種類の命令でコーディングしている。
  ③同じ計算内容の数式を単一パターンでなく、複数パターンで定義している。
 など、冗長的なコーディングを行っている場合、同じステップ数でも
 Halstead Volumeの値に差が出てきます。

■Halstead Volumeの改善方法
 単純な方法としては、プログラム分割によって、1本あたりのソース
 ステップ数を減らすことで改善します。更に、変数や仕様頻度の高い
 ロジックのコーディング標準化など開発標準に基づいて、分割後の新規
 開発、改変作業を実施することによって徐々に改善を進めることができ
 ます。このように、他人からの「読みやすさ」を意識したプログラミングを
 推進することでメンテナンス効率性の向上や将来的な多言語への置き換え
 のしやすさが享受されることとなります。

■次回予告
 次回(2017/10/18号)は、「メンテナンスインデクス」について
 述べさせていただきます。

■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第28回ISUC 2017 別府大会にてX-Analysisの展示を行います。
    開催日程:2017年11月15日~17日
詳細はこちらまで→ https://www.uken.or.jp/isuc/isuc28/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■

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