本項では、SourceMonitorを使い、実際にコード・メトリクスを測定します。例として、リスト1のプログラムを測定対象にします。
#include<stdio.h> void triangle_handler(int side1, int side2, int side3); main() { triangle_handler(1,2,3); triangle_handler(4,4,4); triangle_handler(3,3,4); triangle_handler(3,4,5); } void triangle_handler(int side1, int side2, int side3) { //入力チェック if ( (side1 <= 0) || (side2 <= 0) || (side3 <= 0) ) { printf("入力エラー\n"); return; } //三角形判定 if ( (side1 + side2 > side3) && (side2 + side3 > side1) && (side3 + side1 > side2) ) { if (side1 == side2 && side2 == side3 && side3 == side1) { printf("正三角形\n"); } else if ( (side1 == side2) || (side2 == side3) || (side3 == side1) ) { printf("二等辺三角形\n"); } else { printf("不等辺三角形\n"); } } else { printf("三角形ではありません\n"); } }
3.3.1 準備
リスト1のプログラムを「ファイル名.c」として任意の場所に保存します。注意点としては、保存するファイルの文字形式はUTF-8とはしないようにしてください。
3.3.2 計測
保存したファイルのコード・メトリクスを測定します。SourceMonitorを開き、「File」から「New Project」を選択すると、以下の図7の左画面が表れます。今回は、C言語を使用するので、「Project Source Code Language」欄の「C」にチェックを入れて、「次へ(N)」を選択します。
次に、「Project File Name」に任意の名前を入力し、「Project File Directory」では、リスト1で保存したプログラムがあるディレクトリを入力します。入力後、「次へ(N)」を選択します。
「Select Search Directory」にファイルのディレクトリを入力し、「次へ(N)」を選択します。次の、「Specify Project Name」画面で、任意の箇所にチェックを付けたのち、「次へ(N)」を選択します。
図9は、どちらも「次へ(N)」を選択してください。
「Confirm New Project」画面で、「完了」を選択し、次の画面で、「OK」を選択します。
以下の画面に測定結果が表れます。
主要な分析結果を確認しましょう(表2)。
Files(ファイル数) | 1 |
---|---|
Lines(全行数) | 28 |
Functions(関数の数) | 2 |
Max Complexity(複雑度の最大値) | 15 |
Max Depth(ネストの最大値) | 3 |
表2 分析結果 |
このように、分析結果が出ます。例題プログラムは、全28行、関数が2個、複雑度の最大値が15、ネストの最大値が3となりました。28行のプログラムで、複雑度の最大値が15もあるのが少し気になります。
このように、ツールを使用すると、簡単にプログラムのメトリクスを計測できます。
ソフトウェアを効率よく開発する方法の1つが、作業の自動化です。近年では、フリーの開発支援ツールが多く出回るようになり、作業工程の自動化が期待できます。今回は、コードメトリクス測定ツールのSourceMonitorを紹介しました。本ツールを活用すると、プログラム計測の自動化やバグが起きそうな箇所を事前に洗い出せます。
次回は、組み合わせテストケース生成ツールの「PictMaster」を紹介します。
[1]Interface 2015年11月号, CQ出版, 2015
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.