SlideShare une entreprise Scribd logo
1  sur  30
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
いまさらアジャイル巡業 in Tokyo 2016
アジャイルモデリング ~ モデルと動くソフトウェアの狭間で ~
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 1
自己紹介
 はじめまして
– 氏名: 田上 悠樹
– 所属: ウルシステムズ株式会社
– お仕事:エンジニア。エンタープライズ案件(製造業 SCM)の開発をやってます。
– コメント:
『いまさらアジャイル巡業 シリーズ』は、2回目です。
『いまさらアジャイル巡業 in 広島』では、
Eric Evans 氏の 『ドメイン駆動設計(DDD)』について、お話しました。
本日は、 Scott W. Ambler氏 の 『アジャイルモデリング』について、お話します。
http://blue-wind.net/photoimage/242
ULS 2
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
Introduction
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 3
Introduction
 床屋での一幕
– いつもの床屋の場合
– 初めての床屋の場合
お客さん 床屋のご主人
いつもの
髪型で
あいよ!
確立された相互理解がある
要求 理解
髪型のイメージ
お客さん
(PO)
床屋のご主人
(開発者)
えっ~と、
どう伝えよう
う~ん、よう
分からん
表現しにくい要求 ..
ふわっとした相互理解 ..
1度髪を切ったら、やり直しは次回 ..
髪型のイメージ
要求 理解
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 4
Introduction
 床屋での一幕
– 幸い、髪型の見本帳がある。
つまり、
– 言語化しにくい要求は、モデルを介して相互理解を図った方が効率的。
– 髪を切る前にイメージを合わせておくことで、失敗や持ち越しのリスクを下げる。
– ソフトウェアの開発現場も、こうありたいものだ。
お客さん
(PO)
床屋のご主人
(開発者)
こんな
髪型で
ふむふむ、
あいよ!
モデルを介した相互理解
要求 理解
髪型の見本帳
ULS 5
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
モデリング
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 6
 モデリングとは
モデリング
モデリングは、調査対象になっているソフトウェアが持つ顕著な側面を表現することで、意思
決定を容易にし、その内容を利害関係者に対して伝達するための体系的な手法。
― SWEBOK の一文から要約
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 7
モデリングの意義
 モデリング原則
SWEBOKに「モデリング原則」という形でモデリングの意義が示されている。
(以下、かなり要約して紹介。詳しくはSWEBOK参照 )
プロジェクト関係者間で、要求や理解を効率的に情報伝達できれば無駄が減る。
結局は、プロジェクトファイナンスとして『お得』だからモデリングをする。
–本質をモデル化せよ
モデリングは、本質的でない情報から身を清めて、特定の側面について表現する。
–大局観を提供せよ
モデリングは、対象となっているソフトウェアに対して俯瞰的なビューを表現する。
–効果的な伝達を図れ
モデリングは、ソフトウェア情報を利害関係者に効果的に伝達する1つの報告手段。
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 8
ITシステムが持つ代表的な側面
 側面の分類
– 代表的な側面として、「振る舞い」「構造」「境界」「制約」が挙げられる。
振る舞い
システムが持つ挙動やフローといった動的側面を、イベントや時系列に沿って描写する。
– プロセス: 業務フロー、ユーザーストーリーマッピング、カスタマージャーニーマップ
– 相互作用: コミュニケーション図、シーケンス図
– 状態: 状態遷移図、タイミング図
構造
システムが持つ静的な構造側面を描写する。
– データ構造: 概念データモデル、論理データモデル、物理データモデル
– 配置構造: 配置図、コンポーネント図
– 組織構造: 利用部門の組織図、ユーザーロールマップ
制約
判断ルール、計算方式といったシステムが持つロジックを描写する。
– ルール: ビジネスルール、ディシジョンテーブル
境界
システムとユーザ間のタッチポントや、異なるシステム間同士など異種の接続を描写する。
– インターフェイス:ユーザーインターフェイス、外部インターフェイス仕様
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 9
 要求とシステム像のギャップをモデルで埋める
– ふわっとした要求に対して、モデルを介してギャップを埋めて、最終的なシステム像に
漸近的に近づけていく。
要求とモデルのループ
モデル
要求
顧客・PO 開発者
モデルによる会話
モデルによって可視化された
情報を効率的に伝達して、顧
客 ・PO– 開発者間での相互
理解を深める。
モデルによる表現
モデリングの原則に従い、要求
を本質的かつ大局的に表現して、
顧客が意思決定しやすいモデル
を作成する。
要求の伝達
源泉となる要求を伝える。こ
の時点では、レベル感(ビ
ジョンの話や、細かいビジネ
スルールの話など)は様々。
要求の理解
ふわっとした要求を受け止め、
要求のレベル感や側面を加味
して、表現するのに適したモ
デルを選ぶ。
システム像
要求 理解
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 10
疑問の声(1)
 でも、ちょっと待って
でも、モデルだけあってもね~。
イメージの限界があるわけで。。
結局さ、そのモデルは最終的に
どんなシステムや姿になんの?
絵に描いた餅?
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 11
モデルの限界
 そもそもモデルの表現に限界がある
– モデルは物事・現象のある側面を切り取って、理解したり、伝えたり、有意性を発見す
るのには役立つが、一方で、1つのモデルで全てを表現できるわけではない。
所詮、側面的な記述。実感が湧きづらい
 読み手に負荷を強いる
– モデル自体は実体を伴なわないので、読み手はモデルから実体をイメージする思考作業
を義務づけられる。書き手と読み手、読み手同士で思考に齟齬が生じる可能性もある。
イメージ作業は読み手に強く依存
 動かす前に作成するけど、動かしてみないと分からないジレンマ
– 逆説的だが、結局ソフトウェアとして実装してみないとモデルの妥当性は分からない。
最終的にはソフトウェアに依存
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 12
 コミュニケーションツールとしての動くソフトウェア
– アジャイル開発宣言で述べられている『動くソフトウェア』は、顧客・POと開発者間
での最もダイレクトなコミュニケーションツール。
– モデルで伝えきれない事に対しては、動くソフトウェアを使って伝える方が効率的。
(モデルで全てを効率的に伝えきれるという前提に立たない方がよい。)
– 特に、操作性やユーザー体験が重要なソフトウェアであれば、尚更。
「モデル」と「動くソフトウェア」を適所で組み合わせて、
効率的な情報伝達 や 正確な相互理解 へとつなげる。
やっぱり、動くソフトウェアも重要
モデル
動くソフト
ウェア
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 13
モデルか !? 動くソフトウェアか !?
モデル 動くソフトウェア
抽象的、概念的、俯瞰的 キーワード 具体的、実体感、直接的
直接、目で捉えられない全体像や
ルールを伝える面で優れている。
顧客への
伝達性
ソフトウェアの挙動や体験を確実に伝
えられる面で優れている。
簡単なモデルなら参加しやすいが、
専門的なモデルの場合は顧客にも一
定のモデル知識がないと成立しない。
顧客の
参加容易性
モデルに関する事前知識がなくとも、
直接的にソフトウェア挙動を体験でき
て意見交換にも参加しやすい。
相対的に小。
ミニマムだとホワイトボードにサッ
と描いたモデルで十分効果がある。
書き直し/使い捨ても比較的 簡単。
作成コスト
相対的に大。
ただし場合によっては、伝達が困難な
複雑なモデルを作成するよりもサッと
作成した方が早い場合もある。
「モデル」だけでは伝え切れないものがあり、
「動くソフトウェア」だけでは表現しきれないものもある。
お互いを補完して協調する手法の1つとして
「アジャイルモデリング」がある。
ULS 14
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
アジャイルモデリング
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 15
 アジャイルモデリング
– Scott W. Ambler氏が提唱しているモデリング手法。
(以降、AM=Agile Modeling と略す)
– 機敏にモデリングを実施していく上での、5つの価値、18の原則、21のプラクティスか
らなる心得集。RUP のようにプロセスや成果物を全て定義した包括的方法論ではない。
– 過剰にドキュメントやモデルを作成する派閥と、そんなの役に立たないと考える派閥の
間で、AMは程良くモデリングを行うためのやり方を提供。
– 本体のアジャイルプロセス(XP、Scrumなど)に合わせてプラガブルに適用して、要求
開発や設計の領域で本体を補完する関係。(非アジャイル系開発でも部分適用可)
概要
http://www.ambysoft.com/scottAmbler.html
http://www.shoeisha.co.jp/book/detail/9784798102634
アジャイル開発プロジェクト
メインを補完する
プラクティス群
メインの開発プロセス XP, Scrum, DAD …
AM XXツール XX
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 16
AMの価値・原則・プラクティス
AM 5つの価値
フィードバック 簡潔さコミュニケーション 勇気 謙虚さ
AM 18の原則
ソフトウェアが
第一のゴール
変化を受け入れよう複数のモデル 素早いフィードバック
利害関係者の投資を
最大限に活かそう
次の備えが第2のゴール身軽な旅 簡潔さを心がけよう 少しづつ変更する 質の高い仕事をしよう 見栄えより中身
目的を持って
モデリングしよう
誰しも他人から学べる モデルを知ろう 実状に合わせよう
オープンで正直な
コミュニケーション
直感に従って開発しよう 道具を知ろう
AM 21のプラクティス
複数のモデルを並行
して作ろう
少しずつモデリング
しよう
コードで確かめよう
取り決めモデルはきち
んと定義しよう
理解するために
モデリングしよう
中身はシンプルに
作ろう
適切な成果物を使おう 他の成果物に移ろう
他の人と一緒に
モデリングしよう
共同所有 モデルを公開しよう
モデルはシンプルに
書こう
テストできるか
考えよう
モデリング標準を
適用しよう
既にある資産を
再利用しよう
利害関係者の
積極的な参加
最も簡単な道具を使おう
パターンは控えめに
使おう
一時的なモデルは
捨てよう
話すためにモデリング
しよう
困ったときだけ
更新しよう
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 17
AMの価値
 AMの価値
– AMの根底にある哲学。
 ピックアップ
AM 5つの価値
フィードバック 簡潔さコミュニケーション 勇気 謙虚さ
– コミュニケーション:
AMが指すコミュニケーションとは、関係者間で効果的に情報を伝達すること。モデルを
作成する理由の1つが、まさにコミュニケーションを良くするため。
– フィードバック:
モデルが正しいかどうかは、フィードバックを通じてのみ確認することができる。
POや利用者からレビューを受けたり、モデルをソフトウェアとして実装して、実際に
使ってみてもらうとよい。
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 18
AMの原則
 AMの原則
– 上位価値に基づき、ソフトウェア開発で何をすべきかの具体的な指針。
 ピックアップ
AM 18の原則
ソフトウェアが
第一のゴール
変化を受け入れよう複数のモデル 素早いフィードバック
利害関係者の投資を
最大限に活かそう
次の備えが第2のゴール身軽な旅 簡潔さを心がけよう 少しづつ変更する 質の高い仕事をしよう 見栄えより中身
目的を持って
モデリングしよう
誰しも他人から学べる モデルを知ろう 実状に合わせよう
オープンで正直な
コミュニケーション
直感に従って開発しよう 道具を知ろう
–ソフトウェアが第一のゴール:
利害関係者のニーズを効果的に満たす高品質のソフトウェアを開発することが大事。我々
ソフトウェア開発者は、ドキュメント開発者でもモデル開発者でもない。
–複数のモデル:
モデルの種類は広範囲に存在するが、すべての状況に適用可能な単一の成果物というのは
ない。ソフトウェアを効果的に表現するには、複数のモデルを併用する必要がある。
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 19
AMのプラクティス
 AMのプラクティス
– AMの価値・原則から導かれる実際のプロジェクトで適用すべき手法。
 ピックアップ
AM 21のプラクティス
複数のモデルを並行
して作ろう
少しずつモデリング
しよう
コードで確かめよう
取り決めモデルはきち
んと定義しよう
理解するために
モデリングしよう
中身はシンプルに
作ろう
適切な成果物を使おう 他の成果物に移ろう
他の人と一緒に
モデリングしよう
共同所有 モデルを公開しよう
モデルはシンプルに
書こう
テストできるか
考えよう
モデリング標準を
適用しよう
既にある資産を
再利用しよう
利害関係者の
積極的な参加
最も簡単な道具を使おう
パターンは控えめに
使おう
一時的なモデルは
捨てよう
話すためにモデリング
しよう
困ったときだけ
更新しよう
– コードで確かめよう:
表現したモデルが大丈夫かどうか、対応するコードで実際に確かめる。
– 取り決めモデルはきちんと定義しよう:
異なるグループ間での連携仕様については、双方のグループ間での合意のもと、きっちり
と取り決めモデルを定義して、継続的にモデルを保守していく。
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 20
AM のスイートスポット
「モデル」と「動くソフトウェア」
の良い関係
とにかくドキュメントやモデル
の作成が信条の官僚スーツ族
ソースコード以外は役に立たない
という過激なギーク族
AMのスイート
スポット
持つべつ心得 持つべき心得
ドキュメントやモデルだけでは顧客に伝達し
きれない部分をソフトウェアで表現してみる。
情報伝達
目の前のソフトウェアだけでは伝えられない、
目に見えない動作、俯瞰的な要素も共有する。
ドキュメントやモデルを量産して自己満足し
ても駄目。最終的なゴールはソフトウェア。
ゴール意識
ゴールを外さないように、利害関係者の想い
を理解し、モデルを介して共通理解を持つ。
※ 上の二人の設定は、極端かもしれませんが、、、
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 21
疑問の声(2)
 でも、ちょっと待って
そりゃ~、モデルと動くソフト
ウェアの両方のアプローチとった
ほうが充実するよ。
けど、限られた時間で両方を
やるのは大変じゃない?
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 22
モデルの作成対象の方針
 作成対象の方針
AMではモデル作成対象について「これと、これを作れ」という具体的なルールはないが、
以下の方針が挙げられている。
– ちょうど必要な量だけのドキュメントやモデルを作成する
作る/作らない の二元論ではなく、プロジェクトに応じてちょうど必要な量を作成する。
但し、あくまでソフトウェアが第一のゴール。モデルだけでは価値を還元できない。
– 複数のモデルを作成する
1つのモデルで表現できる側面には限りがあるので、複数のモデルを適切に選択して、
相互補完するように表現する。(参考:AMで紹介されているモデル一覧を次頁記載。)
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 23
(参考) AM で紹介されているモデル一覧
UMLでお馴染みのモデルも含め広範囲にモデルとして紹介されている。
# モデル # モデル
1 アクティビティ図 (UML) 17 用語集
2 ビジネスルール定義 18 ネットワーク図
3 変更案 19 組織図
4 クラス図 (UML) 20 物理プロトタイプ
5 CRCカード 21 ロバストネス図
6 コラボレーション図 (UML) 22 シーケンス図 (UML)
7 コンポーネント図 (UML) 23 仕様言語 (OCL)
8 制約定義 24 ステートチャート図 (UML)
9 データ図 25 構造図
10 配置図 (UML) 26 システムユースケース
11 データフロー図 (DFD) 27 技術的要求事項
12 外部インターフェイス仕様 28 利用シナリオ
13
本質ユーザインターフェイス (UI)
プロトタイプ
29 ユースケース図 (UML)
14 本質ユースケース 30 ユーザーインターフェイスフロー図
15 開発項目 31 ユーザーインターフェイスプロトタイプ
16 フローチャート 32 ユーザーストーリー
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 24
疑問の声(3)
 でも、ちょっと待って
ちょうど必要な量と言うけれども、
それはプロジェクトによって異なる。
せめて、目安はないの?
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 25
 そもそも、何が把握できたらプログラムに落とせるのか?
– 要求の全体像(マクロの視点)
プロジェクトの大義(Why)を踏まえた上で、何(What)を、どう(How)作るか。
– 要求の各側面(ミクロの視点)
ソフトウェアを形づくる代表的な4つの側面。
プログラムに落とすための主要な材料
プログラムに落とすための材料
プログラム
振る舞い 構造
境界 制約
要求階層とモデル
ビジネス要求
業務要求
システム要求
Why: インセプションデッキ
What: 要求モデル
How: 設計モデル
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 26
 プログラムに落としこむのに必要な材料から考えてみた
– ちょうど必要な量 = 要求階層ごとに、4つの側面を表現できる量
– 8つのマスにどのモデル群を採用するかを判断する。8つのマスすべてを埋める必要も
ない。ただ、特定のマスだけにモデルが偏るのはバランスがよくない。
– 少ない手数で縦軸の4つ(振る舞い・構造・境界・制約)が埋まると効率的。
– 特に、設計モデルの作成量はチーム内で調整しやすいので、開発者間のあうんの呼吸で
理解が成立するなら削減OK。
ちょうど必要な量の目安
要求モデル
(主な会話相手:顧客・PO・開発者)
設計モデル
(主な会話相手:開発者)
振る舞い
構造
境界
制約
設計モデルは、作成量を調整しやすい
※ 各マスに入れているモデルは一例
ユーザーストーリーマッピング ロバストネス図
概念データモデル データモデル
ユーザーインターフェイスプロトタイプ 外部インターフェイス仕様
ビジネスルール ディシジョンテーブル
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 27
なんだかんだで、AMとは
「モデル」と「動くソフトウェア」を馴染ませるソフトウェア開発者のためのモデリング技法
アジャイルモデリング
• 伝達面でのお互いの長所・短所を補う
• モデリング作業と実装作業のバランス
モデル
動くソフト
ウェア
効率的な情報伝達
顧客・PO・開発者
ULS 28
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
Summary
ULS
Copyright © 2011-2016 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 29
Summary
 本日お話した内容:
– システム開発の現場では、言語化しにくい要求がたくさん存在する。
– そういった要求に対しては、モデリングというアプローチで要求を可視化して表現した
方が効果的で経済的。
– ただ、残念ながらモデルで全てを表せるわけではない。実際のソフトウェアになってみ
ないと判断しづらいポイントもある。
– そこで、「モデル」と「動くソフトウェア」と上手くバランスさせるモデリング技法
『 AM(Agile Modeling) 』の概要を紹介した。
– 最後に、「ちょうど必要な量のモデル」について、各観点の立場(振る舞い・構造・境
界・制約 × 要求・設計)をふまえて考えてみた。
以上、ご清聴ありがとうございました。
ページ中で利用したアイコン素材: http://icooon-mono.com/

Contenu connexe

Tendances

JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QJasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Yoshihito Kuranuki
 

Tendances (20)

第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
 
Coldfusionを活かすシステム企画をリーンスタートアップに学ぶ
Coldfusionを活かすシステム企画をリーンスタートアップに学ぶColdfusionを活かすシステム企画をリーンスタートアップに学ぶ
Coldfusionを活かすシステム企画をリーンスタートアップに学ぶ
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
 
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB
社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について45分拡大版 #devsumi #devsumiB
 
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
 
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
 
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化
 
Software Engineering And Role of Agile
Software Engineering And Role of AgileSoftware Engineering And Role of Agile
Software Engineering And Role of Agile
 
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
 
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
 
Future Tech Night Agile勉強会 20210709
 Future Tech Night Agile勉強会 20210709 Future Tech Night Agile勉強会 20210709
Future Tech Night Agile勉強会 20210709
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
 
新しい契約形態での受託開発サービス
新しい契約形態での受託開発サービス新しい契約形態での受託開発サービス
新しい契約形態での受託開発サービス
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QJasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
 
OSSで「脱下請け」のススメ ~OSC Tokyo 2014/Spring 講演資料~
OSSで「脱下請け」のススメ ~OSC Tokyo 2014/Spring 講演資料~OSSで「脱下請け」のススメ ~OSC Tokyo 2014/Spring 講演資料~
OSSで「脱下請け」のススメ ~OSC Tokyo 2014/Spring 講演資料~
 
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML55分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
 
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだことKPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
KPTの理論と実践 公開用 プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
 
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
 

En vedette

「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
Minoru Chikamune
 
150318 次世代itアーキテクトの本質と育成
150318 次世代itアーキテクトの本質と育成150318 次世代itアーキテクトの本質と育成
150318 次世代itアーキテクトの本質と育成
ITinnovation
 
seoworkprofile
seoworkprofileseoworkprofile
seoworkprofile
Jyoti JG
 
cv hussaini sayed zia EN
cv hussaini sayed zia ENcv hussaini sayed zia EN
cv hussaini sayed zia EN
Sz Hussaini
 
6-strokeengine
6-strokeengine6-strokeengine
6-strokeengine
Ravi Kumar
 

En vedette (19)

複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント複雑さに挑む!カンバンによるプロジェクト マネジメント
複雑さに挑む!カンバンによるプロジェクト マネジメント
 
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
 
Supersonic agile
Supersonic agileSupersonic agile
Supersonic agile
 
知働化フォーラム2015 0305
知働化フォーラム2015 0305知働化フォーラム2015 0305
知働化フォーラム2015 0305
 
150318 次世代itアーキテクトの本質と育成
150318 次世代itアーキテクトの本質と育成150318 次世代itアーキテクトの本質と育成
150318 次世代itアーキテクトの本質と育成
 
CÓMO CONSEGUIR TODAS TUS METAS CON LA MENTALIDAD DEL ÉXITO
CÓMO CONSEGUIR TODAS TUS METAS CON LA MENTALIDAD DEL ÉXITOCÓMO CONSEGUIR TODAS TUS METAS CON LA MENTALIDAD DEL ÉXITO
CÓMO CONSEGUIR TODAS TUS METAS CON LA MENTALIDAD DEL ÉXITO
 
seoworkprofile
seoworkprofileseoworkprofile
seoworkprofile
 
cv hussaini sayed zia EN
cv hussaini sayed zia ENcv hussaini sayed zia EN
cv hussaini sayed zia EN
 
CÓMO CREAR UN SERVICIO O PRODUCTO IRRESISTIBLE
CÓMO CREAR UN SERVICIO O PRODUCTO IRRESISTIBLECÓMO CREAR UN SERVICIO O PRODUCTO IRRESISTIBLE
CÓMO CREAR UN SERVICIO O PRODUCTO IRRESISTIBLE
 
CÓMO FIJAR EL PRECIO DE TU CURSO ONLINE
CÓMO FIJAR EL PRECIO DE TU CURSO ONLINECÓMO FIJAR EL PRECIO DE TU CURSO ONLINE
CÓMO FIJAR EL PRECIO DE TU CURSO ONLINE
 
6-strokeengine
6-strokeengine6-strokeengine
6-strokeengine
 
Practica calificada nº 02 quechua
Practica calificada nº 02 quechuaPractica calificada nº 02 quechua
Practica calificada nº 02 quechua
 
Trabajodiapositivas 120706150717-phpapp02
Trabajodiapositivas 120706150717-phpapp02Trabajodiapositivas 120706150717-phpapp02
Trabajodiapositivas 120706150717-phpapp02
 
Technologies
TechnologiesTechnologies
Technologies
 
Practica calificada n° 2 quechua
Practica calificada n° 2 quechuaPractica calificada n° 2 quechua
Practica calificada n° 2 quechua
 
Practica calificada nº 02 castellano
Practica calificada nº 02 castellanoPractica calificada nº 02 castellano
Practica calificada nº 02 castellano
 
Resume
ResumeResume
Resume
 
Practica calificada n°1
Practica calificada n°1Practica calificada n°1
Practica calificada n°1
 
Cosmic Weekend - Ludem Dare 33 Post-Mortem
Cosmic Weekend - Ludem Dare 33 Post-MortemCosmic Weekend - Ludem Dare 33 Post-Mortem
Cosmic Weekend - Ludem Dare 33 Post-Mortem
 

Similaire à いまさらアジャイル巡業 In Tokyo アジャイルモデリング

Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420
Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420
Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420
Koichiro Sumi
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
 
2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis
n-yuki
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
Yoshitaka Kawashima
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 

Similaire à いまさらアジャイル巡業 In Tokyo アジャイルモデリング (20)

Modeling Workshop
Modeling WorkshopModeling Workshop
Modeling Workshop
 
Semat - a Japanese introduction
Semat - a Japanese introductionSemat - a Japanese introduction
Semat - a Japanese introduction
 
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
 
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
 
Agile japan 2013 サテライト<名古屋> モデリング x アジャイル
Agile japan 2013 サテライト<名古屋> モデリング x アジャイルAgile japan 2013 サテライト<名古屋> モデリング x アジャイル
Agile japan 2013 サテライト<名古屋> モデリング x アジャイル
 
Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420
Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420
Spath Workshop | 世の中をより良くするアイデアを形に出来るようになる会議 β版 20130420
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
 
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ?UX/UI の違いと技術選択のポイントde:code2019 MW52 モバイルアプリ、SPA?ネイティブ?UX/UI の違いと技術選択のポイント
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
 
これからはじめるサービスデザイン
これからはじめるサービスデザインこれからはじめるサービスデザイン
これからはじめるサービスデザイン
 
Bee Style:vol.001
Bee Style:vol.001Bee Style:vol.001
Bee Style:vol.001
 
ユーザーストーリーワークショップ
ユーザーストーリーワークショップユーザーストーリーワークショップ
ユーザーストーリーワークショップ
 
Devsumi2013 community
Devsumi2013 communityDevsumi2013 community
Devsumi2013 community
 
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
 
2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
 
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Bee Style:vol021
Bee Style:vol021Bee Style:vol021
Bee Style:vol021
 
セレンディピティと機械学習
セレンディピティと機械学習セレンディピティと機械学習
セレンディピティと機械学習
 

Plus de Yuki Tagami

PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
Yuki Tagami
 
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
Yuki Tagami
 
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
Yuki Tagami
 
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
Yuki Tagami
 

Plus de Yuki Tagami (13)

グラフデータからの分析アプローチ
グラフデータからの分析アプローチグラフデータからの分析アプローチ
グラフデータからの分析アプローチ
 
Start Deep Reinforcement Learning with RL4J
Start Deep Reinforcement Learning with RL4JStart Deep Reinforcement Learning with RL4J
Start Deep Reinforcement Learning with RL4J
 
グラフアルゴリズムと機械学習の接点
グラフアルゴリズムと機械学習の接点グラフアルゴリズムと機械学習の接点
グラフアルゴリズムと機械学習の接点
 
PGX ユーザー勉強会 #15 LT Ant Colony Optimization
PGX ユーザー勉強会 #15 LT Ant Colony OptimizationPGX ユーザー勉強会 #15 LT Ant Colony Optimization
PGX ユーザー勉強会 #15 LT Ant Colony Optimization
 
RL4J で始める深層強化学習
RL4J で始める深層強化学習RL4J で始める深層強化学習
RL4J で始める深層強化学習
 
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
PGX ユーザー勉強会 #14 LT Built-in アルゴリズム ( Prim's Algorithm )
 
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )PGX ユーザー勉強会 #13  LT Built-in アルゴリズム( Topological Ordering Algorithm )
PGX ユーザー勉強会 #13 LT Built-in アルゴリズム( Topological Ordering Algorithm )
 
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
PGXユーザー勉強会#12_Built-in アルゴリズム(Label Propagation Algorithm)
 
Graph DB のユニークさについて考えてみた
Graph DB のユニークさについて考えてみたGraph DB のユニークさについて考えてみた
Graph DB のユニークさについて考えてみた
 
Graph DB のユニークさについて考えてみた
Graph DB のユニークさについて考えてみたGraph DB のユニークさについて考えてみた
Graph DB のユニークさについて考えてみた
 
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)
 
PGXユーザー勉強会#7_PGQL1.1事始め
PGXユーザー勉強会#7_PGQL1.1事始めPGXユーザー勉強会#7_PGQL1.1事始め
PGXユーザー勉強会#7_PGQL1.1事始め
 
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバースPgxユーザー勉強会#5 パスクエリを使ったトラバース
Pgxユーザー勉強会#5 パスクエリを使ったトラバース
 

いまさらアジャイル巡業 In Tokyo アジャイルモデリング

  • 1. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by いまさらアジャイル巡業 in Tokyo 2016 アジャイルモデリング ~ モデルと動くソフトウェアの狭間で ~
  • 2. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 自己紹介  はじめまして – 氏名: 田上 悠樹 – 所属: ウルシステムズ株式会社 – お仕事:エンジニア。エンタープライズ案件(製造業 SCM)の開発をやってます。 – コメント: 『いまさらアジャイル巡業 シリーズ』は、2回目です。 『いまさらアジャイル巡業 in 広島』では、 Eric Evans 氏の 『ドメイン駆動設計(DDD)』について、お話しました。 本日は、 Scott W. Ambler氏 の 『アジャイルモデリング』について、お話します。 http://blue-wind.net/photoimage/242
  • 3. ULS 2 Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by Introduction
  • 4. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 3 Introduction  床屋での一幕 – いつもの床屋の場合 – 初めての床屋の場合 お客さん 床屋のご主人 いつもの 髪型で あいよ! 確立された相互理解がある 要求 理解 髪型のイメージ お客さん (PO) 床屋のご主人 (開発者) えっ~と、 どう伝えよう う~ん、よう 分からん 表現しにくい要求 .. ふわっとした相互理解 .. 1度髪を切ったら、やり直しは次回 .. 髪型のイメージ 要求 理解
  • 5. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 Introduction  床屋での一幕 – 幸い、髪型の見本帳がある。 つまり、 – 言語化しにくい要求は、モデルを介して相互理解を図った方が効率的。 – 髪を切る前にイメージを合わせておくことで、失敗や持ち越しのリスクを下げる。 – ソフトウェアの開発現場も、こうありたいものだ。 お客さん (PO) 床屋のご主人 (開発者) こんな 髪型で ふむふむ、 あいよ! モデルを介した相互理解 要求 理解 髪型の見本帳
  • 6. ULS 5 Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by モデリング
  • 7. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6  モデリングとは モデリング モデリングは、調査対象になっているソフトウェアが持つ顕著な側面を表現することで、意思 決定を容易にし、その内容を利害関係者に対して伝達するための体系的な手法。 ― SWEBOK の一文から要約
  • 8. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 モデリングの意義  モデリング原則 SWEBOKに「モデリング原則」という形でモデリングの意義が示されている。 (以下、かなり要約して紹介。詳しくはSWEBOK参照 ) プロジェクト関係者間で、要求や理解を効率的に情報伝達できれば無駄が減る。 結局は、プロジェクトファイナンスとして『お得』だからモデリングをする。 –本質をモデル化せよ モデリングは、本質的でない情報から身を清めて、特定の側面について表現する。 –大局観を提供せよ モデリングは、対象となっているソフトウェアに対して俯瞰的なビューを表現する。 –効果的な伝達を図れ モデリングは、ソフトウェア情報を利害関係者に効果的に伝達する1つの報告手段。
  • 9. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 8 ITシステムが持つ代表的な側面  側面の分類 – 代表的な側面として、「振る舞い」「構造」「境界」「制約」が挙げられる。 振る舞い システムが持つ挙動やフローといった動的側面を、イベントや時系列に沿って描写する。 – プロセス: 業務フロー、ユーザーストーリーマッピング、カスタマージャーニーマップ – 相互作用: コミュニケーション図、シーケンス図 – 状態: 状態遷移図、タイミング図 構造 システムが持つ静的な構造側面を描写する。 – データ構造: 概念データモデル、論理データモデル、物理データモデル – 配置構造: 配置図、コンポーネント図 – 組織構造: 利用部門の組織図、ユーザーロールマップ 制約 判断ルール、計算方式といったシステムが持つロジックを描写する。 – ルール: ビジネスルール、ディシジョンテーブル 境界 システムとユーザ間のタッチポントや、異なるシステム間同士など異種の接続を描写する。 – インターフェイス:ユーザーインターフェイス、外部インターフェイス仕様
  • 10. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 9  要求とシステム像のギャップをモデルで埋める – ふわっとした要求に対して、モデルを介してギャップを埋めて、最終的なシステム像に 漸近的に近づけていく。 要求とモデルのループ モデル 要求 顧客・PO 開発者 モデルによる会話 モデルによって可視化された 情報を効率的に伝達して、顧 客 ・PO– 開発者間での相互 理解を深める。 モデルによる表現 モデリングの原則に従い、要求 を本質的かつ大局的に表現して、 顧客が意思決定しやすいモデル を作成する。 要求の伝達 源泉となる要求を伝える。こ の時点では、レベル感(ビ ジョンの話や、細かいビジネ スルールの話など)は様々。 要求の理解 ふわっとした要求を受け止め、 要求のレベル感や側面を加味 して、表現するのに適したモ デルを選ぶ。 システム像 要求 理解
  • 11. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 10 疑問の声(1)  でも、ちょっと待って でも、モデルだけあってもね~。 イメージの限界があるわけで。。 結局さ、そのモデルは最終的に どんなシステムや姿になんの? 絵に描いた餅?
  • 12. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 11 モデルの限界  そもそもモデルの表現に限界がある – モデルは物事・現象のある側面を切り取って、理解したり、伝えたり、有意性を発見す るのには役立つが、一方で、1つのモデルで全てを表現できるわけではない。 所詮、側面的な記述。実感が湧きづらい  読み手に負荷を強いる – モデル自体は実体を伴なわないので、読み手はモデルから実体をイメージする思考作業 を義務づけられる。書き手と読み手、読み手同士で思考に齟齬が生じる可能性もある。 イメージ作業は読み手に強く依存  動かす前に作成するけど、動かしてみないと分からないジレンマ – 逆説的だが、結局ソフトウェアとして実装してみないとモデルの妥当性は分からない。 最終的にはソフトウェアに依存
  • 13. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 12  コミュニケーションツールとしての動くソフトウェア – アジャイル開発宣言で述べられている『動くソフトウェア』は、顧客・POと開発者間 での最もダイレクトなコミュニケーションツール。 – モデルで伝えきれない事に対しては、動くソフトウェアを使って伝える方が効率的。 (モデルで全てを効率的に伝えきれるという前提に立たない方がよい。) – 特に、操作性やユーザー体験が重要なソフトウェアであれば、尚更。 「モデル」と「動くソフトウェア」を適所で組み合わせて、 効率的な情報伝達 や 正確な相互理解 へとつなげる。 やっぱり、動くソフトウェアも重要 モデル 動くソフト ウェア
  • 14. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 13 モデルか !? 動くソフトウェアか !? モデル 動くソフトウェア 抽象的、概念的、俯瞰的 キーワード 具体的、実体感、直接的 直接、目で捉えられない全体像や ルールを伝える面で優れている。 顧客への 伝達性 ソフトウェアの挙動や体験を確実に伝 えられる面で優れている。 簡単なモデルなら参加しやすいが、 専門的なモデルの場合は顧客にも一 定のモデル知識がないと成立しない。 顧客の 参加容易性 モデルに関する事前知識がなくとも、 直接的にソフトウェア挙動を体験でき て意見交換にも参加しやすい。 相対的に小。 ミニマムだとホワイトボードにサッ と描いたモデルで十分効果がある。 書き直し/使い捨ても比較的 簡単。 作成コスト 相対的に大。 ただし場合によっては、伝達が困難な 複雑なモデルを作成するよりもサッと 作成した方が早い場合もある。 「モデル」だけでは伝え切れないものがあり、 「動くソフトウェア」だけでは表現しきれないものもある。 お互いを補完して協調する手法の1つとして 「アジャイルモデリング」がある。
  • 15. ULS 14 Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by アジャイルモデリング
  • 16. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 15  アジャイルモデリング – Scott W. Ambler氏が提唱しているモデリング手法。 (以降、AM=Agile Modeling と略す) – 機敏にモデリングを実施していく上での、5つの価値、18の原則、21のプラクティスか らなる心得集。RUP のようにプロセスや成果物を全て定義した包括的方法論ではない。 – 過剰にドキュメントやモデルを作成する派閥と、そんなの役に立たないと考える派閥の 間で、AMは程良くモデリングを行うためのやり方を提供。 – 本体のアジャイルプロセス(XP、Scrumなど)に合わせてプラガブルに適用して、要求 開発や設計の領域で本体を補完する関係。(非アジャイル系開発でも部分適用可) 概要 http://www.ambysoft.com/scottAmbler.html http://www.shoeisha.co.jp/book/detail/9784798102634 アジャイル開発プロジェクト メインを補完する プラクティス群 メインの開発プロセス XP, Scrum, DAD … AM XXツール XX
  • 17. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 16 AMの価値・原則・プラクティス AM 5つの価値 フィードバック 簡潔さコミュニケーション 勇気 謙虚さ AM 18の原則 ソフトウェアが 第一のゴール 変化を受け入れよう複数のモデル 素早いフィードバック 利害関係者の投資を 最大限に活かそう 次の備えが第2のゴール身軽な旅 簡潔さを心がけよう 少しづつ変更する 質の高い仕事をしよう 見栄えより中身 目的を持って モデリングしよう 誰しも他人から学べる モデルを知ろう 実状に合わせよう オープンで正直な コミュニケーション 直感に従って開発しよう 道具を知ろう AM 21のプラクティス 複数のモデルを並行 して作ろう 少しずつモデリング しよう コードで確かめよう 取り決めモデルはきち んと定義しよう 理解するために モデリングしよう 中身はシンプルに 作ろう 適切な成果物を使おう 他の成果物に移ろう 他の人と一緒に モデリングしよう 共同所有 モデルを公開しよう モデルはシンプルに 書こう テストできるか 考えよう モデリング標準を 適用しよう 既にある資産を 再利用しよう 利害関係者の 積極的な参加 最も簡単な道具を使おう パターンは控えめに 使おう 一時的なモデルは 捨てよう 話すためにモデリング しよう 困ったときだけ 更新しよう
  • 18. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 17 AMの価値  AMの価値 – AMの根底にある哲学。  ピックアップ AM 5つの価値 フィードバック 簡潔さコミュニケーション 勇気 謙虚さ – コミュニケーション: AMが指すコミュニケーションとは、関係者間で効果的に情報を伝達すること。モデルを 作成する理由の1つが、まさにコミュニケーションを良くするため。 – フィードバック: モデルが正しいかどうかは、フィードバックを通じてのみ確認することができる。 POや利用者からレビューを受けたり、モデルをソフトウェアとして実装して、実際に 使ってみてもらうとよい。
  • 19. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 18 AMの原則  AMの原則 – 上位価値に基づき、ソフトウェア開発で何をすべきかの具体的な指針。  ピックアップ AM 18の原則 ソフトウェアが 第一のゴール 変化を受け入れよう複数のモデル 素早いフィードバック 利害関係者の投資を 最大限に活かそう 次の備えが第2のゴール身軽な旅 簡潔さを心がけよう 少しづつ変更する 質の高い仕事をしよう 見栄えより中身 目的を持って モデリングしよう 誰しも他人から学べる モデルを知ろう 実状に合わせよう オープンで正直な コミュニケーション 直感に従って開発しよう 道具を知ろう –ソフトウェアが第一のゴール: 利害関係者のニーズを効果的に満たす高品質のソフトウェアを開発することが大事。我々 ソフトウェア開発者は、ドキュメント開発者でもモデル開発者でもない。 –複数のモデル: モデルの種類は広範囲に存在するが、すべての状況に適用可能な単一の成果物というのは ない。ソフトウェアを効果的に表現するには、複数のモデルを併用する必要がある。
  • 20. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 19 AMのプラクティス  AMのプラクティス – AMの価値・原則から導かれる実際のプロジェクトで適用すべき手法。  ピックアップ AM 21のプラクティス 複数のモデルを並行 して作ろう 少しずつモデリング しよう コードで確かめよう 取り決めモデルはきち んと定義しよう 理解するために モデリングしよう 中身はシンプルに 作ろう 適切な成果物を使おう 他の成果物に移ろう 他の人と一緒に モデリングしよう 共同所有 モデルを公開しよう モデルはシンプルに 書こう テストできるか 考えよう モデリング標準を 適用しよう 既にある資産を 再利用しよう 利害関係者の 積極的な参加 最も簡単な道具を使おう パターンは控えめに 使おう 一時的なモデルは 捨てよう 話すためにモデリング しよう 困ったときだけ 更新しよう – コードで確かめよう: 表現したモデルが大丈夫かどうか、対応するコードで実際に確かめる。 – 取り決めモデルはきちんと定義しよう: 異なるグループ間での連携仕様については、双方のグループ間での合意のもと、きっちり と取り決めモデルを定義して、継続的にモデルを保守していく。
  • 21. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 20 AM のスイートスポット 「モデル」と「動くソフトウェア」 の良い関係 とにかくドキュメントやモデル の作成が信条の官僚スーツ族 ソースコード以外は役に立たない という過激なギーク族 AMのスイート スポット 持つべつ心得 持つべき心得 ドキュメントやモデルだけでは顧客に伝達し きれない部分をソフトウェアで表現してみる。 情報伝達 目の前のソフトウェアだけでは伝えられない、 目に見えない動作、俯瞰的な要素も共有する。 ドキュメントやモデルを量産して自己満足し ても駄目。最終的なゴールはソフトウェア。 ゴール意識 ゴールを外さないように、利害関係者の想い を理解し、モデルを介して共通理解を持つ。 ※ 上の二人の設定は、極端かもしれませんが、、、
  • 22. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 21 疑問の声(2)  でも、ちょっと待って そりゃ~、モデルと動くソフト ウェアの両方のアプローチとった ほうが充実するよ。 けど、限られた時間で両方を やるのは大変じゃない?
  • 23. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 22 モデルの作成対象の方針  作成対象の方針 AMではモデル作成対象について「これと、これを作れ」という具体的なルールはないが、 以下の方針が挙げられている。 – ちょうど必要な量だけのドキュメントやモデルを作成する 作る/作らない の二元論ではなく、プロジェクトに応じてちょうど必要な量を作成する。 但し、あくまでソフトウェアが第一のゴール。モデルだけでは価値を還元できない。 – 複数のモデルを作成する 1つのモデルで表現できる側面には限りがあるので、複数のモデルを適切に選択して、 相互補完するように表現する。(参考:AMで紹介されているモデル一覧を次頁記載。)
  • 24. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 23 (参考) AM で紹介されているモデル一覧 UMLでお馴染みのモデルも含め広範囲にモデルとして紹介されている。 # モデル # モデル 1 アクティビティ図 (UML) 17 用語集 2 ビジネスルール定義 18 ネットワーク図 3 変更案 19 組織図 4 クラス図 (UML) 20 物理プロトタイプ 5 CRCカード 21 ロバストネス図 6 コラボレーション図 (UML) 22 シーケンス図 (UML) 7 コンポーネント図 (UML) 23 仕様言語 (OCL) 8 制約定義 24 ステートチャート図 (UML) 9 データ図 25 構造図 10 配置図 (UML) 26 システムユースケース 11 データフロー図 (DFD) 27 技術的要求事項 12 外部インターフェイス仕様 28 利用シナリオ 13 本質ユーザインターフェイス (UI) プロトタイプ 29 ユースケース図 (UML) 14 本質ユースケース 30 ユーザーインターフェイスフロー図 15 開発項目 31 ユーザーインターフェイスプロトタイプ 16 フローチャート 32 ユーザーストーリー
  • 25. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 24 疑問の声(3)  でも、ちょっと待って ちょうど必要な量と言うけれども、 それはプロジェクトによって異なる。 せめて、目安はないの?
  • 26. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 25  そもそも、何が把握できたらプログラムに落とせるのか? – 要求の全体像(マクロの視点) プロジェクトの大義(Why)を踏まえた上で、何(What)を、どう(How)作るか。 – 要求の各側面(ミクロの視点) ソフトウェアを形づくる代表的な4つの側面。 プログラムに落とすための主要な材料 プログラムに落とすための材料 プログラム 振る舞い 構造 境界 制約 要求階層とモデル ビジネス要求 業務要求 システム要求 Why: インセプションデッキ What: 要求モデル How: 設計モデル
  • 27. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 26  プログラムに落としこむのに必要な材料から考えてみた – ちょうど必要な量 = 要求階層ごとに、4つの側面を表現できる量 – 8つのマスにどのモデル群を採用するかを判断する。8つのマスすべてを埋める必要も ない。ただ、特定のマスだけにモデルが偏るのはバランスがよくない。 – 少ない手数で縦軸の4つ(振る舞い・構造・境界・制約)が埋まると効率的。 – 特に、設計モデルの作成量はチーム内で調整しやすいので、開発者間のあうんの呼吸で 理解が成立するなら削減OK。 ちょうど必要な量の目安 要求モデル (主な会話相手:顧客・PO・開発者) 設計モデル (主な会話相手:開発者) 振る舞い 構造 境界 制約 設計モデルは、作成量を調整しやすい ※ 各マスに入れているモデルは一例 ユーザーストーリーマッピング ロバストネス図 概念データモデル データモデル ユーザーインターフェイスプロトタイプ 外部インターフェイス仕様 ビジネスルール ディシジョンテーブル
  • 28. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 27 なんだかんだで、AMとは 「モデル」と「動くソフトウェア」を馴染ませるソフトウェア開発者のためのモデリング技法 アジャイルモデリング • 伝達面でのお互いの長所・短所を補う • モデリング作業と実装作業のバランス モデル 動くソフト ウェア 効率的な情報伝達 顧客・PO・開発者
  • 29. ULS 28 Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by Summary
  • 30. ULS Copyright © 2011-2016 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 29 Summary  本日お話した内容: – システム開発の現場では、言語化しにくい要求がたくさん存在する。 – そういった要求に対しては、モデリングというアプローチで要求を可視化して表現した 方が効果的で経済的。 – ただ、残念ながらモデルで全てを表せるわけではない。実際のソフトウェアになってみ ないと判断しづらいポイントもある。 – そこで、「モデル」と「動くソフトウェア」と上手くバランスさせるモデリング技法 『 AM(Agile Modeling) 』の概要を紹介した。 – 最後に、「ちょうど必要な量のモデル」について、各観点の立場(振る舞い・構造・境 界・制約 × 要求・設計)をふまえて考えてみた。 以上、ご清聴ありがとうございました。 ページ中で利用したアイコン素材: http://icooon-mono.com/