アジャイル時代のモデリング
※本記事は、2022年8月に個人ブログ「ふじやまエッグのブリコルール日誌」に初出したものを、ブログ閉鎖にともない一部加筆・修正のうえ、こちらに転載したものです。
現場ですぐに適応できる 〜 『アジャイル時代のモデリング』
アジャイル開発の第一人者である平鍋 健児さんが、UMTP(UMLモデリング推進協議会)のセミナで行ったプレゼンテーションがとても良かった。
🎥 YouTubeで見る(平鍋健児氏「アジャイル時代のモデリング」)
(日本語)
アジャイル開発が導入されている中で、どのようにモデリングを使っていったらいいのか、というお話である。現在、アジャイル開発の主流となっているスクラムでも、ほとんど言及がされることがないモデリングに関して、とりあげています。
ここでは、ずばり、平鍋氏がアジャイル開発において、モデルをどうのように扱うのかを、具体的に明確に説明しているので、まとめてみた。
モデルは、Keeps と Temps にわける
アジャイルにおいては以下のふたつのモデルを使い分けることが大事である。
- Keeps: 財産として継続的に更新して維持するモデル
- Temps: 効果的にコミュニケーションを行うために使う臨時的なモデル

この「Keeps」と「Temps」をわけるアイデアは、本当に使えるアイデアである。
これはモデルだけに限らず、あらゆるソフトウェア開発で作成する文書にも言えることであると思う。常に最新の状態を維持し続ける「Keeps」、その場の関係者間のコミュニケーションのみに使われる「Temps」。多くの現場では、本来「Temps」でよいドキュメントをKeepし続けようとするところに悲劇が起きるのである。
では、”Keeps”するモデルには何があるか?
以下の3つである。
- Architecture: 全体システムの構造を表します。パッケージ図、クラス図が使われることが多い。
-
Domain Model: アプリケーション動作の問題領域に対する概念的な分類法を説明します。クラス図、ER図が使われることが多い。
ただ、用語集を作るだけでもいいと平鍋氏は述べています。その場合でも、日本語の他に英語を併記するように推奨しています。英語の表記がクラス名やエンティティ名になるため、翻訳揺れを防ぐためです。 - Key Use Case: ユーザの観点でシステムを表現します。ユースケース、シーケンス図、コミュニケーション図が使われることが多い。Key Use Case は、アーキテクチャを串刺しする代表的なものを選び、それを維持していきます。

”Temps”はどうやるのか?
これは、「Keeps」のモデルを印刷して、その上に議論しながら書き込んでいく、という方法でモデリングすることができます。または、ホワイトボードに書くこともできます。
結論
アジャイル開発だからといって、モデリングをすっ飛ばしていいわけではない。
かといって、スクラムは、モデルに関しては何も教えてくれない。
その“ミッシング・リンク”を埋める平鍋氏の講演および資料は、ソフトウェアエンジニアにとっての朗報であると思う。
私も、KeepsとTempsのモデリングを現場で実践していけたらと思う。
参考
- 🎥 YouTube: アジャイル時代のモデリング(平鍋健児氏)
- 📄 講演資料(UMTP公式PDF)
- 📰 InfoQ: アジャイル時代のモデリング(記事)
- 📝 Astah Blog: Modeling in the Agile Age
参照文献
以下は、平鍋氏の「アジャイル時代のモデリング」で紹介されている書籍です。
- The Unified Modeling Language User Guide (Volume 1)
- 日本語版『UMLユーザーガイド 第2版』
- The Unified Modeling Language Reference Manual (Volume 2)
- The UML Distilled (Volume 3)
- The Unified Modeling Language User Guide (Volume 4)
- The Unified Modeling Language User Guide (Volume 5)
- UMLモデリングのエッセンス 第3版(日本語訳)
- 実践UML モデル駆動開発入門
- アジャイルソフトウェア開発の奥義
- UML Distilled: A Brief Guide to the Standard Object Modeling Language
- Refactoring: Improving the Design of Existing Code
Discussion