3

ソフトウェア製品で測定できる品質にはさまざまな種類があります。たとえば、目的への適合性(たとえば、最終用途)、保守性、効率などです。これらのいくつかは、ある程度主観的またはドメイン固有です(たとえば、優れたGUI設計の原則は、文化によって異なる場合や、使用状況に応じて異なる場合があります。軍隊と消費者の使用法を考えてください)。

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

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

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

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

4

1 に答える 1

3

NDependは、少なくとも.NETコードの場合、これまでに必要なソフトウェア品質の最高のメトリックを提供します。82の異なるコードメトリックがあります。これはあなたが探しているものですか?.NETプログラマーの方は、非常に人気のある/大規模なオープンソースプロジェクトのNDepend分析に関するこのブログ投稿がおもしろいと思うかもしれません。

于 2011-07-23T19:01:23.813 に答える