Create a new world

きっと誰もが新しい世界を作り続けているんだよ。

これから設計を学ぶ君に贈る一冊 #君に贈る102冊目の名著

こちらの翔泳社さんの本

100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊

を読んでて、自分もちょっと書評を書きたいなぁと思ったので書いてみます。

今回の書評はこちら。

ユースケース入門―ユーザマニュアルからプログラムを作る (Object Technology Series)

ユースケース入門―ユーザマニュアルからプログラムを作る (Object Technology Series)

  • 作者: ダグローゼンバーグ,ケンドールスコット,Doug Rosenberg,Kendall Scott,長瀬嘉秀,今野睦,テクノロジックアート
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/11
  • メディア: 単行本
  • 購入: 1人 クリック: 38回
  • この商品を含むブログ (28件) を見る

いまの時代、設計を学ぼうと思った場合にまず手をつけるのがUMLではないかと思う。僕も前の会社で設計を考えなければならなくなったとき、最初に読んだのがUMLの入門書だった。UML入門とか、そういったやつだ。
しかし、そういったUMLの入門書を何冊か読み、実際にモデルを書いてみても全然理解できなかった。思えば、そもそもオブジェクト指向とは何ぞやということすら理解できていなかったのかもしれない。
Javaや.netの入門書でもクラスとかの話は書いてあるが、動物クラスがあって、犬とか猫とか。そういった説明を読んでもピンとこなかったのは僕に限らず多くの人が体験したことだろうと思う。
そんな僕が「オブジェクト指向とはどういうものか」「どうやってシステムを設計するか」のきっかけを得たのがこの「ユースケース入門」だった。
この本は著者が考案したICONIXと呼ばれる方法論を用いた設計手法が説明されている。この方法論は要件定義のレベルから実装までの設計をUMLの表現を用いて行うものだ。そのやり方は簡潔であり、要件からクラス図までシステマティックに落とし込んでいける。
僕はこの本を読み、実際にユースケースシナリオやロバストネス図・シーケンス図・クラス図を書いていくなかで、いつしか頭の中でシステム像というべきものを描くことができるようになっていた。

ソフトウェアの設計を行うには設計の方法論を知らなければできないと僕は思う。UMLは所詮モデルの表記方法でしかなく、設計方法とは切り離されている。そしてその方法論は細かい差異はあるものの、基本的な原理は昔から変わっていないのであろう。
2010年の9月、平鍋さんがUStreamで「ソフトウェア工学の名著探訪」という企画でいくつかの本を紹介されていた。その中でオブジェクト指向方法論OMTを紹介されていた回がある。Ustream.tv: ユーザー hiranabe: オブジェクト指向方法論OMT(ランボー), James Rumbaugh の『オブジェクト指向方法論OMT』('91)を紹介。羽生田さん監修で日本に1992年に紹介されました。オブジェクトモデル(オブジェクトモデル図)、動的モデル(状態遷移図)、機能モデル...
それを見た時、「これってユースケース入門と一緒だ!」と驚嘆したことを今でも覚えている。

では実際に今業務でロバストネス図やシーケンス図を書いているかというと書いていない。ドキュメントを求められていないのと早く動くものを作ることを優先しているからがその理由だ。しかしこの本に書かれていたやり方はいまでも設計や実装を考える際のベースになっている。
プログラムが書けるようになった。でも全体像をうまく考えられない。そんな人にこそ、この本を読んで欲しい。そしてシステム像を考える面白みを感じて欲しいと思う。