利用事例図から時系列図への
★★★★★
ICONIXという著名なやり方を紹介している。
利用事例図(use case chart)から時系列図(sequence diagram)を起こす間に
ロバスとネス分析という作業を入れることを提案しています。
試験と設計の重要さも書いています。
試験事例を作成するための注意事項もあります。
利用事例図から時系列図を作る際に、漏れや重複など、いろいろな課題を感じていたのでちょうどありがたいところに焦点が絞られていると思いました。
予備設計レビューという考え方もいい感じだと思いました。
WEB図書販売という、なじみの深い事例なので、理解しやすい点が利点です。
java, Junitという実際に使っているシステムの例なので、関連するプログラマにはよくわかる内容になっている。
課題は
1 図で矢印のあるところと無いところがあり、意味がよくわからない。
2 ドメインモデルといって用語の構造化を測っているが、用語の木といった方が分かりやすい。
3 ロバスとネス分析が何にロバスとなのかがよくわからない。
4 はじめから多くの教訓を入れすぎていて、重い。
5 もう少し、少ない教訓で小さなものを設計してみて、
2廻り目に大きなものを多くの教訓で実践する方が良いかも。
6 テクニカルアーキテクチャが、Spring web MVCで具体的に書かれているのは嬉しいが、
アーキテクチャのパターンをいくつか示してあると嬉しい。
7 失敗のとっぷ10はとても役立つが、具体例が無いものがあり、想像しにくいことがある。
例えば、アーキテクチャの構築をいっさい行わない(P204)
やっていないと思っているだけと、いいかげんにやっていることの区分が分からない。
8 Enterpirse Architectというソフトを使っているが、具体的なファイルがついていないので、
細かいところの操作、確認がしにくい。
だと思いました。
いきなり、これを教育で実践するのは重いような気がしました。
実践で利用できる「教科書」
★★★★★
オブジェクト指向分析/設計の考えを身に付け、実践したい開発者の方にお勧めの書籍です。
「理論」「実践」「練習」のステップを通して学習が身につきます。
「ロバストネス分析」と「ICONIXプロセス」について解説されています。ICONIXはRUPのようなフルセットの巨大プロセスではなく、オブジェクト指向分析/設計の手法を実践で役立つようにコンパクトにまとめられたプロセスです。ユースケースをもとにロバストネス図を描く「ロバストネス分析」の作業により、ユースケース記述が具体的なものに洗練されていき、アプリケーションの振る舞いがすべて洗い出されていきます。要求を正確に満たすオブジェクトを導出するすべは、まさに求めていた手法でした。
題材として「インターネット書店」を取り上げ、要求定義からSpingを使ったWebアプリケーションの実装およびJUnitを利用した「設計駆動テスト」(DDT)による単体テストの実践方法までもがカバーされている実践で利用できる「教科書」といえます。
モデリングツールとしてEnterprise Architect(EA)を利用されている方、一読の価値ありです。
アジャイルで実践的なUML開発手法
★★★★★
ユースケースと分析クラス図が、そのままコードになる。そういう実践的なUMLの使い方をワークブック形式で説明した本です。
オンライン書店の読者レビュー機能を例にして、分析クラス図とユースケースから Java で実装するまでのステップを具体的に解説します。
この本の開発手法「ICONIXプロセス」は、ほんとうに実践的です。
教科書的なUMLモデリング手法から見ると、乱暴とも言える。
・ユースケースは、画面名やボタン名で具体的に書け。
・ユースケース図は、接続線やステレオタイプにこだわるな。
・クラス図で、多重度の検討なんか無駄。
動くソフトウェアを早く作るために、ほんとうに必要なことだけを、徹底して実践しよう、という考え方が明確です。理由の説明も具体的です。
ユースケースで記述した内容を、そのままコードまで落としていきます。
初期の分析クラス図を更新しながら最後はコードに自動生成します。
本の内容はモデリングが中心ですが、Spring 定義ファイルを含めたすべての Java ソースコードをダウンロードできます。
オンライン書店の例はシンプルですが、ログインとセッション管理とか、入力バリデーションとか、実践的なテーマも具体的に取り上げています。
UMLと実装とのギャップに悩んでいる人、重い開発手法の上流工程の作業に疑問を感じている人には特にお薦めします。
私自身は、若手の技術者のトレーニング教材として活用しています。要求分析から実装・テストまでの一連の流れを具体例で説明できる。
また、この本は、あちこちに「意図的な間違い」が盛り込まれ、後のほうに「答え」が隠されています。その間違いと答えを探してもらう。この「間違い探し」ゲームをやっていると、資料を丁寧に読み、論理的に考える癖が自然に身につくようです。
ユースケース駆動モデル・プロジェクトで悩むときの必読書!
★★★★★
ウォーターフォールでプロジェクトを進めてきたPM、SEはアジャイルであったりラショナル統一プロセスをはじめとしたユースケース駆動モデルを受注したときに恐らく途方に暮れるでしょう。
言うまでもなくユースケース駆動モデルはデザインモデルからユースケースモデル、ロバストネス分析を経て実装モデルにいき、コードと設計書が完全にリンクするモデルです。
しかし、始めとっつくにはそれなりのスタディが必要とされます。
イヴァー・ヤコブソンのIJCでのコンサルティングやセミナーを受ける機会が得られる人はまだ良いのでしょうが、そうした機会も得ずにエンドユーザーがユースケース駆動モデルを導入しているプロジェクトに参入してしまった場合、要件定義の段階から、そもそも何をしたら良いのかすらわからず、無駄に時間を費やしてしまうでしょう。
冒頭にICONIXプロセスについての説明を触り程度ですが書いてあるのも参考になるでしょう。
本書は、WebシステムによるAmazonのようなブックストアを作る例を挙げて実践的且つわかりやすい解説がなされており、UMLの基礎さえ分かっていれば難なく読んでいけます。
よくありがちな邦訳本は機械的にシステムを分からずに訳していて意味不明なものもあるんですが、本書は技術者が邦訳していて、日本におけるユースケース仕様書、ロバストネス分析についてもわかりやすく解説してくれています。また、重要点については太字で書かれていて頭にたたき込みやすいです。
それぞれの工程でどうすべくか、何をしたらよいか?それを10項目に分けて解説しており、するべきでないこともしっかり書かれています。但し、訳者や著者によるユースケース駆動モデルの「こうしたほうが良いだろう」というのは必ずしも自分に該当するかはよく考えた上で、イヴァー・ヤコブソンの本を手本とすることをお薦めします。
また、各過程でのレビューすべき事とその重要性についてもページをかなり割いて解説しており、特に新規プロジェクトでユースケース駆動モデル導入を検討している場合にも参考となりますし、既に導入しているプロジェクトへの新規参加をした場合にも役立つことは間違いないです(少なくとも、私はそうでした)。
特に、要件定義であるドメインモデル、そしてユースケース図とユースケース仕様書、そこからロバストネス分析を行って実装モデルに持って行くまでは読み砕けばどんどん理解できます。
実装〜コーディング以降はJavaをベースとして説明をしており、まあソフトウェアもEnterprise Architectを例にして説明していますが、ラショナル統一プロセス等においても何ら問題は無く対応できる内容です。
無意味に詳細化してしまいがちなユースケース、正しくクラス・オブジェクト・ソースまで辿り着ける設計を行えずに悩んでいる方、お勧めします。