Upload
norihito-ohshima
View
662
Download
0
Embed Size (px)
Citation preview
UML モデルを使った自動生成
自己紹介
株式会社アクティア
代表取締役社長 大島則人
モデルベースソフトウェア開発との出会い 2003年頃 Executable UML との出会い
動かないモデルはただのスケッチだ!
OMG MDA ガイドライン v1.0
2008年4月モデルベースソフトウェア開発開始
コミュニティでの活動テーマ
動くモデルを作ろう!
動くって何?
動くモデル
モデル↓
Transformation
↓
コード
動くモデル ≒コード生成
モデルからコードを生成する
public class 顧客 {
private String 顧客名;
public String get顧客名() {
return this.顧客名;
}
public void set顧客名(String 顧客名) {
this.顧客名 = 顧客名;
}
}
動いた?うれしい?
自動生成は戦略ありき(方法論)
UML でモデリングしたものをコード生成する
自動生成するためのモデルを UML で作る
静的構造のモデリング
クラスモデル
クラスに役割(stereotype)を付ける
データベースエンティティ?
サービスクラス?
役割毎にテンプレートを換える
どんな役割を作るか?
標識が無いと役割(stereotype)が決まらない
設計の方法論が必要
DDD の主なクラス分類
Entity永続化されるドメインオブジェクト顧客、社員、注文
Value Objectドメインの値クラス顧客名、社員番号、注文日、電話番号
Service複数のドメインオブジェクトを操作する
Repository永続化装置とドメインの境界
ドメインモデル
VALUEOBJECTS
SERVICE / REPOSITORY
振る舞い(操作)のモデリング
振る舞いのモデリング
シーケンス図、コミュニケーション図で最終コードは作れない。※作れるかもしれないですが保守したくない。
Domain Specification Language
操作のコメントへ記述
暗黙に追加される操作
導出属性にも対応
合計旅費の計算
ステレオタイプの利用
ステレオタイプとタグ付き値で対応付け
/employee へ GET リクエストを送ると社員サービス#一覧を取得する() が呼び出される
デモンストレーション