PlantUMLでアクティビティ図作成( 処理フローと並行処理を可視化 )
最終更新日:

処理プロセスを整理したいときに、アクティビティ図を書くことがあります。「処理フロー」と「並行に実行できる処理」を可視化することができます。ここでは、PlantUMLを利用してアクティビティ図を書く方法について紹介します。

アクティビティ図を書く目的

私は、以下目的でアクティビティ図を書きます。

  • 必要な前処理の確認
  • 並行して作業を進められるアクティビティの発見

日常のルーチン作業を可視化して、改善を検討するのにも活用できます。

基本的な書き方|「旧記法」と「新記法」

アクティビティ図は、開始点 から始まり、 アクティビティを順番に記述して、終了点 で処理の終了です。

PlantUMLでアクティビティ図を書く方法として、旧記法新記法 があります。

旧記法

@startuml
title 旧記法

(*) --> アクティビティA
--> "アクティビティB\n(改行)"
--> アクティビティC
--> (*)

@enduml
564-design-uml-activity_1_old.png

新記法

@startuml
title 新記法

start

:アクティビティA;

:アクティビティB
(改行);

:アクティビティC;

stop

@enduml
564-design-uml-activity_1_new.png

以降、新記法の記述で紹介します。

注釈の書き方

@startuml
title 注釈

start

:アクティビティA;

:アクティビティB;

note right
    注釈
    アクティビティBに対する注釈です。
end note

:アクティビティC;

stop

@enduml
564-design-uml-activity_2.png

ループ処理の書き方

前判定

@startuml
title ループ処理

start

:アクティビティA;

while (i < 10)
    :アクティビティB;
endwhile

:アクティビティC;

stop

@enduml
564-design-uml-activity_3_1.png

後判定

@startuml
title ループ処理

start

:アクティビティA;

repeat
    :アクティビティB;
repeat while (i < 10)

:アクティビティC;

stop

@enduml
564-design-uml-activity_3.png

分岐処理の書き方

水平

@startuml
title 分岐処理

start

:アクティビティA;

if (x > 0) then (true)
    :アクティビティB;
else if (x == 0) then (true)
    :アクティビティC;
else (false)
    :アクティビティD;
endif

:アクティビティE;

stop

@enduml
564-design-uml-activity_4.png

垂直

!pragma useVerticalIf on を記載すると垂直に描画されます。

@startuml
!pragma useVerticalIf on

title 分岐処理

start

:アクティビティA;

if (x > 0) then (true)
    :アクティビティB;
else if (x == 0) then (true)
    :アクティビティC;
else (false)
    :アクティビティD;
endif

:アクティビティE;

stop

@enduml
564-design-uml-activity_4_1.png

処理の停止

特定の条件分岐で処理を停止したい場合 kill と記述します。

@startuml
title 分岐処理

start

:アクティビティA;

if (x > 0) then (true)
    :アクティビティB;
    kill
else if (x == 0) then (true)
    :アクティビティC;
    kill
else (false)
    :アクティビティD;
endif

:アクティビティE;

stop

@enduml
564-design-uml-activity_4_2.png

並列処理の書き方

@startuml
title 並列処理

start

:アクティビティA;

fork
    :アクティビティB;
    fork
        :アクティビティC;
    fork again
        :アクティビティD;
    end fork
fork again
    :アクティビティE;
end fork

:アクティビティF;

stop

@enduml
564-design-uml-activity_5.png

専用レーンで仕切る方法

@startuml
title パーティション

|ユーザーA|

start
:アクティビティA;

|ユーザーB|
:アクティビティB;

|ユーザーC|
:アクティビティC;

|ユーザーA|
:アクティビティD;

stop

@enduml
564-design-uml-activity_6.png

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。