はじめに
前までAtomでPlantUMLを利用しユースケース、シーケンス図等を作成していたのですが
PhpStormでも利用できるという情報を得たので、初心者でも分かりやすいように導入方法を記載していこうと思います
前提条件
-
Homebrewのコマンドが使える状態である
- 確認したバージョン
- 1.7.1
- バージョン確認コマンド
-
brew -v
かbrew --version
-
- 確認したバージョン
- **JavaSE(JDK)**がインストール済みである
- 確認したバージョン
- Java SE 10.0.2
- Java SE 9.0.1
- Java SE 8
- バージョン確認コマンド
java -version
- 確認したバージョン
環境構築手順
Graphviz
1. Graphviz インストール
brew install graphviz
PlantUML
2-1. PlantUML integration インストール
- PhpStorm内で
⌘,
を押して「Preferences」ダイアログを表示
![01_Preferences.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2F4e794279-4a4f-dadd-e8a4-ed35dbe437c3.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b34c85382ed8c3af049e074ff5c78ee6)
- 「Preferences」ダイアログ内の[Browse Repositories...]ボタンをクリックし、「Browse Repositories」ダイアログを表示
![02_Browse Repositories.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2Fbaebbb3c-f3d8-dcca-271c-611bef756376.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c8e61b92e0f34a5ddbe9b4a8631357a4)
- 「Browse Repositories」ダイアログ内の検索窓に
plantuml
と入力
![04_Browse Repositories serch plantuml.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2Fd72bd70f-6984-6cd0-e868-c8e3f65e70c9.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=380d4c0c3fb9bc83353e431d804a6bff)
- 「Browse Repositories」ダイアログ内の[install]ボタンをクリック
![05 Browse Repositories serch install.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2Fef53bf9d-dbc2-48e2-d69e-2712de4b982b.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=6edea0634d21409de81828f0350d695a)
- [install]ボタンをクリック後[Downloading Plugins]というダイアログが表示されるのでダウンロードが完了されるまで少々待つ
![10_DownloadingPlugins.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2F1fd70e2f-9c03-5c11-d876-27a7b958ce4a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=ac6cbaeb6861e9ec57873422a1a3f409)
- インストール完了後「Browse Repositories」ダイアログに遷移するので[Close]ボタンをクリック
![09_Browse_Repositories_install_end.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2F537dc0f9-6995-73b0-ff0b-a65f2f624f2e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7c581d35e0cc817b7328566468859402)
- 「Third-party Plugins Privacy Note」ダイアログが表示されるので[Accept]ボタンをクリック
![06_Third-party_Plugins_Privacy_Note.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2Ffa6db260-f10d-e8d4-dcbd-4f6ae8fa7b18.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=77ece2a63b69cfbec4dd1baf7b19c4b0)
- 「IDE and Plugin updates」ダイアログが表示されるので[Restart]ボタンをクリックしPhpStormを再起動
![07_IDE and Plugin updates.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2Ffeb452d1-e20f-bb33-3d09-19d25307f2e6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7b989581aac65819e84c3f9f42fefc50)
- インストール完了
インストール確認
- インストールが完了したらUML関連の選択肢が表示されているか確認しましょう!!
![08_done.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F208826%2F2634c99b-78d7-74c0-a9ca-5c42667ed13d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d6d856b3d5c3f0211e3f9dc97fd98071)
テンプレ種類
Salt Wireframe(Salt Wireframe図)
@startuml
salt
{
Just plain text
[This is my button]
() Unchecked radio
(X) Checked radio
[] Unchecked box
[X] Checked box
"Enter text here "
^This is a droplist^
}
@enduml
UML Activity(アクティビティ図)
@startuml
(*) --> "check input"
If "input is verbose" then
--> [Yes] "turn on verbosity"
--> "run command"
else
--> "run command"
Endif
-->(*)
@enduml
UML Class(クラス図)
@startuml
abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection
List <|-- AbstractList
Collection <|-- AbstractCollection
Collection <|- List
AbstractCollection <|- AbstractList
AbstractList <|-- ArrayList
class ArrayList {
Object[] elementData
size()
}
enum TimeUnit {
DAYS
HOURS
MINUTES
}
@enduml
UML Component(コンポーネント図)
@startuml
package "Some Group" {
HTTP - [First Component]
[Another Component]
}
package "Other Groups" {
FTP - [Second Component]
[First Component] --> FTP
}
@enduml
UML Sequence(シーケンス図)
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml
UML State(ステートマシン図)
@startuml
scale 350 width
[*] --> NotShooting
state NotShooting {
[*] --> Idle
Idle --> Configuring : EvConfig
Configuring --> Idle : EvConfig
}
state Configuring {
[*] --> NewValueSelection
NewValueSelection --> NewValuePreview : EvNewValue
NewValuePreview --> NewValueSelection : EvNewValueRejected
NewValuePreview --> NewValueSelection : EvNewValueSaved
state NewValuePreview {
State1 -> State2
}
}
@enduml
UML Use Case(ユースケース図)
@startuml
:Main Admin: as Admin
(Use the application) as (Use)
User -> (Start)
User --> (Use)
Admin ---> (Use)
note right of Admin : This is an example.
note right of (Use)
A note can also
be on several lines
end note
note "This note is connected\nto several objects." as N2
(Start) .. N2
N2 .. (Use)
@enduml
参考元
-
PHPStormでPlantUMLを書く
- 導入の際、参考に致しました。
-
UMLをソースで管理 (Mac + ATOM + PlantUML)
- Graphviz インストール, JDK インストール, 記事の書き方を参考に致しました。
余談
- 初投稿
- 今回初めてQiitaに投稿しました!
- 見る人を考慮し、画像・絵文字を多々使ってしまったので、人によっては見やすかったり見にくかったり...
- 以後記事を作成する際は、初心者の方でもわかりやすい内容にしていきたい
- おばあちゃんに分かるように説明できなければ本当に理解したとは言えない - アルバート・アインシュタイン
- 以後記事を作成する際は、初心者の方でもわかりやすい内容にしていきたい
- UML画像のサイズ・画質の差がある
- コンソール/Atom/PhpStom それぞれからpngにした時サイズが違ってたり画質に差があった
- pngにしたときは phpstorm < Atom = PhpStom の順で良いなと思った
- コンソール/Atom/PhpStom それぞれからpngにした時サイズが違ってたり画質に差があった
- JavaSE(JDK)バージョン
- Atomの場合Java SE 8を利用しないとうまく描画してくれなかったが、PhpStorm側では特にバージョンによって表示されないということはなかった