2011-07-23 24 views
3

ソフトウェア製品で測定できるさまざまな種類の品質があります。目的適合性(例えば、最終使用)、保守性、効率性。これらの中には、主観的またはドメイン固有のものがあります(たとえば、優れたGUI設計の原則は、文化によって異なる場合や、使用状況に応じて異なる場合があります)。ソフトウェア品質の客観的メトリックを探す

私が興味を持っているのは、タイプのネットワーク(またはグラフ)やそれらの相互関係に関連するより深い形式の品質です。すなわち、それぞれのタイプがどのタイプを指しているか、明確に識別可能な相互接続性のクラスター逆に、型参照の大きな「ボール」(「モノリシック」コード)があります。また、各タイプおよび/または方法のサイズ(例えば、Javaバイトコードまたは.Net ILの量で測定される)は、より複雑なアルゴリズムが、より管理/保守可能に分解されるのではなく、モノリシックなコードブロックとして実装されたチャンク。

このようなアイデアに基づく分析では、少なくとも品質のプロキシであるメトリックを計算することができます。高品質と低品質との間の正確な閾値/決定点は主観的であると思われる。メンテナンス性とは、人間のプログラマによる保守性を意味し、したがって機能分解は人間の心が働く方法と互換性がなければならないからです。このように、すべての可能なシナリオですべての可能なソフトウェアを超越するソフトウェア品質の数学的に純粋な定義が存在することができるのだろうかと思います。

また、品質に関する客観的なプロキシが普及すれば、ビジネス上の圧力によって開発者は全体的な品質(プロキシによって測定されない品質の側面)を犠牲にしてこれらのメトリックを追求する危険性があるのでしょうか。

付録:品質に関するもう1つの考え方は、エントロピーの観点からです。エントロピーは、順序づけられた状態から無秩序状態に戻るシステムの傾向です。現実の世界、中規模から大規模のソフトウェアプロジェクトに携わったことがある人なら誰でも、コードベースの品質が時間の経過とともに低下する傾向にあることを理解するでしょう。ビジネス上の圧力は、新しい機能(品質そのものがアビオニクスソフトウェアなどの主なセールスポイントである場合を除いて)と回帰問題による品質低下と、それがうまく収まらない場合の「シューホーニング」機能性に焦点を当てた変更をもたらします品質とメンテナンスの観点。ですから、ソフトウェアのエントロピーを測定できますか?そしてもしそうなら、どうですか?

+0

私はこの質問が(その徹底により)http://softwarerecs.stackexchange.com/に適していると思います。しかし、それは話題です。 –

+0

FYI質問の正確なコピーがここにあります:http://programmers.stackexchange.com/questions/96934/objective-metrics-for-software-qualityおそらく私たちはこのSO Qを削除する必要がありますか? – redcalx

答えて

3

NDepend(少なくとも.NETコード用)は、私たちが今までに持っていたソフトウェア品質にとって最高の指標を提供します。彼らは82種類のコードmetricsを持っています。これはあなたが探しているものですか?もしあなたが.NETプログラマーなら、非常に普及している/大規模なオープンソースプロジェクトのNDepend分析について、このblog postが興味深いかもしれません。

+0

ありがとうございます。アセンブリ間の相互依存関係を調べようとしている間に、私はこれを一度遭遇しました。私はもう一度見ていきますが、煩雑なWebサイトのデザインはうまくいきません。 – redcalx