オブジェクト指向で
なぜつくるのか
知っておきたいプログラミング、
UML、設計の基礎知識

平澤 章 著
日経BP社 発行
2004年6月
317ページ
2520円(税込)
実践UML 第2版
パターンによる統一プロセスガイド

Craig Larman 著
依田 光江 訳
今野 睦,依田 智夫 監訳
ピアソン・エデュケーション 発行
1998年12月
647ページ
6510円(税込)
アジャイルソフトウェア開発の奥義
原則・デザインパターン・プラクティス完全統合

Robert C. Martin 著
瀬谷 啓介 訳
ソフトバンク パブリッシング 発行
2004年7月
690ページ
6090円(税込)
ソフトウェアの複合/
構造化設計

Glenford J. Myers 著
國友 義久,伊藤 武夫 訳
近代科学社 発行
1979年6月
225ページ
3465円(税込)
構造化分析と
システム仕様

Tom DeMarco 著
高梨 智弘,黒田 純一郎 訳
日経BP出版センター 発行
1986年12月
397ページ
2854円(税込)
オブジェクト指向入門
Bertrand Meyer 著
酒匂 寛,酒匂 順子 訳
二木 厚吉 監訳
1990年11月
699ページ
5077円(税込)
人月の神話
—狼人間を撃つ銀の弾はない

Frederick P. Brooks Jr. 著
滝沢 徹,牧野 祐子,富澤 昇 訳
ピアソン・エデュケーション 発行
1996年2月
321ページ
3045円(税込)
Javaエンタープライズ・コンポーネント
カラーUMLによるJavaモデリング

Peter Coad,Eric Lefebvre,Jeff De Luca 著
依田 光江 訳
今野 睦,依田 智夫 監訳
ピアソン・エデュケーション 発行
2000年9月
236ページ+CD-ROM
4620円(税込)
<業務別>データベース設計のための
データモデリング入門

渡辺 幸三 著
日本実業出版社 発行
2001年7月
294ページ
2940円(税込)
生産管理・原価管理システムのための
データモデリング

渡辺 幸三 著
日本実業出版社 発行
2002年10月
310ページ
2940円(税込)

 Part4では,分析/設計のスキルアップを図るための本を紹介します。分析や設計に興味があるということは,これまでもかなりの勉強をされてきただろうし,これからももっと勉強をしていこうという強い志を持った方だと思います。このパートでは,そのような勤勉な方を対象に,分析や設計に役立つ本の紹介だけにとどまらず,勉強の仕方のヒントについてもお伝えしていきましょう。

 ところで,このような勤勉な方に多い行動パターンとして,一つのことを深く掘り下げすぎるというのがあります。これは大変すばらしいことなのですが,分析や設計をするうえで視野が狭いというのは,致命的な欠点と言えます。

 では,どうすればよいでしょうか。まずはコンピュータから離れることをお勧めします。コンピュータ関係の本だけではなく,たまには恋愛小説や推理小説などを読んでみてはいかがでしょうか。休みの日はスポーツをして汗を流してみましょう。スポーツには,ルールがつきものです。なぜ,ルールがあると思いますか。ルールを守ることで,安全にかつ楽しくプレーができるのです。「ルールに縛られる」という言葉はマイナス・イメージで使われることが多いですが,よいルールであればそれを守ることで大きなメリットを得ることができます。オブジェクト指向はその最たるもので,結局のところルール集に過ぎません。視野を広げればいろいろなところから学ぶことができるのです。では,オブジェクト指向を学ぶための良書を紹介しましょう。

オブジェクト指向の真実を知る

 「オブジェクト指向を勉強するのに一番よい本はなんですか?」と聞かれたら,真っ先にお薦めするのが「オブジェクト指向でなぜつくるのか」です。その理由の一つは,「事実を事実として伝えている」ということです。当たり前のことのように思えますが,これまでのオブジェクト指向の入門書には,確信犯的に「ウソ」を書いてあるものが多いのです。これは,オブジェクト指向をマスターするのが難しいために,わざとウソをついてわかった気になってもらって,ともかく先に進んでもらおうという著者なりの配慮です。ですが,より上級になっていくと,以前覚えたウソを信じているがために成長が遅くなるというデメリットにつながります。では,事実を書いているこの本は難しいのかというと,そのようなことはありません。わかりやすく親切に書かれているので頭に染み込むように理解できるのです。

 お薦めする理由のもう一つは,「取り扱っている内容が広い」ということです。この本を読めば,オブジェクト指向の世界がどんなものかを一通り理解することができます。この本を出発点として,開発プロセス,分析,設計,プログラミングとそれぞれの技術を掘り下げていくのがよいでしょう。

 オブジェクト指向の概観について学んだら次は実践です。この段階でぜひ読んでいただきたいのが,筆者が本誌に連載中の「オブジェクト指向設計の考え方」でたびたび触れている「実践UML 第2版」と「アジャイルソフトウェア開発の奥義」(以下,「奥義」と略す)の2冊です。GRASPパターンは「実践UML」を,オブジェクト指向の設計原則は「奥義」を参考にさせていただいています。どちらの本もサンプルが多く,実際にどのように開発をしていくかの雰囲気をつかむのに適した構成になっています。

 本のタイトルから,それぞれ“UMLだけの本”“アジャイルだけの本”と思われるかもしれませんが,そうではありません。「実践UML」は「UMLを実際の開発でどのように使っていくか」を分析/設計の各工程で行うべき作業やその際の基本的な指針と共に紹介しており,オブジェクト指向分析/設計全体の教科書と言ってもいいような内容です。「奥義」の方も,アジャイル開発に必要な開発技術を一通り解説するというスタンスで,オブジェクト指向設計における様々な原則やデザインパターンなどを学ぶことができます。くれぐれもタイトルに惑わされないようにしてくださいね。

開発の歴史を知れば未来が見える

 最初に紹介した「オブジェクト指向でなぜつくるのか」を気に入っている理由の一つは,ソフトウェア開発の歴史についても触れている点です。現在を知るには,その歴史について知ることが大変重要なことだと私は考えています。これまで,構造化→データ中心→オブジェクト指向と開発手法が進化してきました。このような傾向がわかると,未来についてもわかるかもしれません。

 ということで,分析/設計に関する古典的な名著を3冊紹介しましょう。1冊目は「ソフトウェアの複合/構造化設計」です。よく「高凝集,低結合」という話を聞きますが,その原典ともいえるのがこの本です。本書では,評価尺度としてモジュール強度やモジュール結合度について厳密に定義しています。また,情報処理試験でよく見かける設計時の分割の指針である「源泉・変換・吸収型分割」「トランザクション分割」「共通機能分割」「データ構造分割」などの用語も本書が原典だと思います。

 2冊目は「構造化分析とシステム仕様」です。DFD(データフロー・ダイアグラム)や,データ・ディクショナリの原典として,読んだことのある方も多いでしょう。

 3冊目は「オブジェクト指向入門」です。書名に「入門」とありますが,実は中級者向けの本で,プログラミング技法としてのオブジェクト指向について述べています。オブジェクト指向の設計原則である「開放/閉鎖原則」,クラスやメソッドの責任境界を明確にする「契約による設計(Design by Contract)」などの原典がこの本です。著者のBertrand Meyerが開発したEiffelというオブジェクト指向言語を使って,オブジェクト指向プログラミングのカラクリなどを説明するというスタイルですが,Eiffelを知らなくても十分読み進めることができます。

 開発プロセスの古典と言えば「人月の神話」を外すことはできません。いわゆる「ブルックスの法則」がいくつも凝縮されて収められています。ブルックスの法則という言葉は知らなくても,「遅れているプロジェクトに人を追加するとさらに遅れる」「妊婦が10人いても,子供は1カ月では生まれない」などの法則を聞いたことがあるのではないでしょうか。これらは,すべてこの本から飛び出した法則です。

分析を学ぶならばまねることからはじめよう

 残念ながら,よい分析者になるための王道はありません。少なくとも私はそう思っています。UMLを覚えただけでは,よい分析モデルは書けないのです。

 では,どうやって学べばよいでしょうか。ひたすら,まねるというのが近道だと私は思っています。「学ぶ」という言葉の語源は「まねる」というのが有力な説になっています。子供が大人の行動を見て,それをまねて,社会の常識などを学んでいくことを考えると,なるほどという感じがしますね。分析もひたすら先人の書いたモデルをまねるところからはじめましょう。そしてまねるならば,良いモデルをまねるに越したことはありません。ということで,ここでは良いモデルの例がたくさん載っている3冊の書籍をご紹介します。

 まず最初は「Javaエンタープライズ・コンポーネント」を読んでみるといいでしょう。販売やプロジェクト管理などのサンプルが,この本の特徴である4色に色分けされたUMLダイアグラムで描かれています。どのような視点で分析を行えばよいかという分析のフレームワークを,ステレオタイプとして定義していて,そのステレオタイプごとに色を対応付けています。

 この本では,このステレオタイプを「アーキタイプ」と定義し直している点にも興味をひかれます。これらの色は粘着メモ用紙であるポスト・イットの色と同じで,ポスト・イットを使って分析することを推奨しているのも面白いところです。また,アジャイル・プロセスの一つであるFDD(Feature Driven Development)についても触れています。

 続いてデータ・モデリングの本を2冊紹介します。以前本誌にも連載されていた渡辺幸三氏の「〈業務別〉データベース設計のためのデータモデリング入門」と「生産管理・原価管理システムのためのデータモデリング」もお手本として最適です。モデルを作成していく過程をたどりながら,業務知識についても理解できる一石二鳥の本といえるでしょう。オブジェクト指向を専門としている人の中には,データ・モデリングを「古いやり方」と思っている人が少なからずいるようですが,表記法が違うだけで,その心はほとんど変わりません。一読すれば,オブジェクト指向分析に対する考え方も変わることでしょう。