2026年1月31日土曜日

Cozyモデル駆動開発/ユースケース/extend

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

ユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行い、CML(Cozy Modeling Language)で記述する方法について考えました。

現在はユースケース間の関係のモデルについて、ユースケース間の関係のどのようにCMLで記述するか、という観点で具体的な記述方式を検討しています。前回はincludeの検討を行いました。

今回はextendを取り上げます。

extend

  • マージモード : Extend
  • マージ点 : 条件付きStep
  • 機能 : 例外的・追加的振る舞いの付与
  • UML extend

extendの意味

extendは、あるユースケースの実行中に、

  • 特定の条件が成立した場合にのみ
  • 追加の振る舞いが挿入される

ことを表す関係です。

UMLにおけるextendは、

  • 基本ユースケースの振る舞いを前提とし
  • 条件付きで拡張ユースケースが実行される

という意味を持ちます。

典型的な例としては、次のようなものがあります。

  • 「商品を購入する」を拡張する「クーポン適用」
  • 「会員登録」を拡張する「年齢確認」
  • 「注文処理」を拡張する「高額購入時の本人確認」

extendされる側のユースケースは、

  • 常に実行されるわけではなく
  • 基本ユースケースの一部を補足する

という性質を持ちます。

includeとの違い

includeとextendの違いを整理すると次のようになります。

観点includeextend
実行条件常に実行条件付き
主目的共通処理の再利用例外・オプションの追加
基本フロー前提独立して完結
位置づけ合成拡張

includeは「分解と再利用」、extendは「基本フローを壊さない条件付き拡張」と整理できます。

Cozyモデルにおけるextendの位置づけ

Cozyモデルでは、extendを

  • 図上の関係指定

ではなく、

  • ユースケース・シナリオ内における
  • 条件付きステップ合成

として扱います。

この観点からextendは、

  • 基本ユースケースを中心に据え
  • 例外や追加要件を独立したユースケースとして定義し
  • 条件に応じて合成する

ための仕組みと位置づけられます。

Cozyモデルにおけるextendは、

  • 条件付きでステップ列を合成する関係

として捉えることができます。

記述方式

シナリオ中のextendの記述方式は以下の通りです。

- extend <UseCaseName> when <Condition>
  • extendディレクティブで拡張であることを示します
  • when句で拡張が発生する条件を明示します

条件は、業務ルールや状態など、要求レベルで意味を持つ表現を用います。

記述例

- 顧客: 商品を選択する。
- 顧客: 支払い方法を指定する。
- extend ApplyCoupon when クーポンが指定されている
- 顧客: 注文を確定する。

この記述は、

  • ApplyCouponユースケースのMainFlowに定義された
  • ステップ列を
  • 「クーポンが指定されている」場合にのみ
  • この位置に合成する

ことを意味します。

基本フロー自体はクーポンを前提とせず、拡張として自然に切り出されています。

基本方針

CMLにおけるextendは、

  • 基本ユースケースの理解を妨げない
  • 例外やオプションを明示的に分離する

ことを重視します。

そのため、以下の方針を取ります。

  • extendは必ず条件を伴う
  • 基本ユースケースは単体で完結できる
  • 拡張ユースケースは意味的に独立した要求単位とする
  • マージ点をステップとして明示する

これにより、

  • 読めば分かる基本フロー
  • 必要に応じて追える拡張

という二層構造の要求モデルを実現します。

UML extendとの対応

UMLCozy / CML
extend関係条件付きステップ合成
拡張ポイントシナリオ内の明示的マージ点
条件when句
図表現テキストによる構造表現

UMLでは拡張ポイントという概念が図中に現れますが、Cozy/CMLではそれをステップ位置と条件として直接記述できます。

これにより、

  • 抽象的な関係指定に留まらず
  • 実行順・条件・意味を同時に表現できる

点が特徴です。

まとめ

今回は、ユースケース間の関係の一つであるextendについて、

  • UMLにおける意味
  • includeとの違い
  • Cozyモデルとしての解釈
  • CMLによる記述方針と具体例

を整理しました。

extendは、

  • 基本ユースケースを安定させたまま
  • 例外やオプション要求を切り出し
  • 条件付きで合成する

ための仕組みです。

includeとextendを使い分けることで、ユースケースの振る舞いを過不足なく・構造的に記述でき、図に依存しない、意味的に明確な要求モデルを構築できます。

2025年12月31日水曜日

Cozyモデル駆動開発/ユースケース/include

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

ユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行い、CML(Cozy Modeling Language)で記述する方法について考えました。

前回はユースケース間の関係のモデルについて整理しました。

今回からユースケース間の関係のどのようにCMLで記述するか、という観点で具体的な記述方式を検討していきます。

今回はincludeを取り上げます。

include

  • マージモード : Include
  • マージ点 : 任意Step
  • 機能 : 共通動作の再利用
  • UML include

includeの意味

include は、あるユースケースが実行される際に、必ず別のユースケースの振る舞いを含めて実行することを表す関係です。

UML における include は、

  • 元ユースケースの処理の途中に
  • 常に同一の共通処理が組み込まれる

という意味を持ちます。

典型的な例としては、次のようなものがあります。

  • 「商品を購入する」が「在庫確認」を含む
  • 「会員購入」が「ログイン処理」を含む
  • 「注文処理」が「本人確認」を含む

include される側のユースケースは、単独で完結する利用を想定しない点が重要です。共通処理を再利用するための、意味的に独立した単位として定義されます。

Cozyモデルにおける include の位置づけ

Cozyモデルでは、ユースケースを単なる図形要素ではなく、

  • 構造化された要求
  • ステップ列として表現される振る舞い
  • 再利用可能な意味単位

として扱います。

この観点から include は、

  • 共通処理をコピーするのではなく
  • 振る舞いを独立したユースケースとして切り出し
  • 必要な箇所に合成する

ための仕組みと位置づけられます。

Cozyモデルにおける include は、

  • ユースケースのステップ列を、別のユースケースのステップ列に合成する関係

として捉えることができます。

記述方式

シナリオ中のincludeの記述方式は以下の通りです。

- include <UseCaseName>

includeディレクティブを指定してincludeステップであることを示します。includeの次にあるのがincludeするユースケース名です。

記述例

- [select] 社員: 希望する日時と会議室を選択する。
- include CheckAvailability
- 社員: 会議の目的を入力する。

この記述は、

  • CheckAvailability ユースケースの MainFlow に定義された
  • ステップ列を
  • この位置に展開・合成する

ことを意味します。

基本方針

CML において include は、ユースケース間の外部的な関連としてではなく、

  • ユースケース定義の内部に
  • 明示的な合成指示として

記述する方針を取ります。

このとき、以下の点を重視します。

  • include は方向を持つ
  • include されるユースケースは再利用単位である
  • マージ点(どのステップに含めるか)を明確にできる

UML include との対応

UMLCozy / CML
include 関係ステップ合成
共通処理再利用ユースケース
図による表現テキストによる構造表現
実行時に必須常に合成される振る舞い

UML で矢印として表現されていた include 関係を、CML ではユースケース内部の構造として記述する点が特徴です。

UMLの場合、概念的に指定されたユースケースを取り込むというところまでの指定になりますが、その具体的な実現をCozy/CMLではユースケース・シナリオで行うことができる分けです。

まとめ

今回は、ユースケース間の関係の一つである include について、

  • UML における意味
  • Cozyモデルとしての解釈
  • CML による記述方針と表現方法

を整理しました。

include は、共通動作の再利用を目的とし、ユースケースのステップ列を合成する関係として扱うことで、図に依存しない、意味的に明確な要求モデルを記述できます。

次回も引き続いてユースケース間の関係について具体的な記述方式について考えます。

2025年11月30日日曜日

Cozyモデル駆動開発/ユースケース・モデル間の関係

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

ユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行い、CML(Cozy Modeling Language)で記述する方法について考えました。

前回はユースケース記述の基本フォーマットについて考えました。

今回からユースケース間の関係のモデルについて考えていきます。

ユースケース間の関係の候補

CMLに取り入れるユースケース間の関係の候補を表にまとめました。表中のREはRequirement Engineeringを示します。

関係マージモードマージ点機能由来
includeInline任意Step共通動作の再利用UML include
extendConditionalInlineAfter指定条件付き拡張UML extend
generalizeInherit/OverrideOverrideシナリオ継承UML generalization
precedesSequenceAfter endシナリオ連結Workflow / BPMN
triggersEventDrivenAfter conditionイベント駆動Event-driven modeling
requiresPrependBefore start事前条件統合RE preconditions
ensuresAppendAfter end事後条件統合RE postconditions
collaboratesParallel同期点並行・協調動作Workflow patterns
conflictsBranch条件分岐排他シナリオGoal/Feature modeling
supersedesReplaceFull上書き置換Scenario evolution
referencesReferenceOnlyN/Aドキュメント参照Traceability

伝統的な手続き型の処理に加えて、イベント駆動による処理についてもモデル化できることを目標にしています。

ユースケース関係の由来

候補としてまとめたユースケース間の関係の、意味上のマージ方式・シナリオ統合のふるまい・歴史的な由来に基づき関係を分類します。

UML系統

  • include
  • extend
  • generalize

UMLユースケースの主要関係に由来します。SimpleModelingではより厳密な意味統合として再解釈する予定です。

Workflow / BPMN 系統

  • precedes(順次)
  • collaborates(並行・同期)

ワークフローパターンおよびBPMNゲートウェイの意味モデルに対応します。

Event-driven 系統

  • triggers

外部イベントや条件成立によってシナリオが起動する関係を示します。

Requirements Engineering 系統

  • requires(事前条件)
  • ensures(事後条件)

要求工学の前後条件モデルを、流れとして統合できるよう拡張します。ユースケース記述の項目とユースケース図の2つの観点で検討を進める予定です。

Goal / Feature モデリング系統

  • conflicts(排他・競合)

KAOS(要求工学の代表的なゴール指向モデリング手法)などのゴール競合、Feature ModelのXOR制約への対応について検討します。

シナリオ進化系統

  • supersedes(置換)

シナリオの置換は要求工学やUPでも出てくる概念ですが、ユースケース・モデルにおけるユースケース関係として定義されていません。CMLでのサポートの有無を含めて検討予定です。

トレーサビリティ系統

  • references

モデルの管理上、使用する可能性のある関係です。CMLでのサポートの有無を含めて検討予定です。

まとめ

今回はユースケース間の関係について整理しました。

次回から、それぞれの関係についてユースケース記述やシナリオでの記述方式について検討します。

2025年10月31日金曜日

Cozyモデル駆動開発/ユースケース・モデルのシナリオをCMLで記述

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

ユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行い、CML(Cozy Modeling Language)で記述する方法について考えました。

今回からシナリオ記述のCML文法について考えていきます。

今回はtユースケース記述の基本フォーマットです。

ユースケース記述の基本フォーマット

ユースケース記述では、シナリオを時系列のステップとして記述するシナリオ記述が必要となります。

この目的のシナリオ記述のCMLは以下のものになります。「会議室を予約する」の節には基本情報、拡張方法などが定義されますが省略しています。

# UseCase
## 会議室を予約する
### MainFlow
- [open] 社員: システムを開き、「会議室予約」メニューを選択する。
- システム: 予約可能な会議室一覧を表示する。
- [select] 社員: 希望する日時と会議室を選択する。
- [check] システム: 選択された会議室の空き状況を確認する。
- 社員: 会議の目的と参加者を入力し、予約を確定する。
- [confirm] システム: 予約を登録し、確認メッセージを表示する。
- end
### AlternateFlow
A1. [check] 会議室が満室の場合  
  - システム: 「選択された時間帯は満室です」と表示する。  
  - 社員: 別の会議室または時間帯を選択する。  
  - システム: 新しい候補を再表示する。  
  - goto select
A2. [select] 日時が未指定の場合  
  - システム: 「日時を入力してください」とメッセージを表示する。  
  - 社員: 日時を入力し、再度会議室を選択する。  
  - goto select
A3. [confirm] 予約完了後に内容を変更したい場合  
  - 社員: 「予約一覧」から対象の予約を開く。  
  - call ModifyReservation
### ExceptionFlow
E1. [confirm] データベースエラーが発生した場合  
  - システム: エラーログを記録する。  
  - システム: 「予約を登録できませんでした」とエラーメッセージを表示する。  
  - abort
E2. [open] セッションがタイムアウトしていた場合  
  - システム: ログイン画面にリダイレクトする。  
  - 社員: 再度ログインしてから操作を続行する。  
  - goto open

文法の説明

ステップの文法

要素説明
-ステップを表すリストマーカー。1行に1ステップを記述する。- [open] 社員: システムを開く。
[id]ステップの識別子(省略可)。他のフローから参照可能。[select], [check]
actor:ステップの実行者(省略可)。主に「社員」「システム」など。社員:, システム:
action自然言語による行動・応答の記述。会議室一覧を表示する。
directiveフロー制御のための命令文。整形時に自然文化される。goto select, abort, end
  • ステップはユースケースの基本的な単位である。各行の - から始まる文は、ユースケースの中で行われる一つの行動または反応 を表す。それは「誰が何を行うか」を記述するための最小構成要素である。
  • [id] はステップの恒久的識別子である。ステップに付与された [id] は、他のフロー(AlternateFlowExceptionFlow)から参照するための安定した論理的ラベルとして扱われる。ステップ番号ではなく識別子を用いることで、将来的な編集(挿入・削除)に強くなる。
  • actor: は行為主体を示す。これはシナリオの主語に相当し、通常は「ユーザ」または「システム」である。省略された場合は、文脈(前のステップやUseCase全体のactor)から推定される。
  • action は自然言語での行動・応答の記述である。行動(Actorの操作)と応答(Systemの出力)を同一形式で表現できる。文体は「〜する」「〜を表示する」といった手続的な叙述形式で統一するのが望ましい。
  • directive は制御的命令として扱う。goto, call, end, abort などはシナリオの制御フローを明示する命令であり、整形段階で自然文(例:「処理は id に戻る。」)に展開される。これにより、読みやすさと機械可読性の両立が実現される。
  1. 構造上の意味各ステップは UseCaseScenario の中で順序を持つ要素であり、Cozyモデル上では UseCaseStep エンティティとして表現される。この構造により、シーケンス図生成やテストケース展開などへの転用が可能となる。

代替フローの文法

要素説明
### AlternateFlowセクション見出し。代替フローの開始を示す。### AlternateFlow
A1.代替フローの識別子(A+番号)。A1.
[ref]分岐元となるMainFlowステップの識別子。[check], [select]
条件文代替フローが発生する条件を自然文で記述する。会議室が満室の場合
ステップ列代替フロー内での処理をステップ構文で記述する。- システム: ...
directive復帰や呼出しを示す制御命令。整形時に自然文化される。goto select, call ModifyReservation
  • 分岐元ステップ(refAlternateFlowは、指定されたMainFlowステップを起点として分岐する。例:A1. [check]MainFlow[check] ステップから派生。
  • 条件(Condition)分岐が発生する具体的な状況を自然言語で記述する。書式上は [ref] 条件 の形をとる。
  • 代替処理(ScenarioStep群)代替フロー内での詳細な行動をステップ構文で記述する。各ステップは - [id] actor: action 形式。
  • 復帰点(Directive)フローの末尾で、通常 goto ディレクティブを使い MainFlow に戻る。整形時には「処理は id に戻る。」と自然文化される。

例外フローの文法

要素説明
### ExceptionFlowセクション見出し。例外フローの開始を示す。### ExceptionFlow
E1.例外フローの識別子(E+番号)。E1., E2.
[ref]対応するMainFlowステップの識別子。[confirm], [open]
条件文発生する例外やエラーの内容を自然文で記述。データベースエラーが発生した場合
ステップ列異常処理の流れをステップ構文で記述。- システム: エラーログを記録する。
directive終了・復帰を指示する制御命令。整形時に自然文化される。abort, goto open, end
  • 発生元ステップ(ref)ExceptionFlowは、指定されたMainFlowステップに対応する異常時処理を定義する。例:E1. [confirm] は、MainFlowの [confirm] ステップでエラーが起きた場合の処理を表す。
  • 条件(Condition)例外が発生する具体的な原因や状況を自然文で記述する。例:「データベースエラーが発生した場合」「認証が失敗した場合」など。
  • 異常処理ステップ(ScenarioStep群)エラー検出後に実施される一連の処理(通知・再試行・停止など)を - [id] actor: action 形式で記述する。
  • 終了/復帰(Directive)処理終了や再試行を示す命令を用いて、制御の戻り先または中断を明示する。整形時には「処理を中断する。」「処理は id に戻る。」などに展開される。

整形規則

シナリオ内で使用したdirectiveの整形規則です。

原文整形出力
goto select処理は select に戻る。
call ModifyReservation処理は ModifyReservation を呼び出す。
end処理を終了する。
abort処理を中断する。
repeat openopen から繰り返す。

まとめ

今回はシナリオ記述の基本的なCML文法について考えました。

次回はユースケース間の関係のモデルについて考え流予定です。

2025年9月30日火曜日

Cozyモデル駆動開発/ユースケース・モデルの拡張情報をCMLで記述

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

前前回にユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行いました。

前回はユースケース記述の基本情報をCML(Cozy Modeling Language)で記述する方法について考えました。

今回は拡張情報をCMLに追加します。

ユースケース拡張情報

前々回に定義したユースケースの拡張情報の構造です。

nametypemultdescription
secondary actorname?セカンダリ・アクター
supporting actorname*スポーティング・アクター
preconditiontext*事前条件
postconditiontext*事後条件
prioritytoken?優先度
statustoken?状態

ユースケース

CMLで記述したユースケース記述基本情報に拡張情報をを追加したものを以下に示します。

項目の内容に応じてプロパティ方式とセクション方式を混在させています。

ユースケース
==========
# UseCase
## 顧客の商品の予約を申請する
| Name             | 顧客の商品の予約を申請する                    |
| Id               | UC0056                                   |
| Primary Actor    | 販売担当者                                 |
| Secondary Actor  | 顧客                                      |
| Supporting Actor | よろず販売システム(在庫管理・予約管理機能)     |
| Goal             | 顧客が希望する商品の在庫を確保し、予約状態とする |
| Triger           | 顧客の予約依頼                              |
| Priority         | 高                                        |
| Status           | 設計済み・実装予定                          |
### Summary
販売担当者は、顧客からの希望商品について予約を申請し、在庫の確保を行う。予約が確定すると、顧客は商品を後日受け取ることができる。
### Precondition
- 顧客が購入意向を持ち、商品を特定している
- 商品が予約対象として登録されている
- 販売担当者がログイン済みである
### Postcondition
- 対象商品が「予約済み」状態として在庫管理に登録される
- 顧客情報と予約内容が記録される
- 確認メッセージが販売担当者および顧客に通知される

説明

基本項目中の以下の項目をセクション形式にしました。

summary
ユースケースの簡潔な説明

以下の拡張情報の項目を表に追加しました。

Secondary Actor
Primary Actorの目的を達成するための協力をするアクター。Primary Actorの相手役。
Supporting Actor
ユースケースで支援的な役割を果たすアクター
Priority
優先度
Status
ユースケースの管理状態

また、以下の拡張項目をセクションとして追加しました。

precondition
事前条件
postcondition
事後条件

まとめ

今回はユースケース記述の拡張情報をCMLで記述する方式について考えてみました。

次回はシナリオ記述についてCMLでの定義について考えていく予定です。

2025年8月31日日曜日

Cozyモデル駆動開発/ユースケース・モデルをCMLで記述

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

前回はユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行いました。

今回はCML(Cozy Modeling Language)での記述方法について考えます。

ユースケース基本情報

前回定義したユースケースの基本情報の構造です。

nametypemultdescription
ididentifier1ユースケースID
namename1ユースケース名
titlei18ntitle?タイトル
goali18ntext1プライマリ・アクターの目的
summaryi18ntext?
primary actorname1プライマリ・アクター
triggertext?トリガー

このユースケース基本情報をCMLで記述したものを以下に示します。

ユースケース
==========
# UseCase
## 顧客の商品の予約を申請する
| Name          | 顧客の商品の予約を申請する |
| Id            | UC0056                |
| Primary Actor | 販売担当者              |
| Goal          |                       |
| Triger        | 顧客の予約依頼           |
| Summary       |                       |

タイトル

タイトルの「ユースケース」はモデル的には特別な意味はありません。必要に応じて管理上適切なタイトルをつけることができます。

UseCase

セクション「UseCase」はユースケースの集まりを定義するセクションであることを示しています。

セクション内の各サブセクションは、それぞれユースケースの定義となっています。

上記の場合はサブセクション「顧客の商品の予約を申請する」がユースケース名となり、サブセクション内でユースケース「顧客の商品の予約を申請する」の定義を行います。

ユースケース情報

ユースケース基本情報を表で記述しました。

ユースケース基本情報は単純なプロパティの集まりなので、表形式で記述することが可能です。

プロパティをセクションで記述

CMLのメタ文法では、表の代わりにセクションの階層構造を使ってプロパティを記述することができます。

セクションを使ってプロパティを記述した場合の例を以下に示します。

ユースケース
==========
# UseCase
## 顧客の商品の予約を申請する
### Name
顧客の商品の予約を申請する
### Id
UC0056
### Primary Actor
販売担当者
### Goal
### Triger
対面販売
### Summary

サブサブセクションの名前の「Name」や「Id」がプロパティ名を示し、そのコンテンツがプロパティに対する値を記述します。

前述の表形式と記述する内容そのものは等価であることが確認できます。

ただ、表のフィールドで記述しきれない複雑な情報でもセクション形式では記述することができるので、そのような場合はセクション形式を選択するとよいでしょう。

表形式とセクション形式は混在することができるので、単純な値のプロパティを表形式で、複雑な構造を持つプロパティをセクション形式で記述することも可能です。

まとめ

今回はユースケース記述の基本情報をCMLで記述する方式について考えてみました。

次回から順次、拡張情報、シナリオ記述、ユースケース間の関係などについてCMLでの定義について考えていく予定です。

2025年7月31日木曜日

Cozyモデル駆動開発/ユースケース・モデル

Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。

要求モデルをCozyモデルとして定義する方法について考えています。

前回は要求項目のモデルを考えました。

今回からユースケース・モデルについて考えていきます。

ユースケース・モデル

ユースケースは、システムの利用者が目的を達成するために体験する物語を記述したモデルです。

Cozyモデル駆動開発(CMDD)ではユースケース・モデルを要求モデルの中核モデルとしています。

ユースケース・モデルの記述にはUMLのユースケース図も使用しますが、モデルの本体は自然言語で書かれたユースケース記述です。ユースケース記述の集まりによって記述されるユースケース・モデルの概要を図示したものがユースケース図です。

このためCMDDではCozy Modeling Language(CML)によって記述したユースケース記述の集まりから必要に応じてユースケース図をCozyで生成するアプローチを取ります。

ユースケース記述

ユースケース記述の内容を基本情報と拡張情報に分けて考えます。

基本情報

ユースケース記述の基本情報は以下の項目で構成されます。

nametypemultdescription
ididentifier1ユースケースID
namename1ユースケース名
titlei18ntitle?タイトル
goali18ntext1プライマリ・アクターの目的
summaryi18ntext?
primary actorname1プライマリ・アクター
triggertext?トリガー

id

ユースケースを一意に識別するためのIDです。

name

ユースケースの論理名です。利用者の目的をベースにソフトウェアで識別しやすい名前をつけます。

title

ユースケースを人間向けに説明するラベルです。画面や文書上に表示されます。利用者の目的をベースにしたタイトルをつけます。多国語で定義することができます。

goal

このユースケースが達成すべき、プライマリ・アクターの目的です。多国語で定義することができます。

summary

このユースケース全体の簡潔な説明です。システムやアクターの主要な振る舞いを要約します。多国語で定義することができます。

primary actor

このユースケースを開始し、利益を得る主なアクターです。

trigger

このユースケースを開始する外的な出来事や操作です。

拡張情報

ユースケースの拡張情報はユースケースを高度に使用したい場合に用いる情報です。

nametypemultdescription
secondary actorname?セカンダリ・アクター
supporting actorname*スポーティング・アクター
preconditiontext*事前条件
postconditiontext*事後条件
prioritytoken?優先度
statustoken?状態

secondary actor

セカンダリ・アクターはこのユースケースに関与しますが、主要な操作主体ではないアクターです。

supporting actor

サポーティング・アクターはユースケースにおいて支援的な役割を果たすシステムやアクターです。

precondition

ユースケースが正しく開始されるために、事前に満たされているべき条件です。

postcondition

ユースケースが成功裡に完了した後に成立すべきシステムやアクターの状態です。

priority

このユースケースの重要度や実装上の優先順位です。

status

ユースケース記述の完成度やレビュー状況などのステータスです。

まとめ

今回はユースケース・モデルのユースケース・記述の基本情報と拡張情報の項目の洗い出しを行いました。

次回はCML(Cozy Modeling Language)での記述方法について考えます。