企業アプリケーションのサイズに関する指標を示すように求められました。問題のアプリケーションは Web ベースのアプリケーションであり、そのサイズを定量化する方法がわかりません。コードの行数、ファイル数などは明らかですが、有用ではない指標です。本当の意味を提供するアプリケーションのサイズを決定するための推奨される方法は何ですか?
適用上の注意:
- ASP.NET Web フォーム ベースの C# アプリ
- 階層型アーキテクチャ
- ストアド プロシージャを介したすべてのデータベース対話
企業アプリケーションのサイズに関する指標を示すように求められました。問題のアプリケーションは Web ベースのアプリケーションであり、そのサイズを定量化する方法がわかりません。コードの行数、ファイル数などは明らかですが、有用ではない指標です。本当の意味を提供するアプリケーションのサイズを決定するための推奨される方法は何ですか?
適用上の注意:
ユーザーがアクセスできる「ページ」または「エリア」の数
問題: これは、パーツを単一の「コントロール センター」インターフェイスに統合する方がはるかに理にかなっている場合に、パーツを異なるページまたはセクションに分割することでごまかすことができます。
クラス数
問題: これは、他のクラスと比較していくつかのクラスの複雑さ (または単純さ) を考慮していません。2 つのプロパティと 1 つのメソッドを含む 1 つのクラスがあり、別のクラスはハードコアである場合があります。
非ルックアップ テーブルの数
問題: これは、ソフトウェアの複雑さを考慮せず、その上にあるデータ層のみを考慮します。クラスの数に関連する同じ問題のいくつかは、一部のテーブルが他のテーブルよりも複雑であるという点で、ここでも適用できます。
コード行
問題: これはかなり標準的な指標ですが、より効率的で洗練されたコードを奨励する代わりに、行数の多いプログラムに肯定的な意味合いを与えます。
開発にかかった工数
問題: ソフトウェアの作成に関しては、2 人の開発者が同じスキルセットを持っているわけではなく、2 人の開発者がまったく同じ時間をかける (または同じ道をたどる) ことはないでしょう。そのため、1 人の開発者が同じ量のコードを作成するのに、スキルや経験の少ない 3 人の開発者のチームがかかるのと同じ時間がかかる場合があります。また、本当に必要以上に多くの人を問題に当てはめ始めると、「神話上の人間の月」全体が頭をもたげ始める可能性があります。
全体として、メトリクスの最大の問題は、ソフトウェアの定量化可能な特性を測定しようとすることだと思いますが、実際にはソフトウェアは量ではなく質であり、メトリクスが実際に失敗する場所です。
SLOC(Source Lines of Code)は、一般的に受け入れられているサイズの尺度です。
あなたの質問はサイズについてのみ尋ねますが、管理者がこのアプリケーションをサポートするために必要な作業のレベルをスコープできるように、これらのメトリックを考え出すように求められているに違いありません。その場合、コードの複雑さも調べます。
多くのプログラミング言語で動作することを理解するの試用版をダウンロードすることをお勧めします。必要なメトリックが提供され、無料試用期間は、管理者が必要とする数を取得するのに十分な時間続きます。
ここでのメトリックについては、私が見ていくものです。
循環的複雑度V(G)は、複雑度の良い尺度です。
SEI Maintainability Indexは、コードベースの保守がどれほど難しいかを調べるのに適しています。
少なくとも15%のコード対コメントの比率、およびその他の必要な高レベルおよび低レベルの設計ドキュメント。これらのほとんどは時代遅れになることを認識してください、しかしそれらはまだあなたの人々が始めるのを助けます。
テストカバレッジもまた、注目すべきものです。ユニットテストはありますか?何も壊さなかったという「合理的な」感覚を自分に与えるために実行できる優れたユニットテストスイートがあると、コードの保守が容易になります。通常、80%のテストカバレッジが最小です。
プログラミング言語に関係なく、中規模から大規模のアプリケーションに適していると思うファンクションポイント分析方法:
http://en.wikipedia.org/wiki/Function_point_analysis
分析の結果は、実装時間を見積もるために使用できるファンクションポイント値です。この方法は(単純なスプレッドシートを使用して)非常に簡単に理解および実装できますが、計算のいくつかの重要な要素が可変であるため、ある程度の経験が必要です。
メトリックは、それが何に使用されるかを知っている場合にのみ、本当の意味を提供できます。サイズを測る目的をご存知ですか?そうでない場合は、尋ねてください。
真の意味を提供するアプリケーションのサイズを決定するための推奨される方法は何ですか?
これに対する本当に良い答えを見つけたら、きちんと書いてくださいね。
私の経験では、コードメトリクスはほぼ例外なく最悪です。それらのいくつかは、単に悪いことに成功しています。
【追記】
公平を期すために言うと、問題は「コード メトリックが最悪」というほど正確ではありません。問題は、人々が測定してほしいものを測定しているようには見えず、測定したかのように使用されることです。この乱用を数字のせいにするのは公平ではありません。