本質的な複雑性と偶有的な複雑性を区別する
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/07 01:59 UTC 版)
「銀の弾などない」の記事における「本質的な複雑性と偶有的な複雑性を区別する」の解説
ブルックスの主張で重要なことは、ソフトウェア開発の複雑性について、「本質的な複雑性」 (essential complexity) と「偶有的な複雑性」 (accidental complexity) を区別していることである。なお、これは、アリストテレスの分類にヒントを得たものである。 偶有的な複雑性は、ソフトウェア開発者自身が発生させている解決可能な問題に関連する。例えば、アセンブリ言語のプログラムコードの記述、最適化、バッチ処理などによってもたらされる遅延は、偶有的な複雑性に由来する。 本質的な複雑性は、解決すべき問題によってもたらされるものであり、これを取り除くことはできない。もし利用者が30の異なることを行う1つのプログラムを望む場合、この30のことは本質的であり、開発するべきプログラムはこの30の異なることを実行しなければならない。 ブルックスによると、ソフトウェア開発者はこれまで偶有的な複雑性の多くを退治してきたが、その一方で、現在 (1986年) のプログラマは自分の時間の大部分を本質的な複雑性に取り組むことに費している。
※この「本質的な複雑性と偶有的な複雑性を区別する」の解説は、「銀の弾などない」の解説の一部です。
「本質的な複雑性と偶有的な複雑性を区別する」を含む「銀の弾などない」の記事については、「銀の弾などない」の概要を参照ください。
- 本質的な複雑性と偶有的な複雑性を区別するのページへのリンク