uml :統一モデリング言語
DESCRIPTION
UML :統一モデリング言語. 2004 年 10 月 29 日 水田幸夫. 法政大学大学院 情報科学研究課. UML とは. コンピュータ・システムの設計図を描く ビジュアル な モデリング のための 言語 OMG : Open Management Group (OMG) → 世界標準規格 ( 現在 V1.5 、 V2.0 策定中 ) モデリング →「対象物」の構造・性質を目に見える形で表現. UML の特徴. システム開発方法 設計図の記法 + システム開発の進め方 システムの設計図を描くための、規格化された記号・ルール集 ビジネスプロセスの表現 - PowerPoint PPT PresentationTRANSCRIPT
UML:統一モデリング言語
2004 年 10 月 29日水田幸夫
法政大学大学院情報科学研究課
UMLとは
コンピュータ・システムの設計図を描くビジュアルなモデリングのための言語
OMG : Open Management Group (OMG)→ 世界標準規格 ( 現在 V1.5 、 V2.0 策定中 )
モデリング→「対象物」の構造・性質を目に見える形で表現
UMLの特徴
システム開発方法設計図の記法 + システム開発の進め方
システムの設計図を描くための、規格化された記号・ルール集
ビジネスプロセスの表現 オブジェクト指向プログラミングと相性がよ
いcf. プログラムのロジック → フローチャート
UMLのダイアグラム -1
機能を表す図1)ユースケース図2)アクティビティ図
静的な構造を表す図3)クラス図4)オブジェクト図
UMLのダイアグラム -2
動的な振る舞いを表す図5)ステートチャート図6)シーケンス図7)コラボレーション図
動的な振る舞いを表す図8)コンポーネント図9)デプロイメント図
Use Case Diagram
「システム」と「システムの利用者」 詳細はユースケース記述
ユースケース1
ユースケース2
ユーザー システム境界
Object Diagram
クラスから作成されるオブジェクトのある時点での様子を表現
Bank
BankAccount
クラス図 オブジェクト図
main_bank:Bank
ac1 : BankAccount
ac3 : BankAccount
ac2 : BankAccount
Activity Diagram
処理の流れを記述
ActionState1
ActionState3ActionState2
アクティビティ図例
State Chart Diagram
オブジェクトの状態変化
状態1 状態2 状態3 状態4
状態5
Collaboration Diagram
オブジェクト間のメッセージ交換を表現
objA : ClassA objB : ClassB
objC : ClassC objD : ClassD
1 :meesageA(args)2: meesageB(args)
3 :meesageC(args)
Component Diagram
システムを構成する物理的なファイルやデータベースを表現
コンポーネント– ソースファイル– データファイル– 実行可能ファイル– データベーステーブル– コンポーネント・ソフトウェア
<<file>>
Item.java
Deployment Diagram
コンポーネントおよびコンポーネント間の依存性を表す経路を表現
物理的な媒体、システムのハードウェアなどを表現
objA: ClassA
objB: ClassB
Server1
Client1
クラス図例
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*
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
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)
Class Diagram 4
いろいろな表記
<<active>>MyClass
<<active>>MyClass
このクラスはスレッド
<<active>>MyClass
java.lang.ThreadStereotype
注釈汎化 実現
Class Diagram 5
jp.ac.hosei.huang
Package
ClassABC
jp.ac.hosei.huang.ClassABC
ClassA- clsB: ClassB ClassB
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];}
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
Sequence Diagram 1
オブジェクト間のメッセージ交換を時間軸を基準に表現するobjectA : ClassA objectB : ClassB objectC : ClassC
1:callClassB()
1.1 :callClassC1()
1.2 :callClassC2()
1.3 :callClassC3()
オブジェクト名
ベースクラス名
ライフライン
Sequence Diagram 2
objectA
1-A :[ガード条件 A] message1()
活性区間
同期メッセージ
objectB
2 : message2()
終端記号
非同期メッセージ
同期メッセージへのリターン
objectC分岐
1-B :[ガード条件B] message1()
CASE Tool for UML
CASEツール(Computer Aided Software Engineering) :ソフトウェア開発に広く利用されている
IBM : Rational Rose
Sun, Microsoft,
Boland,
Oracle 、Open Source etc.
Model Drive Architecture (MDA)
目的:業務プロセス、ソフトウェアのモデル化による開発・実装・メンテナンスの効率化
PIM: プラットフォームに依存にしないモデルPSM :プラットフォーム毎の実装モデル
Model Drive Architecture (MDA)