UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日 1 UMLとは • Unified Modeling Language • OMG(Object Management Group)が標準化 – http://www.omg.org/ • オブジェクト指向分析、設計においてシステム をモデル化する(記法)図法を規定したビジュ アル言語(モデリング言語) • 用途 – 自分の考えを整理 – チーム開発でのコミュニケーション – ユーザや顧客との対話 2 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 3 開発プロセスとUML(1) • 開発プロセス – ウォーターフォール型 – 反復型 • RUP(Rational Unified Process) – http://www.rational.com/products/rup/index.jsp – http://www.rational.co.jp/products/unified_process/index.html – アジャイル型 • XP(eXtreme Programming) – http://www.atmarkit.co.jp/fjava/devs/process02/process02_2.html UMLは開発プロセスとは独立 4 開発プロセスと UML(2) • 分析フェーズ – ユースケース図を中心に要求を分析、定義 – クラス図で問題領域の概念をモデル化 – アクティビティ図、状態図、シーケンス図、コラボレーショ ン図を用いて補助 • 設計フェーズ – クラス図を中心に論理的な設計モデルの構築 – コンポーネント図、配置図を用いて物理アーキテクチャ を記述 – アクティビティ図、状態図、シーケンス図、コラボレーショ ン図を用いて補助 • 実装フェーズ – 5 UMLを見ながらコーディング 使用例(勤怠システム) • 社員の出退社時間を管理するシステム • 社員は出退社処理のみ行うことが可能 • 総務の人は勤怠変更入力を行うことが可 能 • 次期開発で遅刻、早退の理由を入力する 機能を追加予定 6 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 7 ユースケース図 • システムの使用機能 (ユースケース)と、外部 環境(アクタ)との関連を表す図 図の要素 •ユースケース –システムの使用機能に名前を付けたもの •アクタ –システムの外部でシステムと相互作用を行うもの •ノート –モデルに影響を与えない要素(コメント) 8 勤怠システムユースケース図 ステレオタイプ 要訂正 ノート アクタ 汎化 9 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 10 アクティビティ図 • 関連する複数の業務や処理を順序立てて 配置したもの(フローチャート) 図の要素 • • • • • アクティビティ 開始状態 終了状態 分岐 ガード 11 勤怠入力システムのアクティビティ図 開始状態 ガード 終了状態 分岐 アクティビティ 12 アクティビティ図のその他の要素 図の要素 • 同期バー – 制御の分割や同期した結合を示す • レーン – 振る舞いの責任範囲を分けるために図を縦に 分割する実線 13 勤怠システム開発ワークフロー のアクティビティ図 レーン名 レーン 同期バー 14 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 15 状態図 • ひとつのオブジェクトの状態変化を表す図 – ただし、粒度はさまざま 図の要素 •名前 •変数 •関数 • 状態 –オブジェクトがとる状態 • 状態遷移 –ある状態から他の状態への移行 16 勤怠入力システムの状態図 状態遷移 状態 17 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 18 クラス図 • モデルの時間的な振る舞いを含まない静 的構造を表す図 図の要素 • クラス • 関連 • 特殊な関連 – 集約・コンポジション • 依存関係 • 汎化 • 実現 19 勤怠入力クラス図 20 クラス • 三つの区間 – クラス名 – 属性 – 操作 勤怠入力コントローラ + ログイン():void + 出社():void + 退社():void + ログアウト():void クラスの例 • 可視性 – 他のクラスからのア クセスを規制 表記 意味 + public # protected - private ~ package 可視性一覧 21 関連 • クラス間の何らかのつながりを表す – 矢印 • 関連の方向を表現 – 多重度 • 関連に参加するオブジェクトの数的関係を表現 – ロール • 役割を示す 関連の例 22 特殊な関連 • 集約 • コンポジション 集約の例 – いずれも全体-部分の関係 – コンポジションは集約より強い関係 23 依存関係 • 相手の変更によって影響を受ける関係 依存関係の例 データベースラッパークラスの仕様変更によって データベース操作クラスも変更しなければならない24 汎化 • 属性・操作・関連を引き継ぐ – JAVA、C++等における継承に相当する 汎化の例 25 実現 • 操作のインターフェイスを引き継ぐ – JAVAのinterfaceに相当 実現の例 勤怠入力ボタンリスナインターフェイスをもとに 勤怠入力コントローラクラスを実現 26 UMLの拡張メカニズム • ステレオタイプ • 制約 27 ステレオタイプ • 要素のもっている特徴を表現する ステレオタイプの例 Interfaceステレオタイプにより、振る舞いのみを 定義したクラスであることを明示 28 制約 • 一定の規則を持つ場合を明示 制約の例 年月日をキーとして整列した形でデータを 持つことを表現 29 モデルの管理 • パッケージ – クラスやコンポーネントをグループ化したもの パッケージ クラス ユーザーイン ターフェース 勤怠入力ボタンリスナ 勤怠入力システ ム 勤怠入力コントローラ 勤務時間データ データベース操作 データベース データベースラッパー 30 パッケージの例:クラスのパッケージ UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 31 相互作用図 • オブジェクト間の相互作用を表現 – シーケンス図 – コラボレーション図 クラスを実体化 したもの 32 シーケンス図 • あるシナリオに沿ったオブジェクト間のメッ セージのやり取りを時系列に沿って表現 • コラボレーション図と同種の内容を表現 – シーケンス図の特色 • 活性区間とライフライン 33 シーケンス図の要素 図の要素 • オブジェクト • ライフライン – オブジェクトの生存期間 • 活性区間 – オブジェクトに制御が移ったことを示す • メッセージ – 矢印の形で同期と非同期を表現 – リターン • 返り値を記述したいケースで用いる 34 シーケンス図の例 35 コラボレーション図 • あるシナリオに沿ったオブジェクト間のメッ セージのやり取りを、接続関係に着目して表 現 • シーケンス図と同種の内容を表現 – コラボレーション図の特色 • オブジェクト間の関係をわかりやすく表現できる 36 コラボレーション図の要素 図の要素 • リンク – クラス図における関連 • メッセージ – 順序番号をつける 37 コラボレーション図の例 38 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 39 オブジェクト図 • オブジェクトのある時点のスナップショット • メッセージのないコラボレーション図 属性値を明示することもできる 40 UMLのダイアグラム • • • • ユースケース図 アクティビティ図 状態図 クラス図 • 相互作用図 – シーケンス図 – コラボレーション図 • オブジェクト図 • コンポーネント図 • 配置図 41 コンポーネント図 • 実装段階での要素(コンポーネント)間の関係を表現 • コンポーネント – ソースコードやランタイム/実行ファイルなど コンポーネント図の例 42 配置図 • ハードウェアとコンポーネントの関係を表現 コンポーネント図の例 43 まとめ • UMLとはオブジェクト指向のモデリング言語 • UMLは開発プロセスとは独立 • UMLでは9つの図を描ける – 実際に多用されるのは、ユースケース図、クラス 図、シーケンス図 44
© Copyright 2024 ExpyDoc