ソフトウェア開発支援
IR情報 会社情報

FAQ

QA・C/QA・C++

メトリックスに関する

ID.2

Q.ソースコードの行数に関するメトリックスの定義を教えて下さい 。

QA C,QA C++ 提供されているソースコードの行数に関するメトリックスの定義を詳しく教えて下さい。

A.

代表的なメトリックスの標準値を示します。
Version: 4.0.3J, 4.2J
OS: SunOS 4.x, SunOS 5.x, HP-UX 9.x, HP-UX 10.x, Windows 95/98/NT 4.0
image_toyo_common_spacer.gif.gif
行数の計算に関するPRL情報です。
image_toyo_common_spacer.gif.gif
[フ]=ファイル・メトリックス
[関]=関数メトリックス
image_toyo_common_spacer.gif.gif

[フ]STTPP プリプロセス前の行数
ファイル適用範囲にあるファイル内のソースコードの総行数
[フ]STTLN プリプロセス後の行数プリプロセスを経て、マクロ定義等を展開した後の総行数
[関]STLIN 保守可能なコード行数
空白行、コメントや大カッコのみの行を含まない関数の定義部分の行数
関数内('{'と'}'の間)に書かれている全ての行数
[関]STXLN 実行コード行数
STLINから宣言部分を除いた行数
関数内の全ての実行行を数えたもので、以下のものは数えません。
※コメントのみの行、空行、'{'または'}'のみの行、宣言行

以下は、PRLが作ったテクニカルガイドの抜粋です。
image_toyo_common_spacer.gif.gif
M11 コード行数 CANTATA
QA C
QA C++
McCabe
関数ベースとファイルベース
関数ベース
関数ベース
関数ベース
(尺度:絶対値 単位:行)
CANTATAではコード行数のことを関数ベースの時には CODE_LINESと呼び、 ファイルベースの時には FILE_CODE_LINESと名づけています。
コード行数は、関数の最初の大カッコから最後の大カッコまでの行数と変数宣言部分の行数を含んでいます。
関数ベースでは、QA Cや QA C++はこのコード行数のことを STLINと名づけており、空白行、コメントのみの行、 大カッコのみの行は含まない関数の定義部分の行数として数えます。
4つツール全て、計算はプリプロセス前のコードに対してなされます。
CANTATAによってなされる計算はMcCabeによってなされる計算と同じです。 しかし、QA CとQA C++では計算方法が異なっているので矛盾が生じます。
M11が200を超えるものについて全ての関数を調査してください。 200行より小さく、かつ十分に空白行やコメントがあるような関数を書いてください。 スペースを追加することが可読性を上げるのかどうか評価するにはM11を使ってください。
 
M13 実行行数 QA C
QA C++
McCabe
関数ベース
関数ベース
関数ベース
(尺度:絶対値 単位:行)
QA Cと QA C++ではこの統計値を STXLNと名づけ、各関数について計算します。
実行行数は M11から宣言の行数を引いた値です。
多くのコーディング標準は M13は50を超えてはいけないと要求しますが、150という限界値の方が現実的です。
もし関数の実行行数が150以上なら、関数を調査し、M13を150以下にするように関数を修正してください。
なぜそうなったかという明らかな技術的理由がある場合には、責任者に品質に関して譲歩する許可をもらい、 コードが標準に満たないで譲歩しているものだというドキュメントをつけてください。
 
M15 プリプロセス前のソース行数 CANTATA
QA C++
McCabe
関数ベースとファイルベース
ファイルベース
関数ベース
(単位:行)
M15はファイル中のプリプロセス前のソースコードの総行数のことです。
QA Cと QA C++ではこの値はファイルの適用範囲で計算し、STTPPと名づけています。
CANTATAではこの値をファイルの適用範囲では FILE_SOURCE_LINESと名づけ、 関数の適用範囲ではSOURCE_LINESと名づけています。
この値はファイル適用範囲のファイルのソース総行数か関数適用範囲内の関数の総行数です。
M15はユーザが書いたコードの大きさを測定するもので、多くの方法論で(例えば、 COCOMOコストモデル)コードの外部属性の予測要因として使用されます。 例えば、ライフサイクルの後半段階で必要な時間や労力といったものです。
研究は、広い範囲にわたり単体の測定値でなく使用されている製品の測定値の方が、 工程や資源の測定値を予測をするには一貫し てM15より有益だと示しています。
しかしながら1つの製品の測定値を該当する工程や資源の測定値の一般的な予測要因として使用することは あまりお勧めできません。
コードがプロセッサに依存しているかどうかを評価するには M16と M15を使ってください。
もし、後半の工程や資源の測定値を予想しなければいけない時には、 このガイドに記述している他の測定値よりはむしろM15の予測値を基本にしてください。
ただし、この予測値は特に優れた予測要因ではないことに注意してください。
 
M16 プリプロセス後のソース行数 QA C
QA C++
ファイルベース
ファイルベース
(尺度:絶対値 単位:行)
M16はファイル中のプリプロセス後のソースコードの総行数のことです。
M16自身ではとくに測定値としては使用しません。 しかしながら、コードがプロセッサに依存しているかどうか評価する時には M15と合わせて使用します。
Cではプロセッサへの依存が高いと、コードの移植性が悪くなります。
C++ではコンパイラが型のチェックをすることができない構築子の使用の前兆でもあります。
M16/M15は4を超えてはいけません。もし4を超えてしまったらコードはプロセッサに依存しすぎだといえます。
そのようなコードやM16やM15がきわめて高い値を示しているコードは プロセッサに依存していることから生じる潜在的な問題がないかどうか調べてください。 そして、見つかった明らかな問題点はすべて修正してください。

 

evernote share Google plus Face Book Google plus Liked In

detail__vid--text.png

はい (0)
いいえ (1)

PAGE TOP

本ウェブサイトではサイト利用の利便性向上のために「クッキー」と呼ばれる技術を使用しています。サイトの閲覧を続行されるには、クッキーの使用に同意いただきますようお願いいたします。詳しくはプライバシーポリシーをご覧ください。