内容と予定( - jaist.ac.jp ochimizu/jaist-local/静的モデリング手法.pdf ·...

Download 内容と予定( - jaist.ac.jp ochimizu/jaist-local/静的モデリング手法.pdf · •モデリング手法の獲得

Post on 29-Aug-2019

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • 内容と予定(1) • 目標と範囲

    • 基礎概念の獲得

    – オブジェクト指向の基礎概念:世界の表現

    – オブジェクト指向の基礎概念:再利用

    – オブジェクト指向プラグラムの構造

    – オブジェクト指向技術の優位性

    • モデリング手法の獲得

    – 静的モデル:クラスと関連

    – 動的モデル:状態機械

    – 動的モデル:相互作用図

    – 並行性の記述:アクティブオブジェクトとマルチスレッ ドプログラミング

    – UML2.0概要 北陸先端大 落水浩一郎

  • 静的モデル (クラスと関連)

    落水 浩一郎

    北陸先端大 情報科学研究科

    北陸先端大 落水浩一郎

  • 保険ビジネスの単純なモデル

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス

    保険会社 保険 契約

    顧客 1 0..* 0..* 1..*

    北陸先端大 落水浩一郎

  • 可視性

    • + public そのクラスの外側から参照できる – 本例は情報隠蔽原理に反している

    • - private 他のクラスから参照できない • # protected サブクラスからは参照できる

    請求書

    + amount : Real + date : Date + customer : String + specification : String - administration : String

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • クラススコープ属性またはクラス変数

    • クラス変数(下線)とはクラスのすべての オブジェクトで共有される属性である

    請求書

    + amount : Real + date : Date = Current date + customer : String + specification : String - administration : String = “Unspecified” - number of invoices : Integer

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • クラス・スコープ操作

    • クラス変数の操作 • オブジェクトの生成

    size : Size pos : Position figcounter : Integer

    draw() getCounter(): Integer

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 操作の可視性

    • 操作の構文 • 可視性名前(パラメータリスト):戻り値の型{プロパティストリン

    グ}

    size : Size pos : Position

    + draw() + scaleFigure(percent: Integer = 25) + returnPos(): Position

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 操作のシグニチャ

    • 戻り値の型、名前、パラメータの型を操作のシグニチャと呼ぶ

    自動車

    + registration number : String - data : CarData + speed : Integer + direction : Direction - administration : String

    + drive(speed: Integer, direction: Direction) + getData(): CarData

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • UML記法

    羽生田栄一監訳「UMLユーザガイド」ピアソンエデュケーション

    UMLにおけるクラス間の関係の表現

    依存: 矢の方の変更が根の方のセマンティクスに 影響を与える場合がある

    誘導: 根のクラスから矢の方のクラスにたどれる

    関連

    汎化

    集約:全体ー部分関連

    コンポジション:全体ー部分関連、寿命が同じ

    北陸先端大 落水浩一郎

  • 多重度

    人 自動車 0..*1..*

    人 自動車 0..*所有する

    所有される

    所有する

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 保険ビジネスに対するクラス図

    顧客

    1..*

    保険証書

    0..1

    保険契約保険会社 1

    1

    0..*

    0..*

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 再帰的関連

    Node

    Connects

    *

    *

    結婚している

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • Component

    Operation() Add(Component)

    Remove(Component) GetChild(int)

    Composite (複合)

    Client *

    Leaf

    Operation()

    本位田真一、吉田和樹監訳「デザインパターン」SoftBank Books

    Clientは、Componentクラスのインタフェースを使って、Composite構造内のオブ ジェクトを操作する。オペレーションの受け手がleafであれば、その要求は直接 処理される。Compositeが受け取った場合には、通常、その要求を子にあたる componentに転送し、さらに転送の前後に付加的なオペレーションを実行するこ ともある。

    Composite Operation()

    Add(Component) Remove(Component)

    GetChild(int)

    forall g in children

    g.Operation()

    children

    北陸先端大 落水浩一郎

  • オブジェクト図の例

    本位田真一、吉田和樹監訳「デザインパターン」SoftBank Books

    aComposite

    aCompositeaLeafaLeaf

    aLeafaLeafaLeaf

    aLeaf

    北陸先端大 落水浩一郎

  • 限定付き関連

    図*キャンバス

    図キャンバス figure ID

    限定付き関連はモデルの多重度を1対多から1対1に削減する

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • OR関連

    人 会社

    0..* 保険契約保険会社

    1

    0..

    0..*

    1..* 1..*

    人 会社

    0..* 保険契約保険会社

    1

    0..

    0..*

    1..* 1..*

    {or}

    保険会社は一度に会社と人 の両方に関連を持てない

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 順序付き関連

    保険契約

    0..*

    1..*

    { ordered }

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 関連クラス

    エレベータ制御

    ボタン

    エレベータ

    待行列

    *

    4

    エレベータとエレベータ制御間のリ ンクのおのおのには、行列がある

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 3項関連

    保険証書

    保険契約保険会社

    1 0..*

    1..*

    0..1

    0..*

    証書保管者

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 集約とは

    • クラス間の全体-部分関係 • is-part-ofという特別な関連 • 集約の種類

    – 集約 – 共用集約 – コンポジション集約

    集約:全体-部分関連

    コンポジション:全体-部分関連、寿命が同じ

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 集約

    軍艦*海軍

    この例はあまりよくない

    保有する

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • 共用集約

    人チーム

    部分が複数の全体の部分であってよい

    会員である

    **

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • コンポジション集約

    ウィンドウ

    全体が削除されると部分もなくなる

    *

    *

    *

    テキスト

    リストボックス

    ボタン

    メニュー

    *

    H.E.エリクソン、M.ペンカー「UMLガイドブック」エスアイビーアクセス 北陸先端大 落水浩一郎

  • まとめた表現

    ウィンドウ

    全体が削除されると部分もなくなる

    *

    *

    *

    *

    テキスト

    リストボックス

    ボタン

    メニュー

    テキスト

    リストボックス

    ボタン

    メニュー

    ウィンドウ

    *

    *

    *

    *

    H.E.