タダでソフト開発の生産性と品質を上げる方法(1):意外に使える無料のソースコード測定ツール「SourceMonitor」:山浦恒央の“くみこみ”な話(91)(3/3 ページ)
「“くみこみ”な話」の新シリーズが開幕。テーマは「タダでソフト開発の生産性と品質を上げる方法」です。第1回は、ソースコードを簡単に分析し、計測するフリーツール「SourceMonitor」を紹介します。
3.3 実践編
本項では、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もあるのが少し気になります。
このように、ツールを使用すると、簡単にプログラムのメトリクスを計測できます。
4.終わりに
ソフトウェアを効率よく開発する方法の1つが、作業の自動化です。近年では、フリーの開発支援ツールが多く出回るようになり、作業工程の自動化が期待できます。今回は、コードメトリクス測定ツールのSourceMonitorを紹介しました。本ツールを活用すると、プログラム計測の自動化やバグが起きそうな箇所を事前に洗い出せます。
次回は、組み合わせテストケース生成ツールの「PictMaster」を紹介します。
参考文献
[1]Interface 2015年11月号, CQ出版, 2015
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
- 幻の白いカラスを追い求め、僕らはインドにたどり着く
CMMレベル5の認定を受けたインドの会社に発注したはずが、品質が悪い。こうした悲劇がなぜ起こるのか? そのメカニズムを考えてみよう - 人類初のソフトウェア・メトリクスをめぐる熱い論争
人類初の「ソフトウェア・メトリクス」をめぐって、“信奉派”と“懐疑派”が正面からぶつかり、熱い論争が繰り広げられた - 猫でも分かるソフトウェアのテスト網羅(7):C2カバレッジは「裸の王様」
「制御パステスト」をテーマとする「猫でも分かるソフトウェアのテスト網羅」シリーズの第7回(最終回)では、前回に引き続き、パス・カバレッジの王者である「C2カバレッジ」の弱点を解説します。 - 猫でも分かるソフトウェアのテスト網羅(6):パス・カバレッジの王者の意外な弱点
「制御パステスト」をテーマとする「猫でも分かるソフトウェアのテスト網羅」シリーズの第6回では、前回に引き続き「C2カバレッジ」を取り上げます。パス・カバレッジの王者ともいわれる「C2カバレッジ」ですが弱点がないわけではありません。 - 猫でも分かるソフトウェアのテスト網羅(5):C2カバレッジはエベレスト登山か?
「制御パステスト」をテーマとする「猫でも分かるソフトウェアのテスト網羅」シリーズの第5回では「C2カバレッジ」を取り上げます。C1より網羅性が高いので、高信頼性を求めるソフトウェア開発の管理者や発注者に好まれますが、実際にテストを行うプログラマにとってエベレスト登山並みの大変さになる可能性もあるので注意が必要です。