システムとモデリング

modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

【PlantUMLの使い方】PlantUMLでSysMLブロック定義図を書く

Otepipiです。本日はテキストベースでUMLを作成することができるツールPlantUMLを利用してSysMLのブロック定義図を書いていきたいと思います。

PlantUMLの概要

PlantUMLはプログラミング言語のようにプレーンテキストからダイアグラムを生成するツールです。
普通の描画ソフトと比較した利点は

  • プレーンテキストなのでコピー&ペーストで再利用が用意
  • オブジェクトの配置は自動でやってくれるので配置について考えなくても良い
  • テキストベースなので修正が容易
  • テキストなので差分管理が容易

などがあります。あくまでUMLを描画するものであり、SysMLには対応していません。ただガントチャートなどその他のダイアグラムも一部対応しています。
詳細は下記PlantUMLの本家WEBサイトでご確認ください。

plantuml.com

またPlantUMLでSysMLを作図するにあたっては下の記事を大いに参考にさせていただいています。
qiita.com

ブロック定義図

今回練習するブロック定義図の題材として下記サイトの電光掲示板の論理構成構造をトレースさせていただきました。
https://www.ogis-ri.co.jp/otc/hiroba/technical/SysEngSysML/SysEngSysML3.htmlwww.ogis-ri.co.jp

https://www.ogis-ri.co.jp/otc/hiroba/technical/SysEngSysML/img/fig221.png

PlantUMLで作成したブロック定義図

 PlantUMLを利用してブロック定義図を作成したところ下記のようになりました。トレース元とほぼ一致していることがわかります。 f:id:Otepipi:20180722075911p:plain

この時のコードは下記になります。

@startuml

hide circle
hide empty members

package "bdd 論理構成階層構造" <<Frame>> {
class 電光掲示板 <<block >>
class 通信ユニット <<block >>
class グラフィック生成ユニット <<block >>
class ドット列情報 <<data Type>>
class 表示器制御ユニット <<block >>
class フォント <<data Type >>
class グラフィックジェネレータ <<block >>
class スクロール制御 <<block >>
class 表示コントローラ <<block >>
class "Matrix LED" <<block >>
}

電光掲示板 *-- 通信ユニット
電光掲示板 *-- グラフィック生成ユニット
電光掲示板 *-- ドット列情報
電光掲示板 *-- 表示器制御ユニット
グラフィック生成ユニット *-- フォント
グラフィック生成ユニット *-- グラフィックジェネレータ
グラフィック生成ユニット *-- スクロール制御
表示器制御ユニット *-- 表示コントローラ
表示器制御ユニット *-- "Matrix LED"

@enduml

またskinparam monochrome trueを追加することで図を白黒にすることができます。これでよりトレース元に近づけたかもしれません。 f:id:Otepipi:20180722075904p:plain

@startuml

skinparam monochrome true

hide circle
hide empty members

package "bdd 論理構成階層構造" <<Frame>> {
class 電光掲示板 <<block >>
class 通信ユニット <<block >>
class グラフィック生成ユニット <<block >>
class ドット列情報 <<data Type>>
class 表示器制御ユニット <<block >>
class フォント <<data Type >>
class グラフィックジェネレータ <<block >>
class スクロール制御 <<block >>
class 表示コントローラ <<block >>
class "Matrix LED" <<block >>
}

電光掲示板 *-- 通信ユニット
電光掲示板 *-- グラフィック生成ユニット
電光掲示板 *-- ドット列情報
電光掲示板 *-- 表示器制御ユニット
グラフィック生成ユニット *-- フォント
グラフィック生成ユニット *-- グラフィックジェネレータ
グラフィック生成ユニット *-- スクロール制御
表示器制御ユニット *-- 表示コントローラ
表示器制御ユニット *-- "Matrix LED"

@enduml

PlantUMLはdraw.io等描画ソフトでUMLを書くよりかも早く快適にダイアグラムが生成できそうです。本格的なモデリングソフトと比べるとどうかわかりませんが、PlantUMLはフリーソフトという強みがありますね。ブロック定義図以外の他の図に関しても挑戦していきたいと思います。

本日はここまでです。