23
UML モデルを使った自動生成

UMLモデルを使った自動生成

Embed Size (px)

Citation preview

Page 1: UMLモデルを使った自動生成

UML モデルを使った自動生成

Page 2: UMLモデルを使った自動生成

自己紹介

株式会社アクティア

代表取締役社長 大島則人

モデルベースソフトウェア開発との出会い 2003年頃 Executable UML との出会い

動かないモデルはただのスケッチだ!

OMG MDA ガイドライン v1.0

2008年4月モデルベースソフトウェア開発開始

Page 3: UMLモデルを使った自動生成

コミュニティでの活動テーマ

動くモデルを作ろう!

Page 4: UMLモデルを使った自動生成

動くって何?

Page 5: UMLモデルを使った自動生成

動くモデル

モデル↓

Transformation

コード

Page 6: UMLモデルを使った自動生成

動くモデル ≒コード生成

Page 7: UMLモデルを使った自動生成

モデルからコードを生成する

public class 顧客 {

private String 顧客名;

public String get顧客名() {

return this.顧客名;

}

public void set顧客名(String 顧客名) {

this.顧客名 = 顧客名;

}

}

Page 8: UMLモデルを使った自動生成

動いた?うれしい?

Page 9: UMLモデルを使った自動生成

自動生成は戦略ありき(方法論)

UML でモデリングしたものをコード生成する

自動生成するためのモデルを UML で作る

Page 10: UMLモデルを使った自動生成

静的構造のモデリング

Page 11: UMLモデルを使った自動生成

クラスモデル

クラスに役割(stereotype)を付ける

データベースエンティティ?

サービスクラス?

役割毎にテンプレートを換える

Page 12: UMLモデルを使った自動生成

どんな役割を作るか?

標識が無いと役割(stereotype)が決まらない

設計の方法論が必要

Page 13: UMLモデルを使った自動生成

DDD の主なクラス分類

Entity永続化されるドメインオブジェクト顧客、社員、注文

Value Objectドメインの値クラス顧客名、社員番号、注文日、電話番号

Service複数のドメインオブジェクトを操作する

Repository永続化装置とドメインの境界

Page 14: UMLモデルを使った自動生成

ドメインモデル

Page 15: UMLモデルを使った自動生成

VALUEOBJECTS

Page 16: UMLモデルを使った自動生成

SERVICE / REPOSITORY

Page 17: UMLモデルを使った自動生成

振る舞い(操作)のモデリング

Page 18: UMLモデルを使った自動生成

振る舞いのモデリング

シーケンス図、コミュニケーション図で最終コードは作れない。※作れるかもしれないですが保守したくない。

Domain Specification Language

Page 19: UMLモデルを使った自動生成

操作のコメントへ記述

Page 20: UMLモデルを使った自動生成

暗黙に追加される操作

Page 21: UMLモデルを使った自動生成

導出属性にも対応

合計旅費の計算

Page 22: UMLモデルを使った自動生成

ステレオタイプの利用

ステレオタイプとタグ付き値で対応付け

/employee へ GET リクエストを送ると社員サービス#一覧を取得する() が呼び出される

Page 23: UMLモデルを使った自動生成

デモンストレーション