• 検索結果がありません。

Jude を DSL エディタとして使う -Jude API 活用法 年 11 月 14 日稚内北星学園大学東京サテライト校浅海智晴 本日のテーマ Why Jude API What Jude API How Jude API 1

N/A
N/A
Protected

Academic year: 2021

シェア "Jude を DSL エディタとして使う -Jude API 活用法 年 11 月 14 日稚内北星学園大学東京サテライト校浅海智晴 本日のテーマ Why Jude API What Jude API How Jude API 1"

Copied!
11
0
0

読み込み中.... (全文を見る)

全文

(1)

JudeをDSLエディタ

として使う

-

Jude

API活用法-2006年11月14日

稚内北星学園大学

東京サテライト校

浅海智晴

本日のテーマ

Why Jude API

What Jude API

How Jude API

(2)

技術トレンド

テクノロジとしてのWeb 2.0

Webがプラットフォームになる

シン・クライアントからリッチ・クライアントへ

Webの単純なUIでは限界

メイン・フレーム、クライアント・サーバ・システム

もそろそろ限界

オブジェクトからコンポーネントへ

開発の主役となるモデル要素がより上位のコン

ポーネントに移行

プログラミングからメタ・プログラミングへ

ツールによる自動生成

フレームワークによる自動生成

“手続き”から”宣言”へ

次世代ソフトウェア開発

ドメイン・モデル ユースケース・モデル エンタープライズ・ システム 論理モデル(PIM) J2EE 1.4 物理モデル(PSM) テクノロジとしてのWeb 2.0 シン・クライアントから リッチ・クライアントへ オブジェクトから コンポーネントへ プログラミングから メタ・プログラミングへ 問題空間 解決空間 JEE 5 物理モデル(PSM) Struts+Spring+ Hibernate 物理モデル(PSM) ??? 物理モデル(PSM) 50% 生成器 90% 生成器 20% 生成器

(3)

MDAとMDD/MDE

MDA(Model Driven Architecture)

OMGによるモデル駆動の体系

モデルはUML(+α)のみで記述

アプリケーション全体を生成

MDD(Model Driven Development)

MDE(Model Driven Engineering)

いずれも最近よく聞く用語

MDAはOMGの技術。モデル駆動をより広い範

囲でとらえた技術体系を指向

モデルはDSLで記述(してもよい)

アプリケーションの一部を生成(してもよい)

DSLとは

Domain Specific Language

ドメインの範囲の中で、

ドメインに適した方法で、

ドメインのモデルを記述するための言語

DSLのドメインとは

いわゆる問題領域の概念モデルだけを指すのではなく、用途ご

とに定めた領域を指す

たとえば、XMLのスキーマや画面設計といった技術領域もドメイ

汎用言語(e.g. UML)との相違点

○:効率的に記述できる

○:プログラムの自動生成と直結

×:記述できる範囲が限定される

×:用途ごとに言語を選択しなければならない

(4)

DSLによる自動生成

OO分析

DSL

DSL

OO設計

OO実装

DSL

OO設計

OO実装

コンポーネント

コンポーネント

コンポーネント

コンポーネント

コンポーネント

自動生成

自動生成

自動生成

OO分析

分析

設計

実装

Jude

UML 1.5対応のUMLエディタ

UMLの基本機能を網羅

UML 2.0に対応中

軽くて使いやすい

気軽に文房具として利用できる

マインド・マップ

UMLの弱点を補う

(5)

Jude API

JudeのモデルをJavaプログラムから操

作するためのAPI

現在は参照のみ

Judeの配布物に含まれるjude-api.jarを

使用

Jude本体のjude-pro.jar(JUDE-Professionalの場合)を併用

Jude APIの理由

JudeをDSLエディタとして利用することができ

Judeの操作性

使いやすい

Judeメタモデル

シンプル

本当のUMLメタ・モデルは操作が大変

マインド・マップ

UMLと相互補完

構造(UML)⇔半構造(マインド・マップ)

(6)

マインド・マップ

構造と半構造

構造

スキーマによって完全に規定されている構造

データ構造固有のスキーマがアプリケーションを規定する

例:RDBMS、UML

半構造

スキーマによって緩やかに規定されている構造

アプリケーション固有のスキーマをデータ構造に適用する

例:XML、マインド・マップ

マインド・マップ

木構造による情報表現

人間の認知モデルと相性のよい表現形式を持っている

現状はアイデア・プロセッサ的な利用方法

半構造データとして考えるとデータとしての応用が期待できるはず

マインド・マップとXML

XMLに期待されていた応用の中で、半

構造データによる知識表現はマインド・

マップが適している

構造化されていない知識を緩やかな構

造として表現する

効率的に半構造データを編集するため

のエディタ

(7)

Mindmap Modeling

テーマ

パレット

規則

メモ

脚本

出来事

道具

登場人物

道具 登場人物 役割 出来事 部品 配役 種類

Mindmap Modelingの例

(8)

Mindmap Modelingから

手作業で作成したクラス図

Relaxer5 Domain Object Model

セマンティクスはUMLのサブセット+α

利用する範囲を絞り込みステレオタイプとタグ付き値を

使って拡張

ノーテーションはクラス図、マインドマップなど応用に応

じて選択

モデルの精密度、編集の容易さ、視認性のよさ

Relaxer5 Domain-Object MetaModel

Notation

Excel DSL

Mindmap DSL

XML DSL Semantics

(9)

Relaxer5 Domain Object Model

からの展開

SmartCase5

Java Relaxer5 Domain Object Model

Rlaxer5 Domain Object Model

Mindmap DSL

Rlaxer5 Domain Object Model

Jude Class DSL

Rlaxer5 Domain Object Model

Java DSL Java EE Entity Bean 生成 生成 生成 同期 用語集 同期 ユースケース モデル Java Beans Relaxer5 Framework Domain Object Model

Java Java EE Session Bean (Interface) Java Interface Relaxer5 Framework Component Model (Specification) 生成

Jude Class DSL

Jude Class図をDSLとして使う

ステレオ・タイプでクラスの種類を指定

+ 注文日時 : dateTime + 注文ID : 注文ID <<event>> <<DomainObject>> 注文 + 顧客名 : String + 顧客ID : 顧客ID <<actor>> <<DomainObject>> 顧客 1..* + 注文番号 : int <<part>> <<event>> <<DomainObject>> 注文明細 + 商品名 : String + 商品ID : 商品ID <<resource>> <<DomainObject>> 商品

(10)

Jude Mindmap DSL

マインド・マップをDSLとして使う

半構造データのモデル化

半構造を表現するための「枝」(構造枝と呼んでいる)を用意

半構造のスキーマを用意

顧客注文商品

出来事

道具

登場人物

注文 商品 顧客 部品 部品 出来事 部品 注文明細* 注文ID 商品名 商品ID 注文 顧客名 顧客ID 部品 商品

デモ

SmartCase5 Java Relaxer5 Domain Object Model

Rlaxer5 Domain Object Model

Mindmap DSL

Rlaxer5 Domain Object Model

Jude Class DSL

Rlaxer5 Domain Object Model

Java DSL Java EE Entity Bean 生成 生成 生成 同期 用語集 同期 ユースケース モデル Java Beans Relaxer5 Framework Domain Object Model

Java Java EE Session Bean (Interface) Java Interface 生成

Relaxer5

Domain Object Model

からJava Beansを生成

Relaxer5

Domain Object Model

(11)

Judeに対する要望

Jude APIの拡張

モデルの更新

対象モデルの拡大

用途向けカスタマイズの充実

プロジェクトの雛形

モデル構成

ステレオタイプ

マインド・マップ

マインド・マップの半構造スキーマを使用した

ノード生成機能

Mindmap Modelingの例では「”種類ノード”の挿入」で、

枠つき、アイコンつきのノードが挿入されるとうれしい

参照

関連したドキュメント

2022 年 7 月 29 日(金)~30 日(金)に宮城県仙台市の東北大学星陵オーディトリウ ムにて第

クチャになった.各NFは複数のNF  ServiceのAPI を提供しNFの処理を行う.UDM(Unified  Data  Management) *11 を例にとれば,UDMがNF  Service

サーバー API 複雑化 iOS&amp;Android 間で複雑な API

R_DMACn_Suspend R_DMACn_Resume R_DMACnm_Create R_DMACnm_Start R_DMACnm_Stop.

従来から iOS(iPhone など)はアプリケーションでの電話 API(Application Program

小学校学習指導要領より 第4学年 B 生命・地球 (4)月と星

キャンパスの軸線とな るよう設計した。時計台 は永きにわたり図書館 として使 用され、学 生 の勉学の場となってい たが、9 7 年の新 大

Conditions for transmitter specifications unless otherwise specified with the antenna network from AX−SFUS Application Note: Sigfox Compliant Reference Design and at 902.2 MHz?.