システム設計(1) シーケンス図、コミュニケー...
TRANSCRIPT
1
システム設計(1)
シーケンス図、コミュニケーション図 等
2
今日の演習のねらい
� 情報システムを構成するオブジェクトの考え方を理解す
る。
� 業務プロセスでのオブジェクトの相互作用を考える
� シーケンス図、コミュニケーション図 を作成する
前回までの講義
システム開発の上流工程として、
要求仕様を確定
パソコンを注文するまでのユースケース
ユースケースから画面の検討
イベントフロー、アクティビティ図
今日の演習のねらい今日の演習のねらい
3
UML:シーケンス図、コミュニケーション図
4
オブジェクト
オブジェクトとは、
目に見える物理的な物体(あなたのパソコン、私の自転車・・)や
目に見えない概念的なもの(あの売上、この基準、そのルール・・)
を指す。
例えば、
「電話で、お客さんから注文が入ったので、契約書を作成した」
「遊園地に子供を連れて行った。お土産をたくさん買ってきた」
いわゆる “モノ”や“人”がオブジェクトになる。オブジェク
トの抽出は、ある事象を考えた場合の、“名詞”に着目する。
(形容詞:きれい、赤い・・、動詞:動く、遊ぶ、行く・・ 等はオブジェクトにはならない)
5
オブジェクトの特徴
◆状態を持つーーーーー発生してから消滅するまで幾つかの状態を持つ
(人:誕生→幼児→学生→社会人→老後→死亡 幾つかの状態を経る)
◆振る舞いを持つーーー属性とその内容(データ)を組み合わせた動作/処理をする
(属性: 名前、年齢、出身地・・)
(振る舞い/手続き/操作:
年齢を尋ねられると → 年齢は24歳です と答える)
◆関係を持つーーーーーモノ同士を関係付けることで、より複雑な情報を表現し、
さらに意味のあるモノにすることが出来る
(関係の例:
依頼する、参照する、作成する、使用する、状態を表現する、集約する)
◆一意に識別できるーーオブジェクトの性質が同じでも、
各オブジェクトは別物で識別される
(同姓同名の学生の場合でも、学籍番号で一意に識別される)
6
オブジェクトとクラスの関係
◆クラスは、
オブジェクトの属性や振る舞いの共通性に着目して
分類(=抽象化、クラス化)したもの
逆に、クラスからオブジェクト生成することを具体化(=インスタンス化)という
共通の属性
・名前
・背番号
・生年月日
・ポジション
・出身校
・居住所
共通の振る舞い
・年齢を答える
・背番号を答える
小野
中田(英)
中村
中田(浩)
三都主
:選手
選手オブジェクト 選手クラス
抽象化、クラス化
具体化、インスタンス化
:クラス名オブジェクト名 オブジェクト名:クラス名or
クラス名の前には
コロンを付ける
7
オブジェクトの相互作用
問題を動的な側面でとらえる。
オブジェクト間のメッセージのやり取り
オブジェクト指向のシステムでは、オブジェクト同士がメッセージ(情報)のやり
取りを行いながらプログラム(業務、作業)が進行する
ユースケース記述のシナリオを基にしてオブジェクトの相互作用を明らかにする
(一つのユースケースで、複数のシーケンス図が作成されることがある)
オブジェクトの相互作用を明らかにする相互作用図=強調動作を表現する
◆シーケンス図
上から下へ メッセージの流れを順番に(時系列に)記述してゆく
◆コミュニケーション図
オブジェクト間のつながりを中心にメッセージのやり取りを記述する
8
シーケンス図
9
シーケンス図は、コミュニケーション図と等価
シーケンス図
横軸にサービスの実現に参加するオブジェク
ト、縦軸にサービス実現までのシナリオを時
系列に配置し、シナリオ実現までの各ステッ
プをオブジェクト間のメッセージ交換で表現
する。
・時系列に沿って上から下にメッセージのや
り取りを表現する。
ビジネスや情報システムが提供するサービス
を実現するために、この図でオブジェクト同
士がどのように相互作用するかを分析する。
オブジェクトが責任を持つべき振る舞い(操
作)を識別するのに役立つ。
・オブジェクトの相互作用を時系列に見るの
に適している
・メッセージ番号が明らかなので、メッセー
ジ番号を省略できる。
・シナリオとの対応がつけやすい
機能的な視点オブジェクトの相互作用を明らかにするオブジェクトの相互作用を表す図の1つ。
オブジェクト間のメッセージのやりとりを、
時系列に沿って表現する。
同じ振る舞いをコミュニケーション図でも表現
可能。
会員登録のシーケンス図例
商品注文のシーケンス図例
10
シーケンス図の要素
表記
オブジェクト:オブジェクト:objectobject
固有データとそれを処理するた
めの処理手続きをあわせ持ち、
境界が明確であり、個々のもの
として識別可能なものである。
現実世界にける物体は、オブジ
ェクトである。
オブジェクト名
リターンリターン::returnreturn
表記
メッセージの返り値。
省略可能である。
リターン
表記
メッセージメッセージ::messagemessage
相手オブジェクトが持つ、特定
の処理の呼び出しを記述する。
矢印には同期と非同期があり、
先端の形状が異なる。
同期
非同期
表記
活性区間:活性区間:activationactivation
オブジェクトに制御が移って
いる(何らかの処理を実行し
ている)期間を表す。
オブジェクト名
活性区間表記
アクターアクター::actoractor
システムに対してユーザーが果
たす役割で、ユースケースから
利益を受けるもの
アクター名
表記
ライフライン:ライフライン:lifelinelifeline
オブジェクトが生存している期
間を示す。
オブジェクトが消滅する時は、
×印で表す。
オブジェクト名
ライフライン 消滅
11
例)シーケンス図 (レポート管理システム)
12
例)レポート管理システム
•レポート提出する学生。
•レポートを提出するための画面(WEB)。
•ユーザ情報、講義情報をもつデータ。
•学生が提出するレポート。
•レポート画面の制御、データの取得、生成を行うレポート管理制御。
オブジェクトの抽出 (レポート管理システム)
�レポートを提出するまでのシーケンス図を考える。
◆シナリオ
学生は、Webの画面を使ってレポートを提出する。
レポート管理制御では、レポートWeb画面の制御と、ユーザ情報・講義情報を
持つデータの取得や生成を行い、学生のレポート提出を完了させる。
13
例)シーケンス図 (レポート管理システム)
学生、レポート管理制御、データのオブジェクトは消滅しない。
画面(WEB)は、ユーザが画面を開くことによって初めて生成され、閉じることによって破棄される。
レポートは、レポート管理システム側に複写生成する。
(ユーザが提出したレポートはユーザの手元に残っている)
14
コミュニケーション図
15
コミュニケーション図
オブジェクトの構造的な観点で配置し、オブ
ジェクト間の関係を矢印で接続して間を流れ
るメッセージやデータとその順序を表現する。
・オブジェクト間に何らかのデータのやりとりや
関係がある事を表現する。
シーケンス図と同様に、オブジェクト同士の
相互作用を分析するために作成する。
シーケンス図は、時系列の観点で作成するが、
コミュニケーション図は、オブジェクト構造
の観点から作成する。
・オブジェクト間やクラス間の接続関係を見るの
に適している
・メッセージの順番を示すために、メッセージ番
号は必須
・オブジェクト図やクラス図との対応がつけやす
い コミュニケーション図は、シーケンス図と等価
機能的な視点オブジェクトの相互作用を明らかにするシーケンス図と同様に、オブジェクト間の相
互作用を表す。
シーケンス図が時間の流れに沿って処理順序
を記述するのに対して、コミュニケーション
図はオブジェクト間の関係を記述する。
会員登録のシーケンス図例
商品注文のシーケンス図例
16
コミュニケーション図の要素
表記
オブジェクト:オブジェクト:objectobject
固有データとそれを処理するた
めの処理手続きをあわせ持ち、
境界が明確であり、個々のもの
として識別可能なものである。
現実世界にける物体は、オブジ
ェクトである。
オブジェクト名
リターンリターン::returnreturn
表記
メッセージの返り値。
省略可能である。
リターン
表記
メッセージメッセージ::messagemessage相手オブジェクトが持つ、特定
の処理の呼び出しを記述する。
矢印には同期と非同期があり、
先端の形状が異なる。シーケン
ス図と同様。
但し、相対的順序番号(N)が
必須となる。
N:同期
N:非同期
表記
アクターアクター::actoractor
システムに対してユーザーが果
たす役割で、ユースケースから
利益を受けるもの
アクター名
表記
リンク:リンク:linklink
他のオブジェクトの参照関係を
表す
リンクオブジェクトA
オブジェクトB
17
例)コミュニケーション図
(レポート管理システム)
18
例)コミュニケーション図 (レポート管理システム)