de_DEen_USes_ESfa_IRfr_FRid_IDjapl_PLpt_PTru_RUvizh_TW

PlantUMLとVPasCodeによるUMLユースケース図のコード化

UMLユースケース図は、システムが提供する機能と、それと相互作用する人または対象を示します。図をコードとして扱うワークフローでは、図のソースはプレーンテキストです:テキストを編集し、図をレンダリングし、ソースをプロジェクトドキュメントと一緒に保管します。

PlantUMLのワークフローを示す図:ソースコードの編集、オンラインストア用のUMLユースケース図のレンダリング、およびVPasCodeを使用した両者の並列ドキュメント化。

PlantUMLはユースケース図をサポートしています。Visual ParadigmのVPasCodeエディタは、PlantUMLエディタとプレビュー機能に加え、AI支援による図の生成および編集機能を提供します。

1. ユースケース図が伝えること

ユースケース図は、システムの範囲とユーザーの目標に焦点を当てます、ワークフローの段階的なメカニズムではありません。図には通常、次の要素が含まれます:

システム境界、アクター、ユースケース、関連、および「include」「extend」「generalization」といった関係性を示すUMLユースケース図の記法リファレンス。

  • システム境界:モデル化されているシステムの名前を付けた矩形。

  • アクター:システム外でそれと相互作用する役割。アクターは人、組織、デバイス、または外部システムになり得ます。

  • ユースケース:システムが提供する機能または目標。通常は楕円で表され、動詞句(例:「注文を置く」)で名前が付けられます。

  • 関連:アクターがユースケースに参加していることを示す線。

  • ユースケースの関係:Include(包含)、extend(拡張)、および一般化。

アクターは特定の個人ではなく役割を表します。モデル化されているシステムと相互作用する場合、外部の決済サービスもアクターになり得ます。

ユースケース図は、システムの範囲を明確にすること、ステークホルダーとの要件に関する議論、外部依存関係の特定、開発およびテストのための共通の概要を提供するために役立ちます。事前条件、主要な手順、代替フロー、結果などの詳細が必要な場合は、それらを書き起こしたユースケース記述と併用してください。

2. 関係の概要

例と方向付き矢印を用いて、関連、include、extend、generalizationを説明するUMLユースケース関係図。

  • アクターとユースケースの関連:相互作用を示す単なる線。

  • <<include>>:包含するユースケースは、常に包含される振る舞いを使用します。破線の矢印は包含するユースケースから包含されるユースケースへ向かいます。例えば、注文を行う際には常に支払い承認が含まれる場合があります。

  • <<extend>>:拡張するユースケースは、条件付きで基本ユースケースに振る舞いを追加します。破線の矢印は拡張ユースケースから基本ユースケースへ例えば、プロモーションの適用は注文の処理を拡張する場合があります。

  • 一般化: 特定のアクターまたはユースケースは、より一般的なものを継承します。実線で描かれた中空の三角形は、一般的な要素を指します.

有用な区別: include は必須の振る舞いを意味し、extend は条件付きで追加される振る舞いを意味します。

3. PlantUML の基本

PlantUML の図は@startumlで始まり、@endumlで終わります。アクターはactorで宣言し、ユースケースはusecaseで宣言し、システム境界はrectangleで宣言します。エイリアスを使用すると、関係内での要素の参照が容易になります。

オンラインストアのユースケース図用のPlantUMLコードと、そのレンダリング結果(顧客がシステム境界と相互作用している様子)を並べて表示するVPasCodeインターフェース。

@startuml
left to right direction

actor Customer

rectangle "Online Store" {
  usecase "Browse products" as Browse
  usecase "Place order" as Place
}

Customer --> Browse
Customer --> Place
@enduml

左から右の方向は、PlantUML に図を横方向に配置するよう指示します。図が変更されると、PlantUML は正確なレイアウトを調整する場合があります。

4. 例:基本的なオンラインストア

顧客アクターが「注文する」「プロモーションを適用する」「支払いを承認する」というユースケースと相互作用するUMLユースケース図を表示するVPasCodeインターフェース。

@startuml
左から右の方向

アクター Customer
アクター Administrator を Admin とする

矩形 "Online Store" {
  ユースケース "Browse products" を Browse とする
  ユースケース "Place order" を Place とする
  ユースケース "Track shipment" を Track とする
  ユースケース "Manage catalog" を Manage とする
}

Customer --> Browse
Customer --> Place
Customer --> Track
Admin --> Manage
@enduml

顧客は商品の閲覧、注文、配送追跡を行います。管理者はカタログを管理します。この図は、注文処理の内部手順をあえて省略しています。

5. 例:include と extend

注文には常に支払い承認が必要であるが、プロモーションの適用は任意かつ条件付きであると仮定します。

PlantUMLコードと、その結果として生成されたUML図を表示するVPasCodeインターフェース。この図は、「注文する」ユースケースが「支払いを承認する」を含み、「プロモーションを適用する」を拡張している様子を示しています。

@startuml
左から右の方向

アクター Customer

矩形 "Online Store" {
  ユースケース "Place order" を Place とする
  ユースケース "Authorize payment" を Payment とする
  ユースケース "Apply promotion" を Promotion とする
}

Customer --> Place

Place ..> Payment : <<include>>
Promotion ..> Place : <<extend>>
@enduml

このPlace ..> Payment矢印は、「注文」に必要な支払い処理を含意することを意味します。このPromotion ..> Place矢印は、条件が満たされた場合に「プロモーションの適用」が「注文」を拡張することを意味します。

条件(例:「顧客が有効なプロモーションコードを入力する」)をユースケースの説明または注釈に記載してください。

6. 例:アクターの一般化と外部システム

特殊化されたアクターは、より一般的なアクターから相互作用を継承します。外部サービスもシステムと相互作用する場合はアクターとなり得ます。

PlantUMLコードと、その結果として生成されたUML図を表示するVPasCodeインターフェース。この図は、登録済み顧客がユーザーを一般化し、支払いゲートウェイがオンラインストアと相互作用している様子を示しています。

@startuml
左から右の方向

アクター "User" を User とする
アクター "Registered customer" を Customer とする
アクター "Payment gateway" を Gateway とする

Customer --|> User

矩形 "Online Store" {
  ユースケース "Browse products" を Browse とする
  ユースケース "Place order" を Place とする
  ユースケース "Process payment" を Pay とする
}

User --> Browse
Customer --> Place
Place ..> Pay : <<include>>
Gateway --> Pay
@enduml

「登録顧客」は「ユーザー」を特殊化し、一般的なユーザーインタラクションを継承します。決済ゲートウェイはオンラインストアの境界外にありますが、決済ユースケースに参加します。

7. 例:ユースケースの一般化

一般化は、より広範なユースケースの特殊化されたバージョンを表すことができます。空の三角形は、一般的なユースケースの方向を指します。

PlantUMLコードと、その結果として生成されたUML図を表示するVPasCodeインターフェース。この図は、一般化矢印が「支払いを行う」ユースケースを指す顧客アクターを示しています。

@startuml
left to right direction

actor Customer

rectangle "Payment System" {
  usecase "Make payment" as Payment
  usecase "Pay by card" as Card
  usecase "Pay by bank transfer" as Transfer
}

Customer --> Card
Customer --> Transfer

Card --|> Payment
Transfer --|> Payment
@enduml

特殊化されたユースケースが共通の目標を共有しているが、意味のある違いがある場合にこれを使用してください。バリエーションが単なる条件付きステップである場合、<<extend>>関係または書面によるユースケースの説明の方が明確である場合があります。

8. VPasCode での作業

実践的なワークフロー:

VPasCodeでPlantUMLユースケース図を作成するための7つのステップを示すワークフロー図。これには、範囲の定義、コードのドラフト作成、および関係者との検証が含まれます。

  1. スコープを定義する。システムの境界、アクターの役割、および各役割が達成したい目標を特定する。

  2. ドラフトを作成する。PlantUML を直接記述するか、AI アシスタントにユースケース図の生成を依頼する。

  3. コードとプレビューを確認する。アクターがシステムの境界外にあり、ユースケースがその内部にあり、矢印が正しい方向を指していることを確認する。

  4. モデルを洗練させる。曖昧な名称を置き換え、実装の詳細を削除し、実際の要件を反映している場合のみ関係を追加する。

  5. ターゲットを絞った AI による編集を依頼する。例:「外部の決済ゲートウェイアクターを追加し、include 関係を使用して必要な決済インタラクションを示してください。それ以外は変更しないでください。」

  6. 関係者と検証する。図がシステムの実際のスコープとユーザーの目標を反映しているか確認する。

  7. ソースを保存する。 を保持してください.pumlプロジェクトのドキュメントまたはバージョン管理システムにテキストを保存してください。ドキュメントやプレゼンテーションが必要な場合にのみ画像をエクスポートしてください。

AI支援のためのプロンプト例

オンラインストア用のPlantUMLでUMLユースケース図を作成してください。システム境界、顧客と管理者というアクター、および「商品閲覧」「注文の作成」「配送追跡」「カタログ管理」という目標を含めてください。支払い承認は「注文の作成」によって必須として含まれる動作として示してください。プロモーションの適用は「注文の作成」の条件付き拡張として示してください。有効なPlantUMLソースのみを返してください。

AIによって生成されたコードは下書きとして扱ってください。使用する前に、アクター、境界、関係、およびビジネス上の前提条件を確認してください。

9. 一般的な落とし穴

UMLユースケース図における6つの一般的な落とし穴を説明するインフォグラフィック。これには、誤ったアクターの定義、命名、および関係性の矢印が含まれます。

  • 内部コンポーネントをアクターとしてモデル化する:アクターは、対象と相互作用する外部の役割またはシステムであるべきです。

  • ユースケースを実装タスクとして命名する:“配送追跡”を”追跡APIを呼び出す”よりも優先してください。

  • の<<include>>をオプションの動作に使用すること:Includeは、基本ユースケースが要求する動作を表します。

  • 関係の矢印の向きを逆にする:Includeは、含まれるユースケースを指します。extendは、基本ユースケースを指します。

  • 1つの図に詳細を詰め込みすぎる:スコープには高レベルの図を使用し、詳細なシナリオには別の図またはテキストを使用してください。

  • レンダリングが成功すればモデルが正しいと仮定する:PlantUMLは、要件を誤って表現しているにもかかわらず図をレンダリングできる場合があります。

10. 確認チェックリスト

図を共有する前に、次のことを確認してください:

顧客がオンラインショッピングシステムと相互作用する例図と共に、8つの検証ポイントを列挙したユースケース図レビューチェックリスト。

  • システム境界が明確であること。

  • すべてのアクターが外部にあり、役割を表していること。

  • ユースケースの名前が意味のある目標を説明していること。

  • アクターの関連性が実際の相互作用を反映していること。

  • Include関係は必須であり、extend関係は条件付きまたはそれ以外で正当化されていること。

  • 一般化の矢印が、一般的なアクターまたはユースケースを指していること。

  • 図が意図したサイズで読みやすくなっていること。

  • AIによって生成された仮定は、要件に精通した関係者とレビュー済みです。