290 likes | 534 Views
UML :統一モデリング言語. 2004 年 10 月 29 日 水田幸夫. 法政大学大学院 情報科学研究課. UML とは. コンピュータ・システムの設計図を描く ビジュアル な モデリング のための 言語 OMG : Open Management Group (OMG) → 世界標準規格 ( 現在 V1.5 、 V2.0 策定中 ) モデリング →「対象物」の構造・性質を目に見える形で表現. UML の特徴. システム開発方法 設計図の記法 + システム開発の進め方 システムの設計図を描くための、規格化された記号・ルール集 ビジネスプロセスの表現
E N D
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 main_bank:Bank ac2 : BankAccount ac1 : BankAccount BankAccount ac3 : BankAccount
Activity Diagram • 処理の流れを記述 ActionState1 ActionState2 ActionState3
State Chart Diagram • オブジェクトの状態変化
Collaboration Diagram • オブジェクト間のメッセージ交換を表現 objA : ClassA objB : ClassB 1 :meesageA(args) 2: meesageB(args) objC : ClassC objD : ClassD 3 :meesageC(args)
<<file>> Item.java Component Diagram • システムを構成する物理的なファイルやデータベースを表現 • コンポーネント • ソースファイル • データファイル • 実行可能ファイル • データベーステーブル • コンポーネント・ソフトウェア
objA: ClassA objB: ClassB Deployment Diagram • コンポーネントおよびコンポーネント間の依存性を表す経路を表現 • 物理的な媒体、システムのハードウェアなどを表現 Server1 Client1
Application Manager - build: int=2 - prm1: int + main(): void + method(): int Class Diagram 1 Application Customer - id: String - name: String - address: String Manager + getCopy() : Customer Customer *
Class Diagram 2 • interface は、イタリックまたは、{abstract}をクラス名の下に • : private+: publice#: protected Item class name - id: String - name: String - price: int Data Field + setId(id: String) : void + getId() : String + setName(name: String) : void + getName() : String + setPrice(price: int) : void + getPrice() : int Class Name Class Name Class Name Class Name Method Data Fields Methods
Class Diagram 3 クラス図に対応するJavaコード (JavaBeans) 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; }}
Class Diagram 4 • いろいろな表記 java.lang.Thread <<active>> MyClass Stereotype 注釈 汎化 実現 <<active>> MyClass このクラスはスレッド <<active>> MyClass
Class Diagram 5 Package jp.ac.hosei.huang ClassABC ClassA - clsB: ClassB ClassB jp.ac.hosei.huang.ClassABC
Class Diagram 6 pulic class ClassA { private int price = 3; } 初期値 – price: int = 30 pulic class ClassA { private final int price = 3; } 定数 – price: int = 30{frozen} pulic class ClassA { static int price; } スコープ – price: int pulic class ClassA { private int [ ] data = new int[10]; } 多重度 – data[10]: int
Class Diagram 7 関連と多重度 → 配列やCollectionクラスで表現 Collectionグループ Vector, AllayList, TreeSet, HashSetMapグループ HashTable, HashMap 1 4 public class Group { ArrayList member = new ArrayList(); public Group(Member[ ] members){ for (int I = 0; i < members.length; i++){ this.members.add(members[i]); } } wheel car 1 * Member Group
Sequence Diagram 1 • オブジェクト間のメッセージ交換を時間軸を基準に表現する objectA : ClassA objectB : ClassB objectC : ClassC 1:callClassB() オブジェクト名 1.1 :callClassC1() ベースクラス名 1.2 :callClassC2() 1.3 :callClassC3() ライフライン
Sequence Diagram 2 objectC objectA objectB 分岐 1-A :[ガード条件A] message1() 同期メッセージ 1-B :[ガード条件B] message1() 2 : message2() 非同期メッセージ 同期メッセージへのリターン 活性区間 終端記号
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:プラットフォーム毎の実装モデル