川村渇真の「知性の泉」

読んで良かった本や雑誌:設計やモノ作り


●システム作りの人間学

著者 :ジェラルド・M・ワインバーグ
出版社:共立出版
評価 :絶品

書評:システムアナリストに必要な視点や考え方を、非常に楽しく教えてくれる本。良いシステムを構築するには、コンピュータの技術ももちろん必要だが、それ以上に人間とのコミュニケーションや、相当に広い視野で考えることなどが求められる。本書では、技術以外の重要な視点を提供するとともに、そのことを上手に考えさせてくれる。著者は何冊もの魅力的な本を執筆しているが、これが最高の1冊だと思う。

●CORBA Design Pattern

副題 :アーキテクチャからプログラミングまで
著者 :トマス・J・モーブレィ、ラファエル・C・マルボー
出版社:IDGコミュニケーションズ
評価 :優+

書評:企業情報システムのような大規模システムから1本のアプリケーションまで、設計する際に考慮すべき重要点を、デザインパターンとして解説した本。注目したいのは前半の記述で、システム設計で何を考えなければならないのか整理した部分だ。数多くある課題を規模で区分けし、重視すべき点が規模ごとに異なるのを理解することで、適切なシステム設計が可能になると述べている。その結果、情報システム全体での柔軟性や安定性が増すのはもちろん、開発や運用のコストも低減できる。このような考え方は、システム設計者が設計内容を整理するのに役立ち、適切な判断を下す基礎となる。CIOからSEまで、企業のシステム開発に関わる人は絶対に読んでおくべき1冊。

●アナリシスパターン

副題 :再利用可能なオブジェクトモデル
著者 :マーチン・ファウラー
出版社:アジソン・ウェスレイ・パブリッシャーズ・ジャパン
評価 :優+

書評:オブジェクト指向の設計術としてデザインパターンが注目されているが、その多くは実装(プログラム)レベルのパターンを扱っている。本書はそれと異なり、問題領域でのオブジェクトを設計するときのパターン(アナリシスパターンと呼んでいる)に焦点を当てたもの。オブジェクト指向分析の段階で利用可能な、有益なパターンが揃っている。代表的なアナリシスパターンを個別に紹介する形式なので、読者が利用しやすい。また、アナリシスパターンから実装レベルの設計を導き出す方法も解説し、実際に使うことを考慮してある。システムの分析者や設計者はもちろん、プログラマーにとっても非常に役立つ内容だ。

●成功するソフトウェア開発

副題 :CMMによるガイドライン
著者 :Carnegie Mellon University / Software Engineering Institute
出版社:オーム社
評価 :優

書評:CMM(Capability Maturity Model:能力成熟度モデル)の内容を説明した資料的な本。CMMとは、開発におけるプロセスの改善こそが、システム開発の品質向上に効果的だと気づき、組織のプロセス改善を体系化したもの。組織のレベルを5段階に分け、各段階で改善すべき点を示してある。組織のシステム開発能力を高める方法として、非常に注目されている。ただし、個々の設計技術などは対象外であり、それらより上位の技術として位置づけられる。本書はCMMの資料となるもので、CMMを成功させる活用方法の解説書と合わせて読むのがベスト。その意味で、後者に該当する日本語の本の登場が待たれる。

●パーソナルソフトウェアプロセス技法

副題 :能力向上の決め手
著者 :ワッツ・S・ハンフリー
出版社:共立出版
評価 :優

書評:ソフトウェア技術者の能力開発プロセスを規定したPSP(Personal Software Process)の資料的な本。PSPとは、CMMの考え方を個人の開発能力に適用したもので、作業の仕方を制御しながら、自己の開発向上できるように規定した体系的な改善手順。CMMと同様に、個々の設計技術などは対象外で、より上位の汎用的な視点や能力を扱っている。かなり高価な本であり、数式がかなり多く登場して少し難しい内容のため、万人には勧められないが、システム開発能力を極めたい人なら読んで損はない。ただし、本書を読む前にCMMを理解すべき。

●ソフトウェアの構造化ウォークスルー

著者 :エドワード・ヨードン
出版社:近代科学社
評価 :優

書評:ウォークスルー(ソフトウェアの問題点を発見するための1つの方法)を上手に行う方法について解説した本だが、チームで仕事をするための重要なポイントについて、深く突っ込んで分析した部分が最大の魅力。チームの活動を失敗させる要因や管理者の姿勢など、面白い題材が含まれている。ソフトウェア開発の知識や経験がないと理解しづらいが、どんな分野のマネジメントにも役立つ貴重な視点を提供している。

●リファクタリング

副題 :プログラミングの体質改善テクニック
著者 :マーチン・ファウラー
出版社:ピアソン・エデュケーション
評価 :優

書評:タイトルにあるリファクタリングについて、詳しく解説した本。リファクタリングとは、プログラムの機能を保ったまま、機能の追加や改良がやりやすいようにと、中の構造を改良する方法のこと。中身を単に変えるだけだと余計なバグを生むので、自動化されたテストを一緒に組み合わせている。少し変更してはテストを実施し、新たなバグを発見しやすい形で、構造を良くする工夫を採用した点が面白い。また、どのように変更すれば中身が良くなるのか、細かな改善方法をカタログ形式でまとめている。カタログに取り上げている改善方法は、オブジェクト指向の特長を生かしたプログラミング術なので、それを習得する目的にも役立つ。ただし、すべての改善方法を信用するのは少し危険だ。たとえば、23ページの改善例は、「プログラムのソースコードは、問題領域のロジックにできるだけ近い形で表現する」という極めて重大な原則に反しており、変更の悪例である。また、メソッド名を分かりやすくすることでコメントを極力減らしているようだが、日本人にとっては、コメントが日本語で読めることが重要なので、この種の改善方法は適用すべきでない。以上のような視点を持って読む限りにおいては、オブジェクト指向プログラミングの技術を向上するのに大変役立つ本といえる。なお、リファクタリング自体は、XP(eXtreme Programming)を実現する1要素としても注目されている。

●脳の右側で描け

著者 :ベティ・エドワーズ
出版社:マール社
評価 :優

書評:絵を描く技能を向上させるための理論とカリキュラムを解説している。絵を描くには右脳の特殊機能を開発することが重要で、それに沿って課題を構成してある。人物を描く練習なら、見本の人物画を逆さまに置いたまま模写するとか、変わった方法を採用している。なかなか上手に描けないと悩んでいる人にとって、救世主となる可能性の高い1冊。発想がユニークなので、絵を描くのに興味がない人が読んでも面白いかも知れない。

●デザインパターン

著者 :エリック・ガンマ、他
出版社:ソフトバンク パブリッシング
評価 :良

書評:オブジェクト指向技術を用いたソフトウェア設計で、実装レベルの解法をデザインパターンとしてカタログ化したもの。実装レベルの中でも、プログラミングに近い部分を扱っている。あまりにも有名な本で、ソフトウェア技術者がオブジェクト指向の実装設計の話をするときは、このカタログ内の名称を用いて説明するのが当たり前なほど。オブジェクト指向のプログラミング言語を覚えた後で、まず最初に読むべき1冊。

●誰のためのデザイン?

副題 :認知科学者のデザイン原論
著者 :ドナルド・ノーマン
出版社:新曜社
評価 :良

書評:認知科学のバイブル的な存在。コンピュータのソフトウェアだけでなく、水道の蛇口、電話機など、いろいろなものを対象とし、それらが使いにくい原因を論理的に解析している。使いにくい最大の原因は、使いやすさを考慮して設計されていないモノの側にあると。著者は、認知科学の世界的権威であり、以前は米Apple Computer社のフェローとしてユーザーインターフェースを研究していた。認知科学の専門家だけでなく、すべての設計者やデザイナーが読むべき本で、モノ作りに新たな視点を与えてくれる。とくに読んでほしいのは、ソフトウェアの設計者。ただし、大まかな考え方(概念論)は得意だが、具体的な工夫を導き出す方法に関しては、あまり触れられていない。もしかしたら、その部分は不得意かもしれない。だとしても読む価値は十分にある。


下の飾り