UML モデリング
勉強会ガイド

本書は、UML モデルカタログを使って勉強会を開催するためのUMTP 組込みガイドです。本書と UML モデルカタログを利用して、勉強会を開

モデリング部会

催し、スキルアップを図ってください。
2016.5.15 更新

Copyright(c)2014-2016 consortium for UML based Modeling Technologies Promotion All Rights Reserved

組込み分野のための UML モデルカタログ

UMTP は特定非営利活動法人 UML モデリング推進協議会の登録商標です。その他、本書に記載されている会社名、商品名などは、一般に各社の商標または登録商標です。

2

勉強会ガイド目

次はじめに .................................................................................................... 4
勉強会コース一覧......................................................................................... 5
分析体験コース ........................................................................................... 6
第 1 回 .................................................................................................... 8
第 2 回 .................................................................................................. 10
第 3 回 .................................................................................................. 12
分析実践コース ......................................................................................... 13
第 1 回 .................................................................................................. 15
第 2 回 .................................................................................................. 17
第 3 回 .................................................................................................. 19
第 4 回 .................................................................................................. 21
第 5 回 .................................................................................................. 23
第 6 回 .................................................................................................. 25
おすすめカタログ....................................................................................... 26
運営上のアドバイス .................................................................................... 27
参考文献 .................................................................................................. 29
付録：ユースケース記述のテンプレート .......................................................... 30
付録：勉強会の例....................................................................................... 31
交通 IC カードチャージ機の要求仕様 ............................................................ 31
オブジェクト候補を記入したリスト ............................................................. 35
作成したモデル ....................................................................................... 37

3

組込み分野のための UML モデルカタログ

はじめに
本書は、UML モデルカタログを使って勉強会を開催するためのガイドです。
UML モデルカタログには、利用例として、モデリング技法の解説や演習問題の題材として使用する例が挙げられています。本書では、さらに具体的に、UML モデルカタログを題材として、実際にモデリングを行う勉強会を開催する方法を説明します。
本書の対象読者は、社内で教育を主催する方、グループなどでスキルアップを図ろうと思っている方、講師を行う方などを想定しています。しかし、勉強会の方法自体は、社内に限定されるものではないので、社外のコミュニティなどでも使用することができます。
勉強会を開催するには、参加者の参加時間を確保することも障壁の一つですが、資料の準備が大きな障壁となります。しかし、UML モデルカタログを使用することにより、準備を短時間で行うことができます。
さらに、本書を利用することにより、勉強会をより容易に開催することができます。
なお、勉強会の題材はカタログに限定されるものではないので、実際に業務に使用している資料を使うと、受け入れやすいものになります。ただし、カタログに類似した資料を準備する必要があります。

付属文書について付録に記載したテンプレートや資料をダウンロードすることができます。UMTP サイト(http://www.umtp-japan.org/)の「UMTP について」→「活動報告」→「組込みモデリング部会」のページで、本ガイドの各種付属文書(WorkshopDocuments.zip)として提供しています。
内容は以下の通りです。


ユースケース記述テンプレート.doc (各モデル解説書で使用しているユースケース記述のテンプレー
ト)

オブジェクト候補リストテンプレート.xls (分析体験コースのインプットとする「オブジェクト候補を記入したリスト」のテンプレート)

交通 IC カードチャージ機要求仕様.pdf (『勉強会実践ワークショップ』で使用した要求仕様。モデル解説書『交通 IC カードチャージ機』からの抜粋)



交通 IC カードチャージ機オブジェクト候補.pdf (『勉強会実践ワークショップ』で配布したオブジ
ェクト候補を記入したリスト)

はじめに

4

勉強会ガイド

勉強会コース一覧
コース名

対象者

目標

概要

時間

分析体験
コース

座学で分析を学習した方(初学者)

分析の大まかな流れを習得

本コースは、モデリングの中心となる分析を体験してみるコースです。
入門として位置付けられます。

2 時間×3 回

分析実践
コース

分析を行ったことのある方(『分析体験
コース』受講相当)クラスを抽出、静的モ
デルと動的モデルの整合性などモデルの質を高めるやり方を習得

本コースは、モデリングの中心となる分析をしっかり行うコースです。
分析スキルの向上を目指します。

2 時間×6 回

第1回

第2回

第3回

分析モデル
(静的モデル)の作成

分析モデル(動的モデル)の作成

振り返り

図1 分析体験コースの概要スケジュール

第1回

第2回

第3回

第4回

第5回

第6回

ユースケース
モデルの作成クラスの抽出、
ドラフトクラス
図の作成

分析モデル(静的モデル)の作成

分析モデル(動的モデル)の作成

モデルの洗練振り返り

図2 分析実践コースの概要スケジュール

5

組込み分野のための UML モデルカタログ

分析体験コース

概要
本コースは、モデリングの中心となる分析を体験してみるコースで、入門として位置付けられます。座学で分析を学習した方(初学者)が、分析を体験し、分析の大まかな流れを習得します。分析モデルの静的モ
デルと動的モデルを作成し、振り返りを行います。

オブジェクト
候補を記入し
たカード

カタログの
要求仕様と
ユースケース
モデル

第1回
分析モデル
(静的モデル)
の作成

第2回
分析モデル
(静的モデル)

分析モデル(動的モデル)
の作成

第3回

カタログの
分析モデル

振り返り

分析モデル
(動的モデル)振り返りのドキュメント図3 分析体験コースの概略

対象者

UMTP L1-L2(相当)

座学で分析を学習した方(初学者)目標

分析の大まかな流れを習得

人数

受講者はグループに分かれ、1 グループは 4-5 名とする

講師(レビューア)が 1 グループに 1 名いれば、きめ細かいアドバイスができる。講師(レビューア) 1
名で 4 グループ程度まで可能。

概略スケジュール
分析体験コース6

勉強会ガイド

#

時間

内容

第1回

2 時間

分析モデル(静的モデル) の作成

第2回

2 時間

分析モデル(動的モデル)の作成

第3回

2 時間

振り返り

7

第1回

組込み分野のための UML モデルカタログ

第1回
概要
要求仕様とユースケースモデルを元に分析モデル(静的モデル)を作成します。モデル作成初学者のために
オブジェクト候補を記入したリスト(カード)を使用することで難易度をやさしくしています。

オブジェクト
候補を記入し
たカード

カタログの
要求仕様と
ユースケース
モデル

第1回
分析モデル
(静的モデル)
の作成

第2回
分析モデル
(静的モデル)

分析モデル(動的モデル)
の作成

第3回

カタログの
分析モデル

振り返り

受講者へのインプット

カタログの要求仕様とユースケースモデル



オブジェクト候補を記入したリスト(カード)※カタログの静的モデルから抽出した適切なものと、要求仕様から単に名詞を抽出した不適切なものの両方を記入すること。



分析モデル
(動的モデル)振り返りのドキュメント

作成するもの(アウトプット)
分析モデル(静的モデル)



オブジェクト図



クラス図(モデル解説書(備考参照))

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

10 分

各自でカタログの要求仕様とユースケースモデルを読む。

3

10 分

グループでカタログの要求仕様とユースケースモデルについて不明点や疑問点を指摘し、ディ
スカッションを行い、仕様を確認する。

4

75 分

グループで分析モデル(静的モデル)を作成する。ディスカッションしながら、モデルをホワイ
トボードまたはホワイトシートに描く。なお、時間が短いので、モデルの質が十分にならない
ことはやむを得ない。

5

15 分

モデルを貼り出して、別グループのモデルを見て回る。または発表・質疑応答を行う。

分析体験コース8

勉強会ガイド

作成方法
さまざまな方法があります。ここでは、典型的な方法を簡単に紹介します。

オブジェクトはモノやコト(概念)で、名詞として表現される(ことが多い)ので、文章の名詞に着目する名詞句抽出法が多く用いられます。
インプットで与えられたドメイン(問題領域)を十分に説明できるようなクラスを抽出し、クラス図としてまとめます。

クラス図の作成(i) インプットのオブジェクト候補を記入したリスト(カード)からドメイン(問題領域)を十分に説明できる
ようなクラスを抽出する。
(ii) クラスの関係性を考え、クラス図に整理する。

オブジェクト図の作成
クラス図は抽象度が高いため、分かり難い面があります。オブジェクト図を作成して、確認またはクラス図の不備を見つけます。
(i) どのような場面のオブジェクト図を作成するかを決める。ユースケースシナリオのある場面やシステムの初期化が終了したときなどが考えられる。
(ii) 具体的なオブジェクトを作成し、リンクで結び、オブジェクト図を作成する。

参考文献
さらに知りたい方は、以下を参照してください。
『豆蔵セミナーライブオンテキスト (2) すいすい習得

UML モデリング』[岡村 2006]『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『かんたん UML 入門』[竹政ら 2013]『思考系 UML モデリング 即効エクササイズ モデ力を鍛える 13 の自主トレメニュー』[渡辺ら 2004]

備考
この第一回に相当する勉強会を、本部会が 2013 年 12 月 6 日、オージス総研殿(東京 品川)にて、開催しました。資料を「付録：勉強会の例」に掲載しました。参照してください。
この勉強会でも配布しましたが、モデル解説書を配布すると、参考になります。

9

第1回

組込み分野のための UML モデルカタログ

第2回
概要
要求仕様とユースケースモデルと第 1 回で作成した分析モデル(静的モデル)を元に分析モデル(動的モデル)を作成します。ユースケースを実現するシーケンス図またはコミュニケーション図、システムやクラスの状態マシンなどを作成します。

オブジェクト
候補を記入し
たカード

カタログの
要求仕様と
ユースケース
モデル

第1回
分析モデル
(静的モデル)
の作成

第2回
分析モデル
(静的モデル)

分析モデル(動的モデル)
の作成

第3回

カタログの
分析モデル

振り返り

受講者へのインプット

カタログの要求仕様とユースケースモデル



第 1 回で作成した分析モデル(静的モデル)

分析モデル(動的モデル)振り返りのドキュメント

作成するもの(アウトプット)
分析モデル(動的モデル)



シーケンス図

コミュニケーション図

状態マシン図(アクティビティ図(備考参照))

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

15 分

(復習を兼ねて)作成する分析モデル(動的モデル)で作成する題材を決める。例えば、まずグループでディスカッションを行い、候補を出し、全体で決める。題材としては、(1)ユースケースを実現するシーケンス図またはコミュニケーション図、(2)システムやオブジェクトの状態マシンなど。(1)と(2)それぞれ 1 個程度を目安とする。

3

75 分

グループで分析モデル(動的モデル)を作成する。モデルは、ホワイトボードまたはホワイトシートに描く。

4

15 分

モデルを貼り出して、別グループのモデルを見て回る。または発表・質疑応答を行う。

分析体験コース10

勉強会ガイド

作成方法

分析モデル(動的モデル)の作成

ユースケースを実現するシーケンス図またはコミュニケーション図
クラスの操作の抽出とユースケースの実現性の検証のため、ユースケース記述のイベントフローまたは
シナリオに相当するシステム内部の相互作用を記述するシーケンス図またはコミュニケーション図を作成します。
(i) イベントフローまたはシナリオは、一般的に
1. アクターは○○を○○する。
2. (その応答として)システムは○○を○○する。
の繰り返し構造にするので、この 1.と 2.の間を実現するシステム内のオブジェクト間のメッセージを考える。前回作成したクラス図のクラスを登場人物として、シーケンス図またはコミュニケーション図を作成する。
(ii) 上記を繰り返して、イベントフローまたはシナリオのシーケンス図またはコミュニケーション図を完成させる。

システムやクラスの状態マシン図(i) 状態を識別する。処理の流れ(手順)ではなく、何かがができる/できない、ロジックが変化する、など性質の変化を状態とする。
(ii) イベントを識別する。状態の変化を引き起こすような、外部の出来事や、時間経過をイベントとする。
(iii) 状態の遷移を状態マシン図で整理する。
(iv) 状態遷移に伴う処理を記述し、振る舞いを詳細化する。

参考文献
さらに知りたい方は、以下を参照してください。
『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『かんたん UML 入門』[竹政ら 2013]

備考
分析体験コースの第 2 回と分析実践コースの第 4 回は同じ内容です。
アクティビティ図は手続き的な流れを記述するもので、ユースケースの業務フローの記述には用いられることがありますが、システム内部のオブジェクトの相互作用を記述する動的モデルでは、あまり使用されません。オブジェクトの相互作用があまりない場合や、手続きが複雑な場合に使用するのは有効と思われま
す。

11

第2回

組込み分野のための UML モデルカタログ

第3回
概要
作成した分析モデルとカタログのモデルを比較し、ディスカッションを行い、理解を深めます。また勉強会全体の振り返りを行います。

オブジェクト
候補を記入し
たカード

カタログの
要求仕様と
ユースケース
モデル

第1回
分析モデル
(静的モデル)
の作成

第2回
分析モデル
(静的モデル)

分析モデル(動的モデル)
の作成

第3回

カタログの
分析モデル

振り返り

受講者へのインプット

カタログ(モデル解説書)の分析モデル



第 1 回で作成した分析モデル(静的モデル)



第 2 回で作成した分析モデル(動的モデル)

分析モデル(動的モデル)振り返りのドキュメント

作成するもの(アウトプット)

振り返りのドキュメント

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

20 分

各自でカタログの分析モデルを読む。

3

30 分

分析モデル(静的モデル)について、グループでカタログのモデルの疑問点や作成したモデルとの相違点を指摘し、ディスカッションを行う。

4

30 分

分析モデル(動的モデル)について、グループでカタログのモデルの疑問点や作成したモデルとの相違点を指摘し、ディスカッションを行う。

20 分

KPT フレームワーク※などを用いて、勉強会全体の振り返りを行う。

※KPT フレームワーク：
振り返りを「Keep：継続すること、よかったこと」、「Problem：問題点、改善を要すること」、「Try：次の挑戦したいこと、改善事項」の 3 つの観点で行う。『プロジェクトファシリテーション実践
編：ふりかえりガイド』[天野 2013]参照。

分析体験コース12

勉強会ガイド

分析実践コース

概要
本コースは、モデリングの中心となる分析をしっかり行うコースです。分析スキルの向上を目指します。
クラスを抽出、静的モデルと動的モデルの整合性などモデルの質を高めるやり方を習得します。ユースケー
スモデル、分析モデルの静的モデルと動的モデルを作成し、モデルの洗練、振り返りを行います。

カタログの
要求仕様

ユースケース記述
テンプレート

第1回
ユースケースモデル

ユースケース
モデルの作成

A

第2回

ドラフト
クラス図

クラスの抽出、
ドラフトクラス
図の作成

A

第3回

B

分析モデル
(静的モデル)
の作成

A
第4回
分析モデル
(動的モデル)

分析モデル(静的モデル)

分析モデル(動的モデル)の作成

第5回
モデルの洗練
A
B
第6回
カタログの
モデル

振り返り

振り返りの
ドキュメント

図4 分析実践コースの概要

対象者


UMTP L1-L2(相当)

分析を行ったことのある方(『分析体験コース』受講相当)

13

第3回

組込み分野のための UML モデルカタログ

目標


クラスを抽出、静的モデルと動的モデルの整合性などモデルの質を高めるやり方を習得

人数

受講者は、グループに分かれ、1 グループは、4-5 名とする

講師(レビューア)が 1 グループに 1 名いれば、きめ細かいアドバイスができる。講師(レビューア) 1
名で、4 グループ程度まで可能。

概略スケジュール
#

時間

内容

第1回

2 時間

ユースケースモデルの作成

第2回

2 時間

クラスの抽出、ドラフトクラス図の作成

第3回

2 時間

分析モデル(静的モデル) の作成

第4回

2 時間

分析モデル(動的モデル)の作成

第5回

2 時間

モデルの洗練

第6回

2 時間

振り返り

分析実践コース14

勉強会ガイド

第1回
概要
ユースケースモデルを作成します。カタログの要求仕様を参照して、ユースケース図とユースケース記述を作成します。

カタログの
要求仕様

ユースケース記述
テンプレート

第1回
ユースケースモデル

ユースケース
モデルの作成受講者へのインプット

カタログの要求仕様

ユースケース記述 テンプレート

作成するもの(アウトプット)
ユースケースモデル

ユースケース図

ユースケース記述

テンプレート

ユースケース記述(「付録：ユースケース記述のテンプレート」参照)

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

5分

各自でカタログの要求仕様を読む。

3

5分

グループでカタログの要求仕様について不明点や疑問点を指摘し、ディスカッションを行い、仕様を確認する。

430 分

グループでユースケース図を作成する。ディスカッションしながら、モデルをホワイトボード
またはホワイトシートに描く。

55分

モデルを貼り出して、別グループのモデルを見て回る。または発表(・質疑応答)を行う。

6

5分

作成するユースケース記述を決める。複数のものを見る方がよいので、個人(またはグループ)
で分担して、ユースケース記述を作成する。また、同じユースケースを異なる人(またはグループ)が作成したユースケース記述も参考になるので、適宜分担を決めること。

7

45 分

ユースケース記述を作成する。ディスカッションしながら、記述をホワイトボード・ホワイト
シートに書く。または PC を使用して書く。

8

15 分

ユースケース記述を貼り出して、それぞれを見比べる。または発表・質疑応答を行う。

15

第1回

組込み分野のための UML モデルカタログ

作成方法
さまざまな方法があります。ここでは、典型的な方法を簡単に紹介します。

ユースケース図(i) アクターを見つける。ブレインストーミングを行い、システムを利用するのは誰(何)か、システムに情報を入出力するのは誰(何)か、などを考え、アクターを見つける。
(ii) ユースケースを見つける。ブレインストーミングを行い、アクターが行いたいことは何か、アクターはどのようにシステムを利用するのか、などを考え、システムのサービス(ユースケース)を見つける。
(iii) アクターとユースケースをユースケース図として整理する。アクターとユースケースを分かりやすいように配置し、関連を引く。

ユースケース記述
テンプレート(「付録：ユースケース記述のテンプレート」参照)を用いてユースケース記述を記述する。
(i) ユースケース名、概要、アクターを記述する。
(ii) メインフローを記述する。アクターとシステムのやり取り(相互作用)を、アクターに見えるレベル(設計レベルのシステムの内部動作は考えない)で記述する。
(iii) 事前条件、事後条件、代替フローの条件、例外フローの条件を記述する。
(iv) 代替フローのイベントフロー 、例外フローのイベントフローを記述する。
(v) ユースケースシナリオを記述する。

参考文献
さらに知りたい方は、以下を参照してください。
『豆蔵セミナーライブオンテキスト (2) すいすい習得

UML モデリング』[岡村 2006]『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『かんたん UML 入門』[竹政ら 2013]『ユースケース実践ガイド』[コーバーン 2001]

分析実践コース16

勉強会ガイド

第2回
概要
要求仕様と第 1 回で作成したユースケースモデルを元にドラフトクラス図※を作成します。
※ドラフトクラス図：クラス名とクラスの関係程度が記述されたクラス図

カタログの
要求仕様

ユースケース
モデル

第2回
ドラフト
クラス図

クラスの抽出、
ドラフトクラス
図の作成

受講者へのインプット

カタログの要求仕様



第 1 回で作成したユースケースモデル

作成するもの(アウトプット)

ドラフトクラス図

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

10 分

(復習)各自でカタログの要求仕様とユースケースモデルを読む。

3

35 分

グループでオブジェクト(クラス)候補を抽出する。ディスカッションしながら、オブジェクト(クラス)となりそうな候補を出して、ホワイトボードまたはホワイトシートに描く。オブジェ
クト(クラス)は、オブジェクト図(クラス図)を描いてもよいし、ポンチ絵、単語の羅列でもよい。
なお、参加者のスキルなどに応じて、個人で 15 分モデリングを行ってから、グループで 20 分
モデリングを行ってもよい。

4

50 分

グループでドラフトクラス図を作成する。ディスカッションしながら、オブジェクト・クラス
候補からクラスを導き出し、ホワイトボードまたはホワイトシートに描く。
なお、参加者のスキルなどに応じて、個人で 20 分モデリングを行ってから、グループで 30 分
モデリングを行ってもよい。

5

15 分

モデルを貼り出して、別グループのモデルを見て回る。または発表・質疑応答を行う。

17

第2回

組込み分野のための UML モデルカタログ

作成方法
さまざまな方法があります。ここでは、典型的な方法を簡単に紹介します。

オブジェクトはモノやコト(概念)で、名詞として表現される(ことが多い)ので、文章の名詞に着目する名詞句抽出法が多く用いられます。
インプットで与えられたドメイン(問題領域)を十分に説明できるようなクラスを抽出し、クラス図としてまとめます。

オブジェクト(クラス)候補の抽出(i) インプットの要求仕様やユースケースモデル、問題記述と呼ばれる対象を説明する文書1から名詞を抜き出す。
(ii) モノ・コト(概念)・バ(場)ではないもの、曖昧なもの、属性にしかならないもの2、などのオブジェクト(クラス)候補にふさわしくないものを除外する。
(iii) オブジェクト(クラス)候補をオブジェクト図(クラス図)、ポンチ絵にまとめる。または単語リストでもよい。

ドラフトクラス図(i) オブジェクト(クラス)候補がインスタンスなのか、クラスなのかを考え、クラスを導き出す。この際に、同じようなものは、グルーピングして統合する。
(ii) クラスの関係性を考え、クラス図に整理する。

参考文献
さらに知りたい方は、以下を参照してください。
『豆蔵セミナーライブオンテキスト (2) すいすい習得

UML モデリング』[岡村 2006]『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『かんたん UML 入門』[竹政ら 2013]『思考系 UML モデリング 即効エクササイズ モデ力を鍛える 13 の自主トレメニュー』[渡辺ら 2004]

1

対象を、「○○とは、」という形で、説明する。説明の視点は、・定義、・目的、・構成(要素)、・特性、・他との関係、・制約。
その中の用語をさらに説明を繰り返し、用語が整理されていて目に見える形に整理する
2
記録しておき、後で属性に使用する。

分析実践コース18

勉強会ガイド

第3回
概要
第 2 回で作成したドラフトクラス図を分析モデル(静的モデル)として完成させます。

カタログの
要求仕様
第3回
ユースケースモデル

分析モデル(静的モデル)

分析モデル(静的モデル)
の作成

ドラフト
クラス図

受講者へのインプット

作成するもの(アウトプット)

カタログの要求仕様

分析モデル(静的モデル)



第 1 回で作成したユースケースモデル



オブジェクト図

第 2 回で作成したドラフトクラス図



クラス図



進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

10 分

(復習を兼ねて) 各自でオブジェクト図を作成する。ユースケースモデルのある時点の、クラス図から導き出されるオブジェクト図を作成する。図は、ホワイトボードまたはホワイトシート
に描く。

3

15 分

グループ内でオブジェクト図のモデルを共有する。

4

75 分

グループで分析モデル(静的モデル)を作成する。ディスカッションしながら、モデルは、ホワ
イトボードまたはホワイトシートに描く。属性、関連端名(または関連名)、多重度をきちんと記述すること。

5

15 分

モデルを貼り出して、別グループのモデルを見て回る。または発表・質疑応答を行う。

19

第3回

組込み分野のための UML モデルカタログ

作成方法

オブジェクト図の作成
クラス図は抽象度が高いため、分かり難い面があります。オブジェクト図を作成して、確認またはクラス図の不備を見つけます。
(i) どのような場面のオブジェクト図を作成するかを決める。ユースケースシナリオのある場面やシステムの初期化が終了したときなどが考えられる。
(ii) 具体的なオブジェクトを作成し、リンクで結び、オブジェクト図を作成する。

分析モデル(静的モデル)の作成(i) オブジェクト図からの知見を前回作成したクラスにフィードバックする。
(ii) 各クラスに属性を付加する。
(iii) 関連に関連端名(ロール名)や関連名、多重度を付加する。
(iv) クラスの中で同じような性質、振る舞い、責務を持っているものがある場合、共通の性質を抽出して、スーパークラスを作成する(してもよい)。

参考文献
さらに知りたい方は、以下を参照してください。
『豆蔵セミナーライブオンテキスト (2) すいすい習得

UML モデリング』[岡村 2006]『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『かんたん UML 入門』[竹政ら 2013]

分析実践コース20

勉強会ガイド

第4回
概要
これまでに作成したユースケースモデルと分析モデル(静的モデル)を元に分析モデル(動的モデル)を作成します。ユースケースを実現するシーケンス図またはコミュニケーション図、システムやクラスの状態マシンなどを作成します。

カタログの
要求仕様
第4回
ユースケースモデル

分析モデル(動的モデル)

分析モデル(動的モデル)の作成

分析モデル(静的モデル)受講者へのインプット

作成するもの(アウトプット)

カタログの要求仕様

分析モデル(動的モデル)



第 1 回で作成したユースケースモデル

シーケンス図

第 3 回で作成した分析モデル(静的モデル)



コミュニケーション図

状態マシン図(アクティビティ図(備考参照))



進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

15 分

(復習を兼ねて)作成する分析モデル(動的モデル)で作成する題材を決める。例えば、まずグループでディスカッションを行い、候補を出し、全体で決める。題材としては、(1)ユースケースを実現するシーケンス図またはコミュニケーション図、(2)システムやオブジェクトの状態マシン
図など。(1)と(2)それぞれ 1 個程度を目安とする。

3

75 分

グループで分析モデル(動的モデル)を作成する。モデルは、ホワイトボードまたはホワイトシートに描く。または PC を使用して描く。3
なお、参加者のスキルなどに応じて、個人で 30 分モデリングを行ってから、グループで 45 分
モデリングを行ってもよい。

4

15 分

モデルを貼り出して、別グループのモデルを見て回る。または発表・質疑応答を行う。

3

次回の「モデルの洗練」を考慮すると、PC で作成する方が修正しやすい。ただし、グループでの作画が PC の操作者に限られることや、個人のモデルを見せ合うことが、ホワイトシートより煩雑になるデメリットもある。

21

第4回

組込み分野のための UML モデルカタログ

作成方法

分析モデル(動的モデル)の作成

ユースケースを実現するシーケンス図またはコミュニケーション図
クラスの操作の抽出とユースケースの実現性の検証のため、ユースケース記述のイベントフローまたは
シナリオに相当するシステム内部の相互作用を記述するシーケンス図またはコミュニケーション図を作成します。
(i) イベントフローまたはシナリオは、一般的に
1. アクターは○○を○○する。
2. (その応答として)システムは○○を○○する。
の繰り返し構造にするので、この 1.と 2.の間を実現するシステム内のオブジェクト間のメッセージを考える。前回作成したクラス図のクラスを登場人物として、シーケンス図またはコミュニケーション図を作成する。
(ii) 上記を繰り返して、イベントフローまたはシナリオのシーケンス図またはコミュニケーション図を完成させる。

システムやクラスの状態マシン図(i) 状態を識別する。処理の流れ(手順)ではなく、何かがができる/できない、ロジックが変化する、など性質の変化を状態とする。
(ii) イベントを識別する。状態の変化を引き起こすような、外部の出来事や、時間経過をイベントとする。
(iii) 状態の遷移を状態マシン図で整理する。
(iv) 状態遷移に伴う処理を記述し、振る舞いを詳細化する。

参考文献
さらに知りたい方は、以下を参照してください。
『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『かんたん UML 入門』[竹政ら 2013]

備考
分析体験コースの第 2 回と分析実践コースの第 4 回は同じ内容です。
アクティビティ図は手続き的な流れを記述するもので、ユースケースの業務フローの記述には用いられることがありますが、システム内部のオブジェクトの相互作用を記述する動的モデルでは、あまり使用されません。オブジェクトの相互作用があまりない場合や、手続きが複雑な場合に使用するのは有効と思われます。

分析実践コース22

勉強会ガイド

第5回
概要
分析モデル(静的モデル)と分析モデル(動的モデル)を精査し、モデルを洗練する。

ユースケースモデル
分析モデル(静的モデル)

カタログの
要求仕様

分析モデル
(静的モデル)

第5回
モデルの洗練分析モデル(動的モデル)

分析モデル(動的モデル)受講者へのインプット

作成するもの(アウトプット)

カタログの要求仕様

分析モデル(静的モデル)



第 1 回で作成したユースケースモデル



オブジェクト図

第 3 回で作成した分析モデル(静的モデル)



クラス図



第 4 回で作成した分析モデル(動的モデル)



分析モデル(動的モデル)



シーケンス図

コミュニケーション図

状態マシン図(アクティビティ図(備考参照))

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

20 分

各自で分析モデル(静的モデル)と分析モデル(動的モデル)を精査し、モデルの改善点や矛盾点を
列挙する。

3

75 分

グループで列挙した点をディスカッションし、分析モデル(静的モデル)と分析モデル(動的モデル)を洗練する。モデルは、ホワイトボードまたはホワイトシートに描く。または PC を使用し
て描く。

5

15 分

モデルを貼り出して、別グループのモデルを見て回る。または発表・質疑応答を行う。

23

第5回

組込み分野のための UML モデルカタログ

作成方法

分析モデルの洗練
以下に考慮して、モデルを改善(洗練)していきます。
(i) 動的モデルのメッセージやイベントは静的モデルの操作になる。
(ii) 動的モデルのメッセージのやり取りがあれば、静的モデルのクラス間に何らかの関係がある。
(iii) クラス名、属性、操作(メッセージ)に整合性がある(矛盾やおかしな点がない)。属性や操作がクラスに相応しい。
(iv) 責務が多すぎない。

参考文献
さらに知りたい方は、以下を参照してください。
『組込みソフトウェア開発のためのオブジェクト指向モデリング』[セサミ 2006b]『UML によるオブジェクト指向モデリング セルフレビューノート』[荒井 2005]

備考
アクティビティ図は手続き的な流れを記述するもので、ユースケースの業務フローの記述には用いられることがありますが、システム内部のオブジェクトの相互作用を記述する動的モデルでは、あまり使用されません。オブジェクトの相互作用があまりない場合や、手続きが複雑な場合に使用するのは有効と思われます。

分析実践コース24

勉強会ガイド

第6回
概要
作成した分析モデルとカタログのモデルを比較し、ディスカッションを行い、理解を深めます。また勉強会全体の振り返りを行います。

ユースケースモデル
分析モデル(静的モデル)

カタログの
モデル

第6回

振り返りの
ドキュメント

振り返り
分析モデル(動的モデル)受講者へのインプット

カタログ(モデル解説書)のモデル



第 1 回で作成したユースケースモデル



第 5 回で洗練した分析モデル(静的モデル)と分析モデル(動的モデル)

作成するもの(アウトプット)

振り返りのドキュメント

進め方
#

時間

内容

1

5分

勉強会の進め方を説明する。

2

20 分

各自でカタログのユースケースモデルと分析モデルを読む。

3

20 分

ユースケースモデルについて、グループでカタログのモデルの疑問点や作成したモデルとの相違点を指摘し、ディスカッションを行う。

4

20 分

分析モデル(静的モデル)について、グループでカタログのモデルの疑問点や作成したモデルとの相違点を指摘し、ディスカッションを行う。

5

20 分

分析モデル(動的モデル)について、グループでカタログのモデルの疑問点や作成したモデルとの相違点を指摘し、ディスカッションを行う。

6

20 分

KPT フレームワーク※などを用いて、勉強会全体の振り返りを行う。

※KPT フレームワーク：
振り返りを「Keep：継続すること、よかったこと」、「Problem：問題点、改善を要すること」、「Try：次の挑戦したいこと、改善事項」の 3 つの観点で行う。『プロジェクトファシリテーション実践
編：ふりかえりガイド』[天野 2013]参照。

25

第6回

組込み分野のための UML モデルカタログ

おすすめカタログ
UML モデルカタログの中で、シーンに合わせたおすすめのモデルを列挙します。

分析体験コースにおすすめのモデル：小さい仕様、小規模なモデルが向いています。




目標制御



自己診断



認証

分析実践コースにおすすめのモデル：とっつきやすく、一般的に分かりやすい、身近な製品のモデルが向いています。




エアコン



電子オルゴール

交通 IC カードチャージ機

また、自分たちの会社(や部門)で分かりやすいものを選ぶというのもよい方法です。

分析の途中過程を見たい場合におすすめのモデル：分析を行う際に、どのように導出していくのかの途
中経過が掲載されているモデルです。




自己診断



エアコン



電子オルゴール

おすすめカタログ

26

勉強会ガイド

運営上のアドバイス
それぞれの勉強会には、それぞれの状況がありますので、運営上の課題は個別に対応すればよいと思います。ここでは、一般的に参考になることを記述します。



前段の成果物の質が不十分で、後段の勉強会に影響を及ぼす場合：(例：分析体験コースの第 1 回の静的モデルの質が不十分で、第 2 回の動的モデルをうまく作成できない)(i) 数個のクラスの追加・変更など、勉強会の時間内で前段の成果物を変更できるのであれば、変更すれば問題ありません。赤ペンなどで修正し、振り返りで課題の抽出を行ってください。
勉強会の時間内に変更できない場合、以下を参考にしてください。
(ii) 前段の成果物の質が不十分な場合、後段の成果物へ影響を及ぼすことを実体験することは、有効です。従って、そのまま進めるのは、一つの方法です。分析体験コースの場合、全体の時間が短いので、よいと思います。ただし、きちんと成果物を作れるように別途勉強会を開催し、スキルアップを図る必要があります。
(iii) 勉強会の時間延長(や 1 回分の追加)が可能ならば、延長(や追加)も一つの方法です。成果物の質の後段への影響を体験しつつ、上記よりも全体的に短時間で済みます。
(iv) 勉強会の時間時間の延長ができない場合、モデル解説書のモデルを流用して進める方法もあります。
スケジュールの遅延なく進めることができます。しかし、この場合も(ii)と同様にきちんと成果物を作れるように別途勉強会を開催し、スキルアップを図る必要があります。



時間が足りない場合：(i) (回によりますが)基本的に勉強会の時間に余裕はありません。タイムキーパーを設けるか、講師(レビューア)が時間管理を行ってください。
(ii) (特に)初学者の場合や静的モデルの作成の場合、勉強会のスケジュールに余裕を持たせて、延長可能にしておくと、後の回に影響がなく、円滑な運営ができます。
(iii) 「反復練習(トレーニング)」を参照して、反復の計画を立案してください。
(iv) 実際に時間が足りなくなった場合、「前段の成果物の質が不十分で、後段の勉強会に影響を及ぼす場合」の(ii)から(iv)を参照してください。



沈黙しがちで議論が進まない場合：(i) あらかじめ司会を決めておきましょう。
(ii) 適宜、講師(レビューア)がフォローしてください。


何が分かっているか、何を行うのか、分からないことは何か、などを確認しましょう。

(iii) 事前に想定される場合、アイスブレークを行うのはよい方法です。

27

第6回

組込み分野のための UML モデルカタログ



反復練習(トレーニング)

モデリングの上達には、反復練習(トレーニング)が不可欠です。実際にモデリングを行わないと、分からないことが沢山あります。また実践することで様々な気付きが得られます。
モデリングしたら、必ずレビューや振り返りを行ってください。自分のモデルにフィードバックを行い、次によりよいモデルを作成してください。また、人のモデルをレビューすることも自分のスキルを向上させます。人の作成したモデルを見ることで、不足していることなどに気付くこともあります。
分析実践コースでは、一通り実施する最低限(程度)の時間となっているので、モデルの規模や受講者のスキルを考慮して、必要に応じて繰り返すことを検討してください。
分析実践コース第 1 回は、ユースケースモデルの作成です。特にユースケース記述の作成には時間がかかるので、繰り返してトレーニングを実施すると効果が上がります。
分析実践コース第 2 回から第 5 回は分析モデルの作成です。分析は行うにつれて知見が増えるので、反復してモデリングを行うと効果的です。第 5 回で、モデルを洗練して、そのようなことを行っていますが、全体的に反復を行うことを検討してください。また、ユースケース記述同様、動的モデルの作成も時間がかかるので、この部分を繰り返すことも有効です。
ただし、実際の開発でも時間が限られていますし、むやみに時間を延ばすだけでは時間の浪費になりますので、きちんと目標を設定して反復的に実施してください。



更に上を行くためのアドバンストコース：

もし、実践コースが順調に進んで時間が余ったり、受講者からもう少し難しいことをやりたいなどの申し出があった場合は、別の要求仕様に取り組むのではなく、実施中のモデルに機能追加することをお勧めします。一からモデルを作成するのと、すでにあるモデルに機能を追加するのでは、習得できるスキルが異なります。
すでにあるモデルに機能を追加する場合は、モデルの骨格になっているアーキテクチャはどこかを認識し、それを壊さないように機能追加する必要があります。それは、保守性や拡張性を考慮した設計に他なりません。品質を維持したまま機能追加が行えるのか、モデルの良し悪しが問われます。
また、その際には、チームのモデルを入れ替えても良いでしょう。他の人が作ったモデルに機能追加することで、モデルのわかりやすさやドキュメンテーションの大切さを痛感することができます。

運営上のアドバイス

28

勉強会ガイド

参考文献
 [天野 2013] 『プロジェクトファシリテーション実践編：ふりかえりガイド』 天野勝 2013 第 23 版
http://objectclub.jp/download/files/pf/RetrospectiveMeetingGuide.pdf
 [荒井 2005] 『UML によるオブジェクト指向モデリング セルフレビューノート』 荒井 玲子 ディーアー
ト 2005
 [岡村 2006] 『豆蔵セミナーライブオンテキスト (2) すいすい習得
評論社 2006

UML モデリング』 岡村敦彦 技術 [コーバーン 2001] 『ユースケース実践ガイド』 アリスター・コーバーン 翔泳社 2001
 [セサミ 2006b] 『組込みソフトウェア開発のためのオブジェクト指向モデリング』 SESSAME WG 2
翔泳社 2006
 [竹政ら 2013] 『かんたん UML 入門』 竹政昭利、林田幸司、大西洋平、三村次朗、藤本陽啓、伊藤宏幸
プログラミングの教科書シリーズ 技術評論社 2013 [渡辺ら 2004] 『思考系 UML モデリング 即効エクササイズ モデ力を鍛える 13 の自主トレメニュー』
渡辺博之、芳村美紀、桑本茂樹、敷山喜与 彦翔泳社 2004

 この他の書籍が、以下で紹介されています。参照してください。
http://www.umtp-japan.org/modules/data4/index.php?id=729

組込み分野のための UML モデルカタログ

付録：ユースケース記述のテンプレート<UC01：

>

■概要

■アクター

■事前条件
・

■事後条件
・

■メインフロー
1.
2.
3.
4. UC を終了する■代替フロー
3a.
3a1.
3a2. メインフローの 4 に戻る■例外フロー3b.
3b1.
3b2. UC を終了する■課題やＴ.B.D 項目■備考

付録：ユースケース記述のテンプレート

30

勉強会ガイド

付録：勉強会の例
勉強会の例として、本部会が 2013 年 12 月 6 日、オージス総研殿(東京 品川)にて、開催しました「組込み向け UML モデルカタログを使った『勉強会実践ワークショップ』」の資料を掲載します。このワークショップは、分析体験コースの第 1 回に該当します。当日の様子は、以下を参照してください。
http://www.umtp-japan.org/modules/activity2/index.php?id=223

交通 IC カードチャージ機の要求仕様
交通 IC カードチャージ機とは、主に鉄道の駅の乗車券用の自動券売機の横や改札の近くなどに設置されている、鉄道の乗車などに利用できる IC カードにお金をチャージする(入れる)ための装置です。
一般的には、IC カードを読み書きする装置および現金を挿入する装置(つり札を排出する装置を兼ねることが多い)と、ボタンや表示パネル・スピーカーなどユーザーとのやりとりを行うための装置から構成されます。
最近では乗車券等の自動券売機でも、IC カードにお金をチャージする機能が利用できるものが増えていますが、今回対象とする交通 IC カードチャージ機はチャージ専用の装置で、乗車券を購入することはできません。
但し、モデリングにあたっては、自動券売機等の他の装置への転用(または借用)がしやすい構成にすることを考慮する必要があります。

今回のモデルの題材となる IC カードチャージ機の外見を以下の図に示します。
スピーカー

ICカードチャージ機

マイク

よびだし
とりけし

案内表示

1000

2000

ICカード挿入口

チャージ金額3000
5000

クレジットカード
10000
11
44
77
**

履歴表示

領収書/履歴紙幣・おつり
発行

閉

開
かぎ

31

22
55
88
00

33
66
99
##

組込み分野のための UML モデルカタログ

ユースケース
今回題材とする交通 IC カードチャージ機のユースケースを示します。
u c 交通IC カードチャージ機

交通ICカードチャージ機【UC1-1】現金でチャージする【UC1-2】クレジットカードでチャージする【UC1】チャージする<<extend>>【UC2】領収書を発行する<<include>>【UC3】ICカ ードの残高を照会する
ICカ ードシステム

ユーザー<<include>>【UC4】ICカ ードの利用【UC5】ICカ ードの利用履歴を表示する
履歴を印刷する<<extend>>
クレジットシステム

このユースケース図には、全部で 3 つのアクタが登場します。「ユーザー」は IC カードチャージ機を利用する、利用者を表します。
「IC カードシステム」は、IC カードチャージ機とさまざまなやりとりを行う、個々の IC カードチャー
ジ機を総合的に管理するシステムです。IC カードに関する情報は IC カードチャージ機側では保持せず、IC
カードシステム側で保持します。
「クレジットシステム」は、クレジットカードに関する、利用有無の確認や決算処理を行うシステムです。
このシステムは「IC カードシステム」のバックエンドとしてあるもので、交通 IC カードチャージ機が直接やり取りすることはありません。

付録：勉強会の例

32

勉強会ガイド

ユースケースの説明【UC1-1】現金でチャージする
ユーザーは IC カードを挿入し、希望するチャージ額のボタンを押します。その後、その金額以上のお金を挿入すると、システムは IC カードにお金をチャージし、IC カード(と、必要な場合はお釣り)を返却します。システムは、返却の際に残高を一定時間表示します。
ユーザーが IC カードを取り出すと、システムは次の IC カードの挿入待ちの状態となり、本ユースケー
スは終了します。


処理中は、IC カードはロックされ、取り出すことはできません。IC カードの返却時はロックが解除
されます。



ユーザーは、途中で取り消しボタンを押しチャージ処理を中断することができます。



システムは、IC カードが利用不可の場合は、挿入後すぐに返却します。

IC カードにはチャージ上限金額があります。システムは、チャージ可能な金額のボタンのみ点灯します。



システムは、IC カードからカード番号を読み取り、その他のすべての情報は「IC カードシステム」に問い合わせながら処理を進めます。

【UC1-2】クレジットカードでチャージする
UC1-1 と同じですが、ユーザーは現金の挿入の代わりに、クレジットカードを挿入し、暗証番号を入力します。


システムは、クレジットカードのカード番号と入力された暗証番号を「IC カードシステム」に送信し、以降の処理も「IC カードシステム」に問い合わせながら進めます。

【UC2】領収書を発行する
UC1-1、UC1-2 でのチャージ完了後、ユーザーが発行ボタンを押すと、システムは日時・駅名・チャー
ジ金額が記載された領収書を 1 枚印刷します。

【UC3】IC カードの残高を照会する
ユーザーが IC カードを挿入すると、IC カードの残高が案内表示部に表示されます。その画面表示で、残高を確認できます。
ユーザーが残高照会のみを行う場合は、IC カード挿入→残高確認後に取り消しボタンを押し、カードを取り出します。

33

組込み分野のための UML モデルカタログ【UC4】IC カードの利用履歴を表示する
ユーザーが IC カードを挿入し、履歴表示ボタンを押すと、案内表示部に利用履歴が表示されます。利用
履歴の例を以下に示します。
月日

種別

場所

12/12

入

新宿

出

渋谷

入

渋谷

出

目黒

入

目黒

出

品川

\700

チャージ

品川

\5700

12/12
12/12
12/12

残高
\1000
\850

システムは、利用履歴を表示後、IC カードを返却します。
ユーザーが IC カードを取り出すと、システムは次の IC カードの挿入待ちの状態となり、本ユースケー
スは終了します。


処理中は、IC カードはロックされ、取り出すことはできません。途中で取り消しボタンを押すと、処理を中断することができます。

【UC5】IC カードの利用履歴を印刷する
UC4 で利用履歴が表示されている状態で、発行ボタンを押すと、利用履歴の内容を印刷することができ
ます。

※但し書き


今回のワークショップでは時間的制約があるため、異常系の処理については記述していません。



一般的な交通 IC カードは、物品購入に使用できたり、チャージ機でポイント還元ができるなどの機能がありますが、今回のワークショップでの分析範囲は上記の仕様の通りとします。
余力があれば、追加機能も考慮した分析をしてみてください。

付録：勉強会の例

34

勉強会ガイド

オブジェクト候補を記入したリスト

Check

英語

Check あ行

Check か行

IC カード

暗証番号

カード番号

IC カード管理

案内表示

改札

IC カード読み書き装置

駅

係員

お金

カギ

お札

機能

おつり

金額ボタン
クレジットカード
クレジットカード読取り装置
クレジットシステム
コイン

Check は行

Check ま行

発行ボタン
パネル
表示装置
ボタン

35

マイク

組込み分野のための UML モデルカタログ

Check

さ行

Check た行

Check な行

残高

チャージ

残高管理

チャージ機

紙幣

通話システム乗車

つり札排出装置

乗車券

つり銭管理

スピーカ

取り消しボタン

清算

Check

や行
呼び出しボタンCheck ら行

Check わ行

利用者
領収書
利用種別
利用月日
利用場所
履歴
履歴表示ボタンロック
ロック解除

付録：勉強会の例

36

勉強会ガイド

作成したモデル【講評】・シンプルで分かりやすいモデルです。・実際にソフトウェアの作成には、デバイスを使って何をするのかという部分の追加が必要です。

【講評】・多くのオブジェクトが抽出できているのがよい点です。・機能への片寄りやデバイスとデータの混在が改善すべきことになります。

37

UML モデリング勉強会ガイド
初版発行 ２０１4 年（平成２6 年）１０月１日
発行者 UMTP, Japan
編 著 組込みモデリング部会
印刷
UMTP, Japan
東京都渋谷区代々木 1 丁目 22 番 1 号
http://www.umtp-japan.org/

Copyright(c)2014-2016 consortium for UML based Modeling Technologies Promotion All Rights Reserved