ファンクションポイントからコード行へのメトリックをメトリックとして使用することについてどう思いますか?
昔のゲーム番組「NameThatTune」を思い出します。「その曲に3つの音符で名前を付けることができます!」その機能を0.1キロで書くことができます!これは役に立ちますか?
それは確かに図書館の利用を促進するように思われるでしょうが、それはあなたが望むものですか?
ファンクションポイントからコード行へのメトリックをメトリックとして使用することについてどう思いますか?
昔のゲーム番組「NameThatTune」を思い出します。「その曲に3つの音符で名前を付けることができます!」その機能を0.1キロで書くことができます!これは役に立ちますか?
それは確かに図書館の利用を促進するように思われるでしょうが、それはあなたが望むものですか?
ひどい考えだと思います。プログラマーが書いたコード行でプログラマーにお金を払うのと同じくらい悪い。
一般的に、私は冗長なコードよりも簡潔なコードを好みますが、それがプログラマーの意図を明確に表現している場合に限ります。kloc あたりの関数ポイントを最大化することで、コードをできる限り簡潔に記述できるようになり、簡潔さを超えて不可解なものになります。また、コードの行数を減らすためだけに、隣接するコード行を 1 行に結合することを奨励します。許容される最大行長も問題になります。
すべての指標は最悪です。私の理論は常に、それらが必要な場合は、できる限り簡単なものを使用してそれらを収集し、それを完了して重要なものにするというものでした.
それは一般的に次のようなことを意味します
grep -c ";" *.h *.cpp | awk -F: '/:/ {x += $2} END {print x}'
コードの効率を追跡するための「メトリック」を探している場合は、そうしないでください。あなたが主張する場合は、ソースファイルサイズ(上記のgrepコマンドを参照、awkパイプなし)またはMcCabe(カウンタープログラムを使用)など、愚かで簡単なものをもう一度試してください。
レポートのページ要件を使用するようなコード標準を厳密に適用する場合、KLOC は許容されます。1 行に 5 つのステートメントを配置したり、コードから空白の大部分を削除したりしないでください。
自分の環境にとってどれだけ効果的かを判断する方法の 1 つは、いくつかの異なるアプリケーションとモジュールを調べて、コードの品質を概算し、それをコードのサイズと比較することだと思います。組織内でコードの品質が一貫していることを実証できれば、KLOC は悪い指標ではありません。
ある意味では、同様のメトリックで同じ戦いに直面することになります。機能や機能のポイント、または単に機能やモジュールをカウントする場合でも、なんらかの方法でそれらに重みを付けたいと思うでしょう。最終的には、収集する客観的なデータに何らかの主観的な補足が必要になります。
関数ポイントからコード行へのメトリックは、プログラミング言語がどれほど強力であるかのおおよその意味を与えるために、実際には言語レベルのチャートを生成するために使用されます (実際には、ステートメントへの関数ポイントです)。以下に例を示します: http://web.cecs.pdx.edu/~timm/dm/functionpoints.html
言語レベル チャートのような高レベルの概算を除いて、その比率を他の目的に使用することはお勧めしません。
ライブラリの使用を促進することは良いことですが、覚えておくべきもう 1 つのことは、ライブラリを構築しているときに比率が低下し、時間の経過とともに貯蓄の配当でしか報われないことです。ビーンカウンターはそれを理解できません。
個人的には、ABC メトリックに対する Function ポイントと ABC メトリックの比率を確認したいと考えています。ABC メトリック (サイズを示し、情報の一部として複雑さを含む) がどのように関連するのか (おそらく線形、おそらく指数など) に興味があるためです。 www.softwarerenovation.com/ABCMetric.pdf
「コード行への関数ポイントのメトリックをメトリックとして使用することについてどう思いますか?」
質問を理解しないでください。上記の比率は、特定の言語とチームについて、単純な統計的事実です。また、標準偏差が小さい平均値に近づく傾向があります。
自由度はたくさんあります: ファンクション ポイントの数え方、使用している言語、チームの (集合的な) 賢さなどです。これらを変更しなければ、値は安定したままです。
一緒にいくつかのプロジェクトを行った後、1200 のファンクション ポイントは、好みの言語/フレームワーク/チーム編成で 12,000 行のコードになるという確固たる期待を持っています。
KSloc / FP は、単なる統計観測です。明らかに、これについてあなたを悩ませている何かがあります。質問をもっと具体的にしていただけますか?