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