Top Banner
©2013 Shintaro Hosoai U M L Unified Modeling Language 細細 細細細 2013/8/21 1
12

Umlとは

May 06, 2015

Download

Technology

Shintaro Hosoai

LED-Camp(http://swest.toppers.jp/LED-Camp/)用の事前教材です。
ざっくりとUMLを解説したもので、厳密にはおかしな処も多々あります・・、UMLの詳細につきましては各種書籍、仕様書等をご参考ください。
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Umlとは

©2013 Shintaro Hosoai

U M LUnified Modeling Language

細合 晋太郎

2013/8/211

Page 2: Umlとは

©2013 Shintaro Hosoai2

そもそもモデリングってなあに?• システムって超複雑

いきなり作る ( 考える ) のは無理

• ある観点だけをある抽象度で抽出したもの → モデル• 世にあるほとんどの~図はモデルと言ってもいい

• Ex) 上から見た構造 → 上面図• Ex) 粘土で形だけ → クレイモデル• Ex) 音階とタイミングで音楽を分解 → 楽譜2013/8/21

観点

観点

おおまかにどんな構造?どん

な形?

どう動く?

具体的ににどんな構造?

どんな順番で動く?どんな状態がある?どんなメッセージをやりとりする?

抽象度

いろんな観点と抽象度で 考えて(設計して)から実装

Page 3: Umlとは

©2013 Shintaro Hosoai3

構造モデルと振舞いモデル

• 観点は大きく分けると構造と振舞いに大別できる。• どんな形をしているのか?どんな動きをするのか?

• UML では、構造と振舞いのモデルが様々な抽象度と観点で定義されている。

UML モデルは厳密に定義されている。• UML の仕様書( Super Structure )• http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF/

2013/8/21

Page 4: Umlとは

©2013 Shintaro Hosoai4

UML の歴史

1990 年代。世は OOP 開発方法論戦国時代開発方法論ごとに数多のモデリング言語が入り乱れ、表記法で表記法を洗う熾烈なモデル存在競争を繰り広げていたこのままでは、開発者同士の意思の疎通すら難しい現代版バベルの塔となってしまう

3 人の漢が立ち上がった。

2013/8/21

Page 5: Umlとは

©2013 Shintaro Hosoai5

Three Amigos

2013/8/21

Grady Booch Ivar JacobsonJames Rumbaugh

http://www.itmedia.co.jp/im/articles/0212/18/news001.htmlhttp://en.wikipedia.org/wiki/Grady_Booch http://en.wikipedia.org/wiki/Ivar_Jacobson

画像は以下より転載

Page 6: Umlとは

©2013 Shintaro Hosoai6

モデリング言語の統一

2013/8/21

http://thinkit.co.jp/free/compare/12/1/より転載

UML 2.1.1

UML 2.1.2

UML 2.2

UML 2.3

UML 2.4

UML 2.4.1

2007,Aug

2007,Nov

2009,Feb

2010,May

2011,Mar

2011,Aug

2013/08/10 現在

Page 7: Umlとは

©2013 Shintaro Hosoai7

UML Diagrams   (version 2.4.1)

2013/8/21 http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF/  pp710

Page 8: Umlとは

©2013 Shintaro Hosoai8

構造モデル

•Deployment Diagram :配置図• Component Diagram :コンポーネント図• Composite Structure Diagram :複合構造図• Package Diagram :パッケージ図• Class Diagram :クラス図•Object Diagram :オブジェクト図

• Profile Diagram :プロファイル図

2013/8/21

抽象度

これは別観点

Page 9: Umlとは

©2013 Shintaro Hosoai9

振舞いモデル

•Use Case Diagram :ユースケース図• Activity Diagram :アクティビティ図• State Machine Diagram :ステートマシン図• Interaction Diagram :相互作用図• Sequence Diagram :シーケンス図• Communication Diagram :コミュニケーション図• Interaction Overview Diagram :相互作用概念図• Timing Diagram :タイミング図

2013/8/21

振舞いモデルは、見たい観点がそれぞれ異なる。

外界との関係、要求システムフロー状態

オブジェクト間フローオブジェクト相互関係図間のオーバービュー動作タイミング

Page 10: Umlとは

©2013 Shintaro Hosoai10

クラス図

システムのクラス構造を書くためのモデル箱でクラスの構造を、線でクラス間の関係を表現する

線種

2013/8/21

クラス名属性 *

操作 *

ここにクラス名

クラス変数

メソッド

クラス A クラス B

子クラス C

11

多重度

単方向関連

双方向関連

継承

集約コンポジション

Page 11: Umlとは

©2013 Shintaro Hosoai11

ステートマシン図

• 状態と遷移を可視化するモデル• ある状態の時に、その状態から

の遷移に指定されているイベントが入ると次状態に遷移する• Guard

• イベントが入った際でも Guard に指定された条件が満たされていないと遷移しない

• Action• 遷移が発生した際にここで指定した Action が

実行される

• EntryEvent• その状態に入った際にここで指定した Action

が実行される

2013/8/21

StateEntryAction()

状態 初期状態

終了状態EntryAction

状態名 Event[Guard]/Action

StateA StateB

StateC

EventA

EventBEventC

EventD

遷移

Page 12: Umlとは

©2013 Shintaro Hosoai12

クラス図・ステートマシン図のモデリング

• 何を作りたいかを明確にする• 作りたいシステムの機能を洗い出す• 近い機能ごとにまとめてみる → クラスに出来そうか考える• クラスとして書き出す、クラス間の関係を考える• クラスが状態を持つか考える• 状態を持つクラスをステートマシンに書き出す• ステートマシン図、クラス図に齟齬がないか確認• 適宜、リファクタリングを行い設計を進める

2013/8/21