2019年10月18日午後、株式会社オージス総研殿(東京 大崎)にてL2・L3認定取得者を主な対象とした「CRCカードワークショップ〜賢いクラスとそれらのコラボレーションをモデリングしよう」を開催いたしました。
この集いは、当協議会のモデリング実践部会(主査:中原 俊政)が、オブジェクト指向流の責務やメッセージによるコラボレーションの考え方に慣れていただくことを目的に企画・実施したものです。
はじめに、竹政 昭利様からモデリング実践部会の紹介を、続いて原田 巌様、小黒 登行様から11月28日のUMTPモデリングフォーラムで実施するセミナー「モデルベース思考の基礎と応用」、「UMTPモデリングワークショップ」の紹介をいただきました。
そしてワークショップです。
最初に藤井 拓様から、責務駆動設計とそこで活用する道具であるCRCカードについて以下のご説明をいただきました。
- 設計におけるクラス(オブジェクト)の発見及び定義は重要ではあるが難しい。
- 責務駆動設計により、モデルとしての正確な表現に深く悩まずに、クラス(オブジェクト)の発見・定義を進められる。またCRCカードには、自然とよい設計に誘導される仕組みが組み込まれている。
続いて参加者全員が実際にモデルを作成し、結果を共有するワークを以下の内容で実施しました。
- 日本語の文章に記載されているクラスの責務とコラボレーションをCRCカード上で整理する個人ワークを2回行いました。
- 付箋とCRCカードを使って日本語の文章からクラスを発見し、責務とコラボレーションを定義するチームでのワークを、4名×3チームで複数回実施しました。ワークの後、藤井様から回答例の紹介をいただくとともに、各チームの実施結果を共有しました。
- ワークを行ってのKPT(Keep, Problem, Try)の観点での振り返りを各チームで行いました。実施してみて良かったこと/続けたいことをKeep、良くなかったこと/見つけた課題をProblem、次回取り組みたいことをTryとして各自が付箋に整理後、壁に貼りだして共有しました。
- Tryの内容を意識した上で、(2)と同様のワークを改めて行いました。
ワーク後の質疑では、CRCカードでのデザインパターンや多重度の使い方に関する質問に対し、藤井様から「クラス図と組み合わせて等使うこともできる。ただしCRCカードの良さはアプリ全体を大きくとらえる際に、そこまでの厳密さを考慮せずにスピーディにモデリングできることであり、このメリットは分散システムやマイクロサービスの設計には特に有効である。」との回答をいただきました。
最後に、12名の参加者それぞれが、本日学んだことを発表し共有しました。「議論は空中戦になりがちなので、手を動かしCRCカードで可視化することが大切」(5名)、「チームでモデリングすると一人では思いつかない気づきがある」「自分の考えを他者に伝えることが難しい」、「モデリングの際は抽出したクラスになりきり、ユースケースを実現できるか検証するというポイントが印象に残った」(各3名)といった意見が多く聞かれました。
なおアンケートでは、全員の方に満足していただけたこと、理解いただけたことの一方で、時間配分についての課題もわかりました。今後の改善に生かしたいと思います。
講演資料は、下記にて閲覧できます。
オブジェクトの広場(株式会社オージス総研殿)
https://www.ogis-ri.co.jp/otc/hiroba/technical/crc-card-workshop/
UMTPでは、モデリング技術の普及・展開と実践の機会の提供として、今後も同様のセミナーを継続していく予定です。今回参加できなかった皆様、次回は是非参加し、更にモデリング技術を高め、いずれはL4認定という頂点をめざしてください。
2019年10月