Programming complexity とは

プログラミングの複雑さ(またはソフトウェアの複雑さ)は、ソフトウェアの多数の特性を包含する用語であり、そのすべてが内部の相互作用に影響を与えます。いくつかの解説者によれば、複雑な用語と複雑な用語との間には区別があります。複雑なことは、理解するのが難しいことを意味しますが、時間と労力によって、最終的には知ることができます。一方、複合体は、多数の実体間の相互作用を記述する。エンティティの数が増えると、それらの間の相互作用の数は指数関数的に増加し、それらをすべて理解し理解することが不可能になるでしょう。同様に、ソフトウェアの複雑度が高くなるほど、意図せず相互作用を妨げるリスクが増大し、変更を加える際に欠陥が導入される可能性が高くなります。さらに極端な場合、ソフトウェアの変更を事実上不可能にする可能性があります。ソフトウェアの複雑さをソフトウェアの保守性に結びつけるという考え方は、彼の研究からソフトウェア進化の法則を開発したManny Lehman教授によって広く検討されてきました。彼と彼の共同著者Les Beladyは、ソフトウェアの状態を測定するために使用される可能性がある、それらの引用された本の中で数多くの可能なソフトウェアメトリックを調査し、決定的な複雑さモデルを使用する唯一の実用的な解決策。