uml :統一モデリング言語

29
UML 統統 統統統統統統統 :一 2004 年 10 年 29 年年年年 年年年年年年年 年年年年年年年

Upload: gavril

Post on 12-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

UML :統一モデリング言語. 2004 年 10 月 29 日 水田幸夫. 法政大学大学院 情報科学研究課. UML とは. コンピュータ・システムの設計図を描く ビジュアル な モデリング のための 言語 OMG : Open Management Group (OMG) →  世界標準規格  ( 現在 V1.5 、 V2.0 策定中 ) モデリング →「対象物」の構造・性質を目に見える形で表現. UML の特徴. システム開発方法 設計図の記法 +  システム開発の進め方 システムの設計図を描くための、規格化された記号・ルール集 ビジネスプロセスの表現 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: UML :統一モデリング言語

UML:統一モデリング言語

2004 年 10 月 29日水田幸夫

法政大学大学院情報科学研究課

Page 2: UML :統一モデリング言語

UMLとは

コンピュータ・システムの設計図を描くビジュアルなモデリングのための言語

OMG : Open Management Group (OMG)→  世界標準規格  ( 現在 V1.5 、 V2.0 策定中 )

モデリング→「対象物」の構造・性質を目に見える形で表現

Page 3: UML :統一モデリング言語

UMLの特徴

システム開発方法設計図の記法  +  システム開発の進め方

システムの設計図を描くための、規格化された記号・ルール集

ビジネスプロセスの表現 オブジェクト指向プログラミングと相性がよ

いcf. プログラムのロジック → フローチャート

Page 4: UML :統一モデリング言語

UMLのダイアグラム -1

機能を表す図1)ユースケース図2)アクティビティ図

静的な構造を表す図3)クラス図4)オブジェクト図

Page 5: UML :統一モデリング言語

UMLのダイアグラム -2

動的な振る舞いを表す図5)ステートチャート図6)シーケンス図7)コラボレーション図

動的な振る舞いを表す図8)コンポーネント図9)デプロイメント図

Page 6: UML :統一モデリング言語

Use Case Diagram

「システム」と「システムの利用者」 詳細はユースケース記述

ユースケース1

ユースケース2

ユーザー システム境界

Page 7: UML :統一モデリング言語

Object Diagram

クラスから作成されるオブジェクトのある時点での様子を表現

Bank

BankAccount

クラス図 オブジェクト図

main_bank:Bank

ac1 : BankAccount

ac3 : BankAccount

ac2 : BankAccount

Page 8: UML :統一モデリング言語

Activity Diagram

処理の流れを記述

ActionState1

ActionState3ActionState2

Page 9: UML :統一モデリング言語

アクティビティ図例

Page 10: UML :統一モデリング言語

State Chart Diagram

オブジェクトの状態変化

状態1 状態2 状態3 状態4

状態5

Page 11: UML :統一モデリング言語

Collaboration Diagram

オブジェクト間のメッセージ交換を表現

objA : ClassA objB : ClassB

objC : ClassC objD : ClassD

1 :meesageA(args)2: meesageB(args)

3 :meesageC(args)

Page 12: UML :統一モデリング言語

Component Diagram

システムを構成する物理的なファイルやデータベースを表現

コンポーネント– ソースファイル– データファイル– 実行可能ファイル– データベーステーブル– コンポーネント・ソフトウェア

<<file>>

Item.java

Page 13: UML :統一モデリング言語

Deployment Diagram

コンポーネントおよびコンポーネント間の依存性を表す経路を表現

物理的な媒体、システムのハードウェアなどを表現

objA: ClassA

objB: ClassB

Server1

Client1

Page 14: UML :統一モデリング言語

クラス図例

Page 15: UML :統一モデリング言語

Class Diagram 1

Application

Manager

Customer

Application

- build: int=2

+ main(): void

Manager

- prm1: int

+ method(): int

Customer

- id: String- name: String- address: String

+ getCopy() : Customer*

Page 16: UML :統一モデリング言語

Class Diagram 2

Item

- id: String- name: String- price: int

+ setId(id: String) : void+ getId() : String+ setName(name: String) : void+ getName() : String+ setPrice(price: int) : void+ getPrice() : int

class name

Method

interface は、イタリックまたは、 {abstract} をクラス名の下に

-: private+: publice#: protected

Data Field

Class Name

Class NameData Fields

Class Name

Methods

Class Name

Page 17: UML :統一モデリング言語

Class Diagram 3

public class Item {

private String id:

private String name;

private int price;

public void setId(String id) { this.id = id; } public String getId() { return this.id; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setPrice(int price) { this.price = price; } public int getPrice() { return this.price; }}

クラス図に対応する Java コード (JavaBeans)

Page 18: UML :統一モデリング言語

Class Diagram 4

いろいろな表記

<<active>>MyClass

<<active>>MyClass

このクラスはスレッド

<<active>>MyClass

java.lang.ThreadStereotype

注釈汎化 実現

Page 19: UML :統一モデリング言語

Class Diagram 5

jp.ac.hosei.huang

Package

ClassABC

jp.ac.hosei.huang.ClassABC

ClassA- clsB: ClassB ClassB

Page 20: UML :統一モデリング言語

Class Diagram 6

初期値 – price: int = 30 pulic class ClassA { private int price = 3;}

 定数 – price: int = 30 {frozen}

pulic class ClassA { private final int price = 3;}

スコープ – price: intpulic class ClassA { static int price;}

多重度 – data[10]: int pulic class ClassA { private int [ ] data = new int[10];}

Page 21: UML :統一モデリング言語

Class Diagram 7

関連と多重度  → 配列や Collection クラスで表現

car wheel1 4

Group Member1 *

public class Group { ArrayList member = new ArrayList();

public Group(Member[ ] members){ for (int I = 0; i < members.length; i++){ this.members.add(members[i]); }

}

Collection グループ   Vector, AllayList, TreeSet, HashSetMap グループ HashTable, HashMap

Page 22: UML :統一モデリング言語

Sequence Diagram 1

オブジェクト間のメッセージ交換を時間軸を基準に表現するobjectA : ClassA objectB : ClassB objectC : ClassC

1:callClassB()

1.1 :callClassC1()

1.2 :callClassC2()

1.3 :callClassC3()

オブジェクト名

ベースクラス名

ライフライン

Page 23: UML :統一モデリング言語

Sequence Diagram 2

objectA

1-A :[ガード条件 A] message1()

活性区間

同期メッセージ

objectB

2 : message2()

終端記号

非同期メッセージ

同期メッセージへのリターン

objectC分岐

1-B :[ガード条件B] message1()

Page 24: UML :統一モデリング言語
Page 25: UML :統一モデリング言語
Page 26: UML :統一モデリング言語
Page 27: UML :統一モデリング言語

CASE Tool for UML

CASEツール(Computer Aided Software Engineering) :ソフトウェア開発に広く利用されている

IBM : Rational Rose

Sun, Microsoft,

Boland,

Oracle 、Open Source etc.

Page 28: UML :統一モデリング言語

Model Drive Architecture (MDA)

目的:業務プロセス、ソフトウェアのモデル化による開発・実装・メンテナンスの効率化

PIM: プラットフォームに依存にしないモデルPSM :プラットフォーム毎の実装モデル

Page 29: UML :統一モデリング言語

Model Drive Architecture (MDA)