質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
UML

UML(統一モデリング言語)は、主にオブジェクト指向分析や設計を目的に記法の統一が図られたモデリング言語です。要求分析・システム分析・設計・テストなど幅広いシステム開発のフェーズを網羅しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

3203閲覧

PlantUMLからのコード自動生成ツールを探しています

imudak

総合スコア40

UML

UML(統一モデリング言語)は、主にオブジェクト指向分析や設計を目的に記法の統一が図られたモデリング言語です。要求分析・システム分析・設計・テストなど幅広いシステム開発のフェーズを網羅しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2019/07/10 02:06

編集2019/07/11 10:44

PlantUMLからのコード自動生成

[質問]

PlantUMLからコードを自動生成する方法、ツールをご存知ないでしょうか。

###[背景]
UMLをPlantUMLで書くことが多くなり、

  • PlantUML --> ソースコード(C/C++,C#,Pythonなど)

とコードの自動生成ができたら管理が楽なのに、と思い始めました。
生成コードはスケルトンでよく、ソースコード --> PlantUMLの戻しはなくても構いません。

イメージとしては、SMC: The State Machine Compiler
の自動コード生成で、

  • 状態遷移図 --> ソースコード(C/C++,C#,Pythonなど)

のようにコード生成できます。

###[現状調べたこと、構想] --- 2019/7/11追記 ---
簡潔に書いたつもりが丸投げっぽくなっているそうなので、現状調査したことと、構想を書いておきます。
簡単に言うと自作します。

  1. PlantUMLのファイルを読み込んで字句解析、構文解析します。
  • 構文解析ライブラリには適当なものを使います。
  • 以下ではLarkを使っていますが、この選択が良いのかはあまり自信ありません。

Python 構文解析ライブラリLarkを使って簡単な自作言語処理系をつくる - Qiita

  1. 1のためにまずはEBNFファイルを作ります。
  • 適当にみつけた以下のEBNFファイルを元にします。
  • どちらにしろ以下ではカバーできる定義が足りないので、自作に近い追記が必要ですが…
  • あと以下では日本語名が使えないようですので、その修正も必要です。
  • 定義は足りないなりに、この段階まではできています。

plantuml-parser/grammar.ebnf at master · pjcuadra/plantuml-parserser/commit/520cc90d0fcd9f82867d72fff85c34933f40a2e3)

  1. 1,2で作った構文ツリーを元にスケルトンを吐き出します。
  • pythonで自作します。
  • ひとまずのターゲット言語はC言語です。クラス表現はSMCを参考にします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

npmでインストールできるツールで,PlantUML Code Generator(puml2code)というのがあるようです。

投稿2022/01/18 16:06

ujimushi_sradjp

総合スコア2087

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問