本書は、ブルックスの『人月の神話』を下敷きにして、ソフトウェア開発の難しさと克服の歴史、今後への提言が書かれているものです。
今後への提言としては、「抽象化」、「自動化」、「モジュール化」の観点で地道に進めていくようにとのことでした(やっぱりそれしかないのかなという答えではありますが……)。
...続きを読む
そして、「抽象化」について残りのページが割かれているのですが、
まず抽象化の第一の観点は、
・捨象(withdrawing)、削除(removing)する行為
・複雑な対象(complex object)のいくつかの性質(properties)を捨て去り、特定の性質に目を向ける行為
第二の観点は、
・具体的な実体(instances)から共通の性質(common properties)を抽出することによって、一般概念(general concepts)に定式化(formulating)するプロセス
・特定の事例(specific examples)から共通の性質(common features)を抽出することによって形づけられる一般的な概念(general concept)
と、「抽象化」の定義をしたあとに、
例えば、みかんをそこにいる人々に等分するという場合に、各人の個数をxと置いて、
みかんの個数 = 人数 × x
という方程式を立てます。このとき、みかんの重さとか色といった情報は捨象されます。さて、この得られた方程式を解くことは容易です。等式の両辺を同じ数で割ってxの値を具体的に求めることができるでしょう。得られた値は、実際に配布してみて余りがないかで、確認することもできます。
と説明し、抽象化(それに伴うモデル化)が役に立つことを示しています。
と、このように、全体的にソフトウェア開発の専門家でなくても分かるようにまとめられています。また、ソフトウェアの専門家に向けては注という形で補足が充実していますので詳しい人も面白く読み進めることができると思います。
# たとえば、ブルックスが、IBMのOS/360の開発を率いていたことは有名ですが、OS/360プロジェクトの途中でノースカロライナ大学へ移ってしまったなんて知りませんでした!!(『人月の神話』に書いてありましたっけ???) さらに驚いたのは、その混迷のプロジェクトを引き継いだのが、CMMを構築した、あのワッツ・ハンフリーであったそうです。面白い関係ですね。