ObjectSquare

[技術書籍紹介]




思考系 UML モデリング 即効エクササイ 思考系 UML モデリング 即効エクササイズ
モデ力を鍛える 13 の自主トレメニュー




渡辺博之 / 芳村美紀 / 桑本茂樹 / 敷山喜与彦   著
株式会社翔泳社 1,995 円(税抜き 1,900 円)
A5 判 272 ページ
ISBN4-7981-0712-3
 著者より 著者より
 「はじめに」より 「はじめに」より
 対象読者 対象読者
 本書の構成 本書の構成
 著者紹介 著者紹介

著者より

「いったいどうすれば良いモデルが作れるんだろう?」

これは開発現場でモデルを作る際に、必ずと言っていいほど聞かれる言葉です。
この本は、まさに、こんな質問に応えるために書きました。

じゃあ、いったいどうすればよいのでしょう?

その前に、ちょっとスポーツを習得するときのことを考えてみてください。
たとえば「水泳」のクロール。
本あるいは出来る人から、「理論」、「手足の動かし方」、「呼吸法」といったものを学んだからといって、じゃあいきなり泳げるかといえば、決してそうはうまくいきませんね。
頭で分かることと、実際に「出来る」ようになることとは、まったく別のことです。
そして、実際に「出来る」ようになるためには、頭で「分かった」ことを体に覚えこませるための「トレーニング」が必要です。
野球もそう、サッカーもそう、ゴルフもテニスも、きっとみんな同じはずです。

モデルだって同じなんです。

「ちょっと UML を勉強したから」
「オブジェクト指向がなんとなくわかったから」
「セミナーで 2 日間実習したから」
「パイロットプロジェクトをやってみたから」
「 UML を使った開発を 1 度経験したから」

たったこれだけの経験で思うようにモデリング「出来る」人がいたら、多分その人は天才です。
スポーツと同様に、もっともっとモデルを作るための「トレーニング」を積まなければ、普通は上手くなりません。

この本では、モデルを作るための力を「モデ力(もでりき)」と呼んでいます。
そして、「モデ力」をつけるための、
「正しい理論(考え方)」
「正しいトレーニング方法」
「実際のトレーニング問題」
をまとめたものが、この本の内容です。

うんと乱暴に言ってしまえば、
「モデ力を鍛えるためのドリル」
ともいえます。

もっとも、「書いた」というよりは「形にした」といったほうが正確かも知れません。
というのも、実はこの本の内容は、われわれ 4 人の著者の所属するそれぞれの会社(「株式会社リコー」、「株式会社オージス総研」)の教育や勉強会といった場で使ってきた資料を元にして、より体系的に洗練したものだからです。
社内での効果や評判がとても良く、ぜひわれわれ以外にも多くの方の参考になればと思い、今回、本という形にまとめました。

もし、ここまで読まれてみて興味を持った方は、次項の「はじめに」を読んでみてください。いままでの話をもっと詳細に分かっていただけます。
そして、「はじめに」を読んで、より興味を持った方は、ぜひ本屋さんで手にとってみてください。
皆さんの「モデ力」の向上に、この本がすこしでも役立てれば、こんなにうれしいことはありません。

最後に、オージス総研社内の勉強会でやったアンケート結果をご紹介します。
本書の雰囲気を、多少なりとも感じてもらえれば幸いです。

「同じ問題に対して、様々な考え方・捉え方があって、面白いと思いました。」
「私のようにモデリングの経験が浅い者の立場で考えると、モデルをかく練習がたくさん積めるとうれしいです。」
「モデリングの前提となるコンセプトを明確にする必要性を学んだことは、大きな成果です。」
「分析の重要性が理解できました。以前は、モデルを書く際に、設計のテクニック的な部分にばかり目がいっていましたが、本質的に何を表したいかという点に着目してモデリングができるようになったと思います。」
「業務でモデリングを行う機会に恵まれ、勉強会で行ったことと同じようなことを実際にやることを、今更ながら知りました。」
「頭が柔らかくなりました。」

渡辺博之 (著者のひとり)

ページのトップへ戻る

「はじめに」より

「アイスクリームをモデル化せよ」
あなたなら、この問いに対して、どんなモデルを作るでしょうか?

巷では UML と呼ばれるモデリング言語がブームです。
ソフトウェア開発にとどまらず、ビジネスの方式も流行の EA も、まさに何でもかんでも、この UML を使ってモデル化してしまえというのが最近の傾向のようです。
そして、この流れに刺激されてか、UML の習得に励む人々も急増しています。本屋に行けば『〜 UML 入門』といった『 UML の読み書き』に関する本が、それこそ所狭しと並んでいます。

さて、冒頭の問いかけに対するみなさんの答えはいかがでしょう?
こんな簡単な問題ですが、意外と苦労した方も多いのではないでしょうか。モデルを作るということは、実はそんなに簡単なことではありません。前述した UML も、モデルを「表現する」ためのツールに過ぎず、「何をモデル化するか」すなわちモデルの内容を決めてくれるものではないのです。
しかし、モデルを作る作業においては、この「何をモデル化するか」を決める作業こそが一番大事であり、難しいところなのです。これができて、はじめて UML でモデルを作ることができるようになるのです。アイスクリームのような簡単な対象でさえ、この「何をモデル化するか」を決めないことには、モデルを作ることはできないのです。

では、「何をモデル化するか」を決める作業は、なぜ大事であり、かつ難しいのでしょうか? 答えを考える前に、まず、何のためにモデルを作るのかを考えてみましょう。

私たちがモデルを作る目的はいろいろあります。そのなかで一番大事なことは、「対象の本質を取り出すことで、それを理解しやすくし、特徴を明確に表現すること」です。
私たちのまわりのものは、日々複雑化しています。一方、人間は複雑なものをそのまま理解することが不得手です。何らかの手段を講じてわかりやすい形に加工しなければ理解できません。そして、そのために必要なことが「本質」をとらえるということなのです。

「本質」とは、「物事の本来の性質や姿」あるいは「それなしには、その物が存在し得ない性質・要素」のことです。複雑なものでも、この「本質」をとらえることで、表面的なわずらわしさや複雑さに惑わされず、対象の核心部分を正しく理解することができるようになります。

モデルを作るということは、突き詰めて言えば、この「本質」を見極めて、複雑な内容を理解しやすく示すということに他なりません。
これはソフトウェア開発だけに限定される話ではなく、先に挙げた EA のような企業の業務や組織でも、あるいは経済の仕組みであっても、すべて同じことです。
私たちのまわりに、このように複雑なものが増えてきたからこそ、それらをわかりやすく示す手段としてモデルの必要性が声高に叫ばれ、その結果として UML のようなモデル化のための言語がもてはやされているともいえるのです。

さて、最初の設問に戻りましょう。いままで述べたことからわかるように、「何をモデル化するか」の「何」は、まさしく「対象とする物事の本質」ということになります。
では、本質を見極めるためには、どんなことが必要なのでしょうか? 1つは、当たり前のことですが、対象となる物事をしっかりと理解する力です。もう1つは、理解した結果から、対象の持つ本来の姿を導き出す力です。
これらの力を発揮するためには、いくつか効果的な方法があります。
例えば、対象をしっかりと理解するためには、物事をいくつかの関心事に分けて扱う範囲を小さくしてから考えたり、分けたものどうしのつながりを調べて整理するといったアプローチが役立ちます。
また、同じようなものを1つの概念にまとめる、あるいは必要なものだけを考え不要なものは捨てるといった整理を行うことで、対象の特徴や本来の姿をより明確に示すことができます。
通常、前者の考え方は「構造で考える」、後者は「抽象化する」と呼ばれます。

ここまで読まれて、すでにお気づきの方もいると思いますが、実は、オブジェクト指向という技術は、この「構造で考える」と「抽象化する」を柱とした、まさに物事の本質を見極めるための技術なのです。そして、UML というモデリング言語は、このオブジェクト指向技術を前提にして作られています。つまり、オブジェクト指向をきちんと理解して UML でモデル化すれば、「構造で考え」「抽象化する」ことによって「本質」をきちんととらえた良いモデルを作ることができるのです。
しかし、現実には、これで解決するわけではありません。「構造で考える」や「抽象化する」という考え方自体が、そう簡単に身につく技術ではないのです。いままでオブジェクト指向にトライして挫折された方のほとんどは、実はこの2つの技術習得に問題があったのではないでしょうか。
これらの技術は、いわゆる「考える方法(考え方)」であり、座学だけでは習得できるものではありません。もちろん、すぐに習得できる人、いわゆる「センスが良い」人も稀にいますが、ほとんどの人は習得するためのトレーニングを必要とします。
これはスポーツにおける「運動神経」と同じようなものです。「運動神経」がそこそこの人でも、正しいトレーニングを行うことできちんとしたフォームが身につき、スポーツを楽しむことができるようになるのと同じことです。

そして、本書を書いた目的は、まさにここに集約されます。本書では、いままでの「オブジェクト指向」や「 UML 」の教科書では重視されてこなかった、よいモデルを作るために必要な「思考のトレーニング」にフォーカスをあてています。いきなりモデルを作るのではなく、モデルとして表現すべき「本質を見極める」ことを重視します。そして、そのために必要な「構造で考える」「抽象化するといった考え方を、「トレーニング」するなかで体感してもらいます。
もちろん、本質を正確に表現するという点では、UML のようなモデリング言語は大きな効果を発揮します。本書では、思考した結果である「本質」をどのように UML モデルに反映させていくのか、という点についてもきちんと扱っていきます。

かなり前置きが長くなってしまいましたが、本書は、以上のようなコンセプトを元に作られました。そして、みなさんにより伝わりやすいように、さまざまな工夫も凝らしてみました。

ドリル形式

いくつもの問題を実際にこなすことで、必要な技術を習得することを目指しました。子供のころにやったドリルを想像してください。
また、各問題には、1つの解答例だけでなく、バリエーションとして他の解答例や、いかにもありそうな間違いの例も提示しました。これらは、考え方の幅を広げたり、陥りそうな間違いに気づくのに役立つことでしょう。

分析手順の提示

思いつきでいきなり UML モデルを作るのではなく、本質を踏まえてから作成するという過程を、きちんと手順として定式化しました。具体的には3つのステップから構成されます。この詳細については、ぜひ本文を参照してください。

ページのトップへ戻る

対象読者

本書は、以下のような極めて広範囲な方々に読んでいただきたいと思っています。

「良いモデル」を作成したい人

いわゆるアナリストやモデラーと呼ばれる人たちです。あるいは、それを目指す予備軍の人たちかもしれません。 これらの方々は、本書で扱っている問題を解くことで、「本質を見極める力」と、それを「 UML で記述する力」の両方のスキルを大きくアップできるはずです。

モデルを見て、その良し悪しを判断しなければならない人

プロジェクトを担うエンジニアや技術部門のマネージャといった人たちは、自分がモデルを作るよりも、他人のモデルを見て、それが妥当かどうかの判断をすることが主たる任務でしょう。 本書の問題に対する「解答例」や「ありがちな間違い」を見ることで、良いモデルには何が必要なのか、陥りがちな間違いとは何かといったことをぜひ感じ取ってみてください。

UML やモデリング技術を教える立場の人

主に学校や企業で、UML を習得してもらうにはどうすればよいかを考えている人たちです。 本書は、表面的ではない、しっかりした技術に根ざした足腰の強い UML 技術者を育成するにはうってつけです。ぜひ、活用してみてください。 また、本書の問題を参考にしてオリジナルの問題を作ってみてはいかがでしょう。第 17 章に掲載されている「まとめ」は、問題を考える上でも役立つでしょう。

物事の「本質を見極める力」を身につけたい人

本書は、エンジニアに限らず、管理職や営業職の方々にも効果的です。「本質」を見極めることは、マネジメントやビジネスを上手く進める上でも必要なことです。本書の問題を解くことで、その力を磨いてください。 なお、このカテゴリーの方々の場合、特に興味がなければ、UML モデルの部分は読み飛ばしていただいても構いません。

頭の体操をしたい人

日々の忙しさに追われ、ものの見方や考え方が凝り固まっていませんか? そんな方が、ちょっとの間、考え方を変えて頭の中をリフレッシュしたいときにも、本書は役立ちます。 どこでも好きなところを拾い読みしてください。頭がリフレッシュされて、悩み事を解決するヒントが浮かぶかもしれません。

ページのトップへ戻る

本書の構成

本書は大きく第1部のオリエンテーションと第2部の演習に分けられ、各章は次のような内容で構成されています。

第1章:本書は何を解決しようとしているか?

ここでは、本書の中心になっている「ドリル形式の問題を解く」というトレーニングが、なぜ分析力のアップにつながるのかを、順序だてて丁寧に解説していきます。
第2部の演習で大きな成果を得るためには、この部分をきちんと理解することがとても大切です。これは、例えば筋力トレーニングでもトレーニングの目的や意味を理解するだけでその成果に大きな違いが生まれるのと同じことです。 いきなり第2部の問題に取りかからずに、ちょっとだけ辛抱してこの章を読んでみてください。トレーニングをより効果的にする手助けとなるはずです。

第2章:トレーニングの進め方と例題

この章では、問題の解き方について解説します。特に重要な点は、問題の解き方の手順を大きく3つのステップに分けて定式化した部分と、例題を用いてそれを詳細に説明している部分です。 第1章と同様に、ここも問題を解く前に、しっかりと理解しておきましょう。

第3章: UML 表記

考え抜いた「本質」をどのようにモデルで表現するかという局面で使われるのが UML です。ここでは、UML の基本的な知識を簡単に説明しています。実際に問題を解いてモデルを作る際に、参考にしていただくことを想定しています。
ただし、UML の入門書ほどは懇切丁寧な説明ではありません。UML 初心者の方で、本書でモデルの書き方も習得したいという方は、あらかじめ他の入門書で UML に関する理解を深めておいてください。

第4章から第 16 章:演習

まさに、本書の主題です。問題は全部で 13 あります。
第2章で解説した3つのステップで、すべての問題を解いてみましょう。
じっくり机の上で解くのも良し、通勤の途中や仕事の合間などを利用して継続的に取り組んでみるのも良し、です。
ただし、あせってすぐに解答を見てしまうと、効果は半減します。最初は、まず自分で考えてみること。これを、強くお勧めします。

演習 1正義の味方
演習 2アイスクリーム
演習 3ブラックジャック
演習 4数学関数
演習 5ホテル
演習 6じゃんけん
演習 7新幹線の停車駅
演習 8待ち合わせ
演習 9蒸気機関車
演習 10各停と快速
演習 11カップラーメン
演習 12電子文書
演習 13レンタルビデオ

第 17 章:まとめ

13 の問題の構成と、各問題の持つ「ねらい」や「特徴」などを一覧表で示しました。ここは、問題をひととおりやり終えてからご覧になってください。 あらためて、各問題の意図やそこでわれわれが伝えたかったことなどを感じ取っていただけるでしょう。

コラム

本書を作成している途中に出てきたアイディアや、執筆者どうしの会話から出てきたおもしろそうな話、本文に書くのはちょっとヘビーな濃い話、などをコラムとしてまとめました。各章にちりばめてありますので、ぜひ読んでみてください。

ページのトップへ戻る

著者紹介

渡辺博之(わたなべひろゆき)
 株式会社オージス総研 組み込みソリューション部 チーフコンサルタント

組み込みシステム開発に奮闘する中で、オブジェクト指向に出会う。その開発経験を活かし、1996 年よりオージス総研にて、コンサルティング・開発支援・教育活動などに従事。
「本気で良いと思ったら、まず実践してから自分なりに体系化する」ことがモットーで、このスタイルを繰り返しながら、現在に至る。最近は、ソフトウェア開発に凝り固まった頭をストレッチすべく、科学、思想、ビジネス、マネジメント、スポーツなどといった幅広い知識の習得に日々いそしんでいる。

芳村美紀(よしむらみき)
 株式会社リコー 画像システム事業本部 プラットフォーム開発センター

大学の専攻は理学部数学科。ソフトのことは何も知らないままリコーに入社。その後、構造化分析手法にて商品開発を経験。時代の流れとともにオブジェクト指向に移行し、いつの間にかオブジェクト指向歴 9 年目。
今では、商品を開発するのではなく、商品を作るための“人”と“知識”の開発に従事。人生のスローガン「おもしろくないと嘆く前に、おもしろくなるように自ら変えよう」。

桑本茂樹(くわもとしげき)
 株式会社リコー 画像システム事業本部 プラットフォーム開発センター

入社数年後に、生産性向上の一環として、オブジェクト指向によるソフトウェアの開発に取り組む。以後、育成、ナレッジマネジメント、戦略、といった方面で活動し、現在、組み込み系の統一ソフトウェアのマネジメントに従事。
目指しているライフスタイルは「自然に生きる」。支えとなっている考え方は「自分しだい」。気をつけている行動は「節度をわきまえた本音の対話」。最近気に入っている言葉は「強みの上に築け」。

敷山喜与彦(しきやまきよひこ)
 株式会社オージス総研 組み込みソリューション部 シニアコンサルタント

入社以来、オブジェクト指向によるシステム開発に従事。情報システム構築の一連の業務に携わる。現在は、組み込みシステムをモデルで可視化することに熱中。元来の「仕組み好き」の好奇心を満たしている。
「臨機応変」が信条だが、最近は「いかに事を起こさないか」が関心事。よく使う言葉は「餅は餅屋」と「 Simple is Best 」。

ページのトップへ戻る

© 2004 OGIS-RI Co., Ltd.
HOME HOME TOP オブジェクトの広場 TOP