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

FAQ

QA・C/QA・C++

メトリックスに関する

ID.4

Q.STVOL(プログラム規模)について、バイト換算で示したいときは、 STVOLの値を 8で割ればよいですか?

以下に示すメトリック項目の解釈は正しいかどうか教えて下さい。

STVOLについてバイト換算で示したいときは、STVOLの値を 8で割ればよいですか?

A.

STVOLはバイト換算も、8で割る必要もないと思われます。
Version: 4.2J
OS: SunOS 4.x, SunOS 5.x, HP-UX 9.x, HP-UX 10.x, Windows 95/98/NT 4.0

STVOL(プログラム規模)は、下式で表わされます。

  STVOL = n × log2(t)

ここで n = STTOT(トークンの総数)
      t = t1 + t2

なお t1 = STOPT(異なった演算子の数)
     t2 = STOPN(区別可能なオペランドの数)

上式の通り、STVOLは STTOT(トークンの総数)に比例しますが、 STTOT自体は長さの長いトークンも短いトークンもそれぞれ1個として数えたものの総数ですので、ここに「バイト」という概念は入りません。

また、log2(t) の項が含まれていることからおわかりの通り、 STVOLは行数の長さだけでなく、いかに多くの種類の演算子やオペランドが含まれているか、という点が加味された上で算出されます。これは、多くの種類 の演算子やオペランドが使われている場合は、それだけ難しいコードを作っているという前提に基づいています。トークン数がほぼ同じで、同じ論理を実現する 2種類のプログラムを作った場合、変数の種類を多くしただけで、上式のnの項が増加して、STVOLが増加しますのでお試し下さい。

ご質問に「バイト換算」という表現がありますが、別に8バイト単位で算出している値ではありませんので、バイト換算も、8で割る必要もないと思われます。

evernote share Google plus Face Book Google plus Liked In

detail__vid--text.png

はい (0)
いいえ (0)

PAGE TOP

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