52
アジャイル時代の アジャイル時代の モデリング モデリング 平鍋健児 平鍋健児 チェンジビジョン チェンジビジョン アジャイル時代の アジャイル時代の モデリング モデリング 平鍋健児 平鍋健児 チェンジビジョン チェンジビジョン

Modeling in the Agile Age - JP

Embed Size (px)

DESCRIPTION

アジャイル時代のモデリング

Citation preview

Page 1: Modeling in the Agile Age - JP

アジャイル時代のアジャイル時代のモデリングモデリング

平鍋健児平鍋健児チェンジビジョンチェンジビジョン

アジャイル時代のアジャイル時代のモデリングモデリング

平鍋健児平鍋健児チェンジビジョンチェンジビジョン

Page 2: Modeling in the Agile Age - JP

自己紹介

Page 3: Modeling in the Agile Age - JP

自己紹介• ㈱永和システムマネジメント

– 福井市(本社)、上野東京(支社)– Ruby と Agileを使ったシステム開発

• 株式会社チェンジビジョン– 福井市(開発部)、上野東京(本社)– astah* (旧:JUDE) の開発

• 平鍋健児– UML+マインドマップエディタ astah*の開発– 要求開発アライアンス、 事– 翻訳、XP関連書籍、『リーン開発の本質』

『IMPACT MAPPING』等多数。– 著書『アジャイル開発とスクラム』、『要求開発』

『ソフトウェア開発に つマインドマップ』

Page 4: Modeling in the Agile Age - JP

Agile と Design

Page 5: Modeling in the Agile Age - JP
Page 6: Modeling in the Agile Age - JP

“While code is the truth,it is not the whole truth.”

-Grady Booch

Page 7: Modeling in the Agile Age - JP

成長しつづけるが、一貫した美がある。

Page 8: Modeling in the Agile Age - JP

Design Upfront ?

NDUF BDUF

Page 9: Modeling in the Agile Age - JP

Agile Modeling

• By Scott Ambler

Page 10: Modeling in the Agile Age - JP

“Let’s keep the modeling baby but throw out the bureaucracy bathwater”

– Scott Ambler

Page 11: Modeling in the Agile Age - JP

なぜモデルを使うのか ?• 人間はイメージの方が概要をうまく

掴むことができる。–A picture is worth 1,000 words.–右脳と左脳

Page 12: Modeling in the Agile Age - JP
Page 13: Modeling in the Agile Age - JP

Elephant

Page 14: Modeling in the Agile Age - JP

どんなモデルがコードの次に必要か

Page 15: Modeling in the Agile Age - JP

問題• 「ビッグピクチャ」の 通

解をつくるために、一番シンプルな、モデルのセットとは何か?

Page 16: Modeling in the Agile Age - JP
Page 17: Modeling in the Agile Age - JP

“Keeps”• Architecture

• As Class/Package Diagrams

• Domain Model• As Class Diagram/ER Diagrams

• Key Use Cases• 1. As Use Case Diagrams• 2. As Sequence/Communication

Diagrams

Page 18: Modeling in the Agile Age - JP

“Temps”• Casual Modeling

• Ex. As Class+Sequence Diagrams, and others• “Keeps”の上に乗せる (ツールを使ったり、印刷の上に書いたり)• ホワイトボード!

Page 19: Modeling in the Agile Age - JP

“Keeps” (again)• Architecture

• As Class/Package Diagrams

• Domain Model• As Class Diagram/ER Diagrams

• Key Use Cases• 1. As Use Case Diagrams• 2. As Sequence/Communication

Diagrams

Page 20: Modeling in the Agile Age - JP

Architecture• システム全体の構造的な表現• 大域的な層やTierが表現されることが多く、

クラス図やパッケージ図がよく使われる。• よく知られたパターンが存在する。

– MVC, Blackboard, Pipes-Filters, Layers• 「フレームワーク」を使うのもアーキテク

チャ選択の1つ。

Page 21: Modeling in the Agile Age - JP

Pattern-Oriented Software Architecture (Vol.1-5)

• By Frank Buschmann et. al

Page 22: Modeling in the Agile Age - JP

“Architecture”の責務責務責務責務

依存関係依存関係依存関係依存関係

Page 23: Modeling in the Agile Age - JP

ドメインモデル• 問題 域(ドメイン)の概 とそれらの がり• 人間のコミュニケーション・レベル

– 全ステークホルダーが話す語彙。– ユーザー、ドメインの専門家、ビジネス分析、開発者

• プログラミング・レベル– コードを構成する要素(クラス、データ、操作、ファイ

ル、、、、)の「名前づけ」– それらの多くが永続データ(entity)にマッピングされる。

Page 24: Modeling in the Agile Age - JP

Domain-Driven Design

• By Eric Evans• Ubiquitous Language

Page 25: Modeling in the Agile Age - JP

“Domain Model”の

Page 26: Modeling in the Agile Age - JP

「寿司」のドメインモデル

Page 27: Modeling in the Agile Age - JP
Page 28: Modeling in the Agile Age - JP
Page 29: Modeling in the Agile Age - JP
Page 30: Modeling in the Agile Age - JP

Key UseCases1. ユーザーから たシステムの代表的な使い方

• 誰がユーザーで、何がうれしいか。2. そのゴールを得るまでのアーキテクチャを貫

通するメカニズム• シーケンス図やコミュニケーション図によって

かれる、 の れ。• 開発者には 的な となる。

Page 31: Modeling in the Agile Age - JP

“Key UseCases”のユーザー(役割)ユーザー(役割)ユーザー(役割)ユーザー(役割)

典型的な使い方典型的な使い方典型的な使い方典型的な使い方

この例だけこの例だけこの例だけこの例だけメカニズムがあるメカニズムがあるメカニズムがあるメカニズムがある

Page 32: Modeling in the Agile Age - JP

“Key UseCases”の (メカニズム)

Page 33: Modeling in the Agile Age - JP

“Keeps”上に“Temps”を重ねる

Page 34: Modeling in the Agile Age - JP

Scaling

Page 35: Modeling in the Agile Age - JP

Scaling

• By Craig Larman + Bas Vodde

Page 36: Modeling in the Agile Age - JP

“Rather than divide and conquer, an XP team conquers and divides”

–Kent Beck

Page 37: Modeling in the Agile Age - JP
Page 38: Modeling in the Agile Age - JP
Page 39: Modeling in the Agile Age - JP

“Model to have a conversation.”

–Craig Larmanand Bas Vodde

Page 40: Modeling in the Agile Age - JP
Page 41: Modeling in the Agile Age - JP

他に Keepすべきもの

Page 42: Modeling in the Agile Age - JP

Others to Keep• 設計の (WHY’s)

– 意 の リスト– なぜこのフレームワークを選んだか。– なぜこのテクノロジを選んだか。– なぜこの設計、アーキテクチャなのか。

• テスト– API as Acceptance Test Interface

• しかし、… 「人」“People” なのだ…

Page 43: Modeling in the Agile Age - JP

“A lot of design information lives in tribal memory.”

–Grady Booch

Page 44: Modeling in the Agile Age - JP

式 (Shikinen-Sengu)

Page 45: Modeling in the Agile Age - JP

Tips

Page 46: Modeling in the Agile Age - JP

Tips• プロジェクタ

– ツールとホワイトボードを組み合わせて• ふりかえり

– 自分たちのベスト “Keeps” セットをさがせ。• リバースエンジニアリング

– 現在のコードベースを可視化。• マインドマップ

Page 47: Modeling in the Agile Age - JP

ふりかえり• Keepするモデルは文脈依存する• やってみてチームで合意。

ふりかえりがカイゼンを導くふりかえりがカイゼンを導くふりかえりがカイゼンを導くふりかえりがカイゼンを導く

Keep

Problem

Try

新しい問題! 新しいアイディア!

解決法

やってみて

うまく行った

うまく行かない

定着

Page 48: Modeling in the Agile Age - JP

Mindmap Modeling

Page 49: Modeling in the Agile Age - JP

Impact Mapping

Page 50: Modeling in the Agile Age - JP

まとめ• 設計はソフトウェア開発においてこれまでもっとも大事な

部分であるし、アジャイル開発でも、もっとも大事な部分であり続けている。

• もっともシンプルなモデルセットを選び、それらをメンテナンスする。そして他のものはコードとテストにしてしまう。

• 自分たちのKeepをさがせ。• 会話のためにモデルを• “Divide and Conquer” でなく

“Conquer THEN Divide”• 式化しにくいアイディアには、マインドマップを 。

Page 51: Modeling in the Agile Age - JP

Search: InfoQ Kenji

Page 52: Modeling in the Agile Age - JP