ソフトウェアメトリックとしてのKloc比に対する関数ポイント… “ Name That Tune”メトリック?

StackOverflow https://stackoverflow.com/questions/243971

  •  04-07-2019
  •  | 
  •  

質問

メトリックの関数行のポイントを使用して、コード行をメトリックとして使用するとはどう思いますか?

古いゲーム番組「Name That Tune」について考えさせられます。 "その曲に3つの音符で名前を付けることができます! ''; 0.1 klocでその機能を記述できます!これは便利ですか?

確かにライブラリの使用を促進するようですが、それはあなたが望むものですか?

役に立ちましたか?

解決

それはひどい考えだと思います。プログラマーが書いたコードの行ごとに支払うのと同じくらい悪い。

一般的に、冗長なコードよりも簡潔なコードを好みますが、それでもプログラマーの意図を明確に表現している限りです。 klocごとに関数ポイントを最大化すると、できる限り簡潔にコードを書くように全員に奨励することになります。これは簡潔で不可解です。また、コードの行数を減らすためだけに、結合が必要でない場合でも、隣接するコード行を1行に結合することを奨励します。最大許容行長も問題になります。

他のヒント

KLOCは、レポートのページ要件を使用するなど、コード標準を厳密に適用する場合に許容されます。1行に5つのステートメントを入れたり、コードから空白のほとんどを削除したりしません。

環境にどれだけ効果があるかを判断する方法の1つは、いくつかの異なるアプリケーションとモジュールを調べ、コードの品質の大まかな見積もりを取得し、それをコードのサイズと比較することです。組織内でコードの品質が一貫していることを実証できれば、KLOCは悪い指標ではありません。

いくつかの点で、同様の指標で同じ戦いに直面することになります。機能または機能ポイント、または単に機能またはモジュールを数える場合でも、何らかの方法でそれらを重み付けする必要があります。最終的に、収集する客観的データの主観的な補足が必要になります。

"関数のメトリックを使用して、コード行をメトリックとして使用するとはどう思いますか?"

質問を受け取らないでください。上記の比率は、特定の言語とチームに対して、単純な統計的事実です。そして、標準偏差が小さい平均値に向かう傾向があります。

多くの自由度があります。機能ポイントの数え方、使用している言語、チームがいかに(集合的に)賢いかなどです。これらを変更しない場合、値は安定したままです。

いくつかのプロジェクトを一緒に行った後、1200言語の機能ポイントが、お好みの言語/フレームワーク/チーム組織の12,000行のコードになると確信しています。

KSloc / FPは、むき出しの統計的観測です。明らかに、あなたを悩ませているこれについて何か他のものがあります。質問をもっと具体的に教えていただけますか?

コードの行への関数ポイントのメトリックは、実際に言語レベルのチャート(実際にはステートメントへの関数ポイント)を生成するために使用され、プログラミング言語がどれほど強力であるかの大まかな感覚を与えます。次に例を示します。 http://web.cecs.pdx.edu/ 〜timm / dm / functionpoints.html

言語レベルのチャートのような高レベルの近似を除き、他の何かにその比率を使用することはお勧めしません。

ライブラリの使用を促進することは良いことですが、覚えておくべきもう1つのことは、ライブラリを構築しているときに比率を失い、時間の経過とともに節約の成果が得られることです。 Beanカウンターはそれを理解しません。

個人的には、関数ポイントとABCメトリックの比率を見たいと思います-ABCメトリック(サイズを示し、情報の一部として複雑さを含む)がどのように関係するのか、おそらく線形、指数関数などに興味があるので... www.softwarerenovation.com/ABCMetric.pdf

すべてのメトリックが悪い。私の理論では、もしあなたがそれらを持っているなら、最も簡単なものを使ってそれらを集め、それを使って重要な事柄に取り組むということです。

一般的には、次のようなものを意味します

grep -c ";" *.h *.cpp | awk -F: '/:/ {x += $2} END {print x}'

「メトリック」を探している場合コード効率を追跡するために、しないでください。主張する場合は、ソースファイルサイズ(上記のgrepコマンド、awkパイプなし)またはMcCabe(カウンタープログラムを使用)のような、愚かで簡単なものをもう一度試してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top