https://www.oracle.com/java/technologies/downloads/ からダウンロードを選択してインストールします
Javaがインストールできたかどうかを確認する
java --version
java 20.0.1 2023-04-18
Java(TM) SE Runtime Environment (build 20.0.1+9-29)
Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)
brew install graphviz
brew install plantuml
こちらをインストールします https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml
vscode から 左メニューの拡張機能を選択して検索欄にplantumlを入力すると出てきます
VsCodeで拡張子.puの新規ファイルを開き以下のコードをコピーペーストして保存します
' クラス図
@startuml クラス図
class Car {
-brand: string
-model: string
-year: int
-price: double
+start(): void
+stop(): void
}
class Customer {
-name: string
-email: string
-phoneNumber: string
+placeOrder(): void
+cancelOrder(): void
}
class Order {
-orderNumber: int
-totalPrice: double
-status: string
+changeStatus(): void
}
Car *-- Order
Order *-- Customer
@enduml
' シーケンス図
@startuml シーケンス図
actor User
participant Controller
participant Service
participant Repository
User -> Controller: request
Controller -> Service: processRequest()
Service -> Repository: getData()
Repository -> Service: returnData()
Service -> Controller: returnResponse()
Controller -> User: response
@enduml
' アクティビティ図
@startuml アクティビティ図
|Swim|
start
: wear swimsuit;
: wear goggles;
if (water temperature < 20 degrees) then (yes)
: shiver;
else (no)
: swim;
endif
while (swimming) is (true)
: keep swimming;
endwhile
: take off goggles;
: take off swimsuit;
stop
@enduml
' ステートマシン図
@startuml ステートマシン図
[*] --> Off : power off
Off --> On : power on
On --> Off : power off
On --> Running : start process
Running --> On : stop process
@enduml
' 関連線
@startuml Generalization(汎化)関連線
class Animal {
#age: int
+makeSound(): void
}
class Dog extends Animal {
+bark(): void
}
@enduml
@startuml Composition(合成)関連線
class Car {
-engine: Engine
}
class Engine {
-cylinders: Cylinder[*]
}
class Cylinder {
-type: string
}
Car *-- Engine
Engine *-- Cylinder
@enduml
@startuml Association(関連)関連線
class Customer {
-name: string
-email: string
}
class Order {
-orderNumber: int
-totalPrice: double
}
Customer -- Order
@enduml
@startuml Aggregation(集約)関連線
class Library {
-books: Book[*]
}
class Book {
-title: string
-author: string
}
Library o-- Book
@enduml
@startuml Dependency(依存)関連線
interface EmailSender {
+sendEmail(): void
}
class User {
+sendEmail(EmailSender sender): void
}
User ..> EmailSender
@enduml
次に
Command + Shift + P を押して次のメニューを選択します。
「カーソル位置のダイヤグラムをプレビュー」