• 検索結果がありません。

ファイル TEF東海メトリクス勉強会 2 takeuchi

N/A
N/A
Protected

Academic year: 2018

シェア "ファイル TEF東海メトリクス勉強会 2 takeuchi"

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

プロジェクト演習 5.2

ツールを使って複雑度を計算しよ

(2)

  (a) Web 上で無料の複雑度計算ツールを探してみよう。    ダウンロード可能なデモ版やフリーウェアがある。

   以下はツールのリストである( 2005 年 7 月時点のリンクであ る)

■ テキストより

• http://user.cs.tu-berlin.de/~fetcke/measurement/products.html

• http://www.chris-lott.org/resources/cmetrics

• http://www.scitools.com

• http://www.semdesigns.com/Products/Metrics/JavaMetrics.html

■ その他

   SourceMonitor Version 2.6

   http://www.campwoodsw.com/sourcemonitor.html

(3)

(b) 次に、 2 つの(単なるモジュールではなく)プログラ ムを選ぼう。

  独自のコードや Linux そのもののコードを使ってもよ い。

■samp1.c

#include <stdio.h> int main(void) {

int a=1, b=1, c=1, d=1, e=1; if(a > 0){

a += 1; if(b > 0){ b += 1; if(c > 0){ c += 1; if(d > 0){ d += 1; if(e > 0){ e += 1;

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・}

(4)

(b) 次に、 2 つの(単なるモジュールではなく)プログラ ムを選ぼう。

  独自のコードや Linux そのもののコードを使ってもよ い。

■samp2.c

#include <stdio.h> int main(void) {

int a=1, b=1, c=1, d=1, e=1; if(a > 0){

a += 1; } else{ a -= 1; }

if(b > 0){ b += 1; } else{ b -= 1; }

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

(5)

(c) 「エラトステネスのふるい」をプログラムとして追加    これら 3 つのプログラムに目を通し、読者の直感でしよう。 複雑性の観点からこれらのプログラムに順序をつけよう。

eratosthenes.c

#include <stdio.h>

#define MAX 3000 int main(void) {

int i, j; int p[MAX]; //---初期化 ---

for(i=0 ; i<MAX ; i++) p[i] = 0; p[0] = 1;

//---倍数を除外 --- for(i=2 ; i<=MAX/2 ; i++){ for(j=2 ; i*j<=MAX ; j++){ if(p[i*j-1] == 0)

p[i*j-1] = 1; }

}

for(i=0 ; i<MAX ; i++){ if(p[i] == 0)

printf("%d\n", i+1); }

return 0; }

(6)

(c) 「エラトステネスのふるい」をプログラムとして追加    これら 3 つのプログラムに目を通し、読者の直感でしよう。 複雑性の観点からこれらのプログラムに順序をつけよう。

直感で、複雑性の大きい順に並べると   samp1.c

  eratosthenes.c   samp2.c

理由    eratosthenes.c の方が、ループ回数とかを含めると 複雑なようにも思えるが、 CC が同じくらいで、ネスト が深い samp1.c の方がバグが出そうと思った。

(7)

(d) 選択したツールを使って複雑性メトリクスを計算しよ   ( LOC 、 CC 、情報フロー複雑度、 DIT などどのメう。

トリクスを使ってもよい)

■SourceMonitor Version 2.6  を使用

(8)

(e) メトリクスを使ううえでの前提を書きとめ、

結果をグラフ化しよう。

■ メトリクスを使ううえで の前提

• ソフトウェアの品質を見 たいのだから、

不具合数を並べてみて、散 布図を作成。

(9)

(f) 読者の直感と比較すると、結果はどうだろうか?

■サンプルが良くないのでわかりづらいが、今回のツール では、 Complexity と  Depth に着目して判断するとや はり、 samp1.c が良くないのかと思える。

(10)

(g) ツールについてどう思うか?優れているか、 または改善の余地があるだろうか?

■フリーのソフトでも基本的なメトリクスは取れるので、 まだ性的解析ツールを導入していないプロジェクトに対 しては、まず軽くやってみると良いとおもう。

  会社で使用する場合は、やはり有料なものの方が保守 なども含めて便利だし、機能も豊富ですので安心はでき ますね。

有料ツール   QAC

  PGRelief   Understand  ・・・

参照

関連したドキュメント

教育・保育における合理的配慮

しかし何かを不思議だと思うことは勉強をする最も良い動機だと思うので,興味を 持たれた方は以下の文献リストなどを参考に各自理解を深められたい.少しだけ案

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

ヒュームがこのような表現をとるのは当然の ことながら、「人間は理性によって感情を支配

2)海を取り巻く国際社会の動向

 活動回数は毎年増加傾向にあるが,今年度も同じ大学 の他の学科からの依頼が増え,同じ大学に 2 回, 3 回と 通うことが多くなっている (表 1 ・図 1

18 虐待まではいかないが、不適切なケアがあると思う はい いいえ 19 感じた疑問を同僚や上司と話し合える状況である はい いいえ 20

これも、行政にしかできないようなことではあるかと思うのですが、公共インフラに