Submit Search
Upload
コミュニケーション図をシーケンス図に変換するスクリプトを3時間で書いた話
•
0 likes
•
479 views
ChangeVision
Follow
2021年5月28日に開催された「プラグイン開発者交流会」の発表スライドです。モデリングツールastahのプラグインの開発について情報交換する機会となりました。
Read less
Read more
Software
Report
Share
Report
Share
1 of 14
Recommended
KMC Font Project 1 - フォント製作・Typeface Designの基本
KMC Font Project 1 - フォント製作・Typeface Designの基本
k maztani
KMC Font Project 2 - 視覚調整実践/カーニング
KMC Font Project 2 - 視覚調整実践/カーニング
k maztani
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
Yoshitaka Kawashima
SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章
Yuichiro Saito
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
SIGGRAPH2017勉強会 Dynamic Fabrication
SIGGRAPH2017勉強会 Dynamic Fabrication
Eisuke Fujinawa
Android開発者とデザイナーの効率的な連携について
Android開発者とデザイナーの効率的な連携について
lychee .
SketchがAndroidのUIデザインに向いているワケ
SketchがAndroidのUIデザインに向いているワケ
Asami Yamamoto
Recommended
KMC Font Project 1 - フォント製作・Typeface Designの基本
KMC Font Project 1 - フォント製作・Typeface Designの基本
k maztani
KMC Font Project 2 - 視覚調整実践/カーニング
KMC Font Project 2 - 視覚調整実践/カーニング
k maztani
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
Yoshitaka Kawashima
SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章
Yuichiro Saito
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
youten (ようてん)
SIGGRAPH2017勉強会 Dynamic Fabrication
SIGGRAPH2017勉強会 Dynamic Fabrication
Eisuke Fujinawa
Android開発者とデザイナーの効率的な連携について
Android開発者とデザイナーの効率的な連携について
lychee .
SketchがAndroidのUIデザインに向いているワケ
SketchがAndroidのUIデザインに向いているワケ
Asami Yamamoto
20110824 gatracker-final
20110824 gatracker-final
susumukatachi
スマ研第2回レポート
スマ研第2回レポート
Shinpei Niiyama
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
HironoriTAKEUCHI1
ARの教科書 第9章 モデリングと注釈付け
ARの教科書 第9章 モデリングと注釈付け
machidyo
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
Tomohiro Iwahashi
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-
Mizushima Kazuhiro
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
Michitaka Yumoto
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
PlantUML Plugin 紹介スライド
PlantUML Plugin 紹介スライド
ChangeVision
テレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラ
ChangeVision
astah*関西勉強会7/14
astah*関西勉強会7/14
ChangeVision
koredake modeling accelerates agile
koredake modeling accelerates agile
ChangeVision
koredake modeling
koredake modeling
ChangeVision
Modeling by Verb
Modeling by Verb
ChangeVision
modeling-by-verb
modeling-by-verb
ChangeVision
Astah professional スタートガイド
Astah professional スタートガイド
ChangeVision
Astah UML スタートガイド
Astah UML スタートガイド
ChangeVision
Astah Plug-ins 作ろう!試そう!プラグイン!
Astah Plug-ins 作ろう!試そう!プラグイン!
ChangeVision
Astah Community スタートガイド
Astah Community スタートガイド
ChangeVision
More Related Content
Similar to コミュニケーション図をシーケンス図に変換するスクリプトを3時間で書いた話
20110824 gatracker-final
20110824 gatracker-final
susumukatachi
スマ研第2回レポート
スマ研第2回レポート
Shinpei Niiyama
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
HironoriTAKEUCHI1
ARの教科書 第9章 モデリングと注釈付け
ARの教科書 第9章 モデリングと注釈付け
machidyo
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
Tomohiro Iwahashi
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-
Mizushima Kazuhiro
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
Michitaka Yumoto
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
Similar to コミュニケーション図をシーケンス図に変換するスクリプトを3時間で書いた話
(8)
20110824 gatracker-final
20110824 gatracker-final
スマ研第2回レポート
スマ研第2回レポート
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
ARの教科書 第9章 モデリングと注釈付け
ARの教科書 第9章 モデリングと注釈付け
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
More from ChangeVision
PlantUML Plugin 紹介スライド
PlantUML Plugin 紹介スライド
ChangeVision
テレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラ
ChangeVision
astah*関西勉強会7/14
astah*関西勉強会7/14
ChangeVision
koredake modeling accelerates agile
koredake modeling accelerates agile
ChangeVision
koredake modeling
koredake modeling
ChangeVision
Modeling by Verb
Modeling by Verb
ChangeVision
modeling-by-verb
modeling-by-verb
ChangeVision
Astah professional スタートガイド
Astah professional スタートガイド
ChangeVision
Astah UML スタートガイド
Astah UML スタートガイド
ChangeVision
Astah Plug-ins 作ろう!試そう!プラグイン!
Astah Plug-ins 作ろう!試そう!プラグイン!
ChangeVision
Astah Community スタートガイド
Astah Community スタートガイド
ChangeVision
More from ChangeVision
(11)
PlantUML Plugin 紹介スライド
PlantUML Plugin 紹介スライド
テレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラ
astah*関西勉強会7/14
astah*関西勉強会7/14
koredake modeling accelerates agile
koredake modeling accelerates agile
koredake modeling
koredake modeling
Modeling by Verb
Modeling by Verb
modeling-by-verb
modeling-by-verb
Astah professional スタートガイド
Astah professional スタートガイド
Astah UML スタートガイド
Astah UML スタートガイド
Astah Plug-ins 作ろう!試そう!プラグイン!
Astah Plug-ins 作ろう!試そう!プラグイン!
Astah Community スタートガイド
Astah Community スタートガイド
コミュニケーション図をシーケンス図に変換するスクリプトを3時間で書いた話
1.
コミュニケーション図を シーケンス図に変換する スクリプトを3時間で 書いた話 チェンジビジョン りりぃ
2.
コミュニケーション図をシーケンス図に変換するスクリプト CommunicationDiagramToSequenceDiagramConverter.java
3.
今回は急に降って湧いてきたアイディアでした。 SysMLにコミュニケーション図は無いし、PlantUMLにも無いよね。 じゃあコミュニケーション図はシーケンス図に変換できたほうが色々便利かな? 簡単にできそうだし作ってみるか。 私の作りたい物のヒント ● 自分がいかに仕事で楽したいか。欲しいものを作る ● ユーザーの要望から。役に立ちそうなものを作る 作りたいものを考える
4.
どうやったら実現できるか考える astah* API 利用ガイド
の 対応モデル/プレゼンテーシ ョン一覧を見て どんな構成になっているか 想像します。 両図でライフラインと メッセージが使われている ので、その情報だけあれば 十分と判断。 http://members.change-vision.com/javadoc/astah- api/8_3_0/api/ja/doc/model_and_presentation.html#%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E 5%9B%B3%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83 %B3%E5%9B%B3
5.
作る準備 少し手が込みそうなスクリプトは スクリプト言語だとちょっとめんどくさいのでjavaで書くことにしました。 いちから作るのもめんどくさいので APIサンプルを複製し、ファイル名等を調整、不要な処理を削除。 今回は astah*のインストールフォルダ¥api¥sample¥simpleDgmEdit を元にしました。 開くプロジェクトファイルパスはフィールドに定義してありましたが mainメソッドの引数でを受けるようにしてみました。 何があってもプロジェクトを閉じて終わるように finally
に prjAccessor.close(); を書きました。
6.
シーケンス図を作る コミュニケーション図を検索し、同じ名前空間に同名のシーケンス図を作成 操作の下の場合、名前空間はその親のクラスになるので ちょっと違う位置に生成されましたが気にしない (ちなみに構造ツリーのフィルタリング機能は私が実装しました)
7.
ライフラインを作る コミュニケーション図のライフライン と同名のライフラインを作成 ベースクラスも取得できるので指定 色もプレゼンテーションから取れます 位置は適当な値で インクリメントしています
8.
メッセージを作成(順番は適当) メッセージの情報から メッセージを作成します ライフラインリンクの情報が なくてもメッセージから 必要な情報が全部取れました。 順番や実行仕様が めちゃくちゃですが、 実装を始めてここまでで 40分くらい。
9.
メッセージをソートする メッセージのインデックスの 情報から順番をソート。 適当にソートしたらちょっとミスってて 後で少し直した(画像は修正後)。 まだ実行仕様が つながっていないので インデックス番号は不正。
10.
実行仕様をつなげる 元のメッセージから 起動メッセージが取得できるので それを利用して実行仕様を 繋げます。 インデックス番号が適切に。 ここまでが3時間弱。
11.
最終調整 実行仕様がなるだけ重ならないように、 かつ、図が大きくなりすぎないように 出力位置を調整。 これが地味に一番時間かかりましたが 3時間に含めません(こら)
12.
感想 astah*のAPIやUMLの仕様がすでに頭に入っているのが大きいかもしれないけど 少しずつ進めることで3時間でスクリプトを作ることができた。 ほぼmainメソッドにベタ書きしていて、あくまで自分用のプロトタイプ。 とりあえず動けばいいならこれで良し。 テストコードは今回書かなかったけど書いたほうが良いです。 処理毎にメソッドを抽出してあると書きやすいはず。 スクリプトプラグイン用に書き換えたらもっと使いやすいかもしれない。
13.
おまけ(過去に書いたもの) ● Astah Script
プラグイン サンプルコード(Java7用) ● Astah Script プラグイン サンプルコード(Java8用) ● astah* API サンプルコード ● m_lily | astah in 5 min
14.
ご清聴ありがとうございました。