[要求仕様の美学]

業務の粒度やアクターの役割を明確化し、システムの振る舞いをUMLで表現する:第12回

2009年9月4日(金)福田 修

要求仕様に対するソフトウェア工学からのアプローチを解説する第2回である今回は、実際にUML図を作成する。自分だったらどう記述するか、考えながら読み進めてほしい。

[node:1113,title="前回"]、要求仕様書作成におけるUMLの意義について述べた。今回は、システム化の具体例を設定し、実際にUML図を作成していく。題材として、広告誌を発行するA社における新・広告編集システムを取り上げる。これは、原稿の入稿から編集、印刷に至るまでの業務プロセスを効率化することを目的にしたシステムである。

UML図の作成に先立ち、システム化の背景を説明しておこう。A社はこれまで、図1の業務フローに示すようにFAXを利用して原稿をやりとりしており、そのプロセスを管理するための「注文管理システム」を利用してきた。従来のこうしたやり方には、毎月の通信費がかさむという問題があった。さらに、A社では近くWeb広告に参入する計画だが、その際にも紙の原稿をベースにした編集作業は足かせになることが容易に予想できた。

図1 広告編集の業務フロー
図1 広告編集の業務フロー

そこで、A社はFAXに加えてデジタル原稿をWeb経由で送受信し、入稿から印刷までの工程を管理できる仕組みを整えることにした。通信費削減のほか、紙に印字された情報をパソコンに入力する手間をなくすことも、新システムの狙いである。

以上の経緯を踏まえたうえで、A社の新システムを「ユースケース図」「クラス図」「シーケンス図」という、UMLの代表的な3モデルで表現していく。

ユースケース図を作成する

ユースケースは、ある目的を達成するためにアクターが実行する個別の操作を示す。ユースケース図には、システムのアクターやそのアクターが業務フローの中でどのような操作を行うのかを記述する。

実は、あるワークショップでこの題材を使ってユースケース図を作成する演習を実施したところ、3つのグループが作成したユースケース図はすべて異なっていた。なぜだろうか。グループ間の議論の焦点になったポイントを以下に示す。

(1)ユースケースをどう分割するか。例えば、編集(社員による最初の原稿作成)と校正(顧客と原稿を確認しながら、確認修正する作業)を、同じユースケースとするか別のユースケースとするか。

(2)A社は業務規模が小さいため、1人の社員が営業や編集、印刷業務を兼務することが多い。この場合、アクターを「社員」という1つのアクターとするか、あるいは「営業担当」「編集者」「印刷担当」といった役割で分けて表現するか。

(3)一定期間は新システムと既存の注文管理システムを並行して稼働させ、新システムに登録された受注内容を既存の注文管理システムに送信する必要がある。既存システムはユースケースのどこに、どのように書くべきか。

(1)はユースケースの粒度の問題、(2)はアクターの表現の問題、(3)は既存システムとの関係をどう表現するかの問題と言える。いずれも、ユースケース図を作成する際に混乱しやすい事柄なので、前もって明確に定義しておきたい。3つのポイントについて、ここでは次のように定義する。

  • 業務フロー図にならい、編集作業と校正作業はそれぞれ別のユースケースとする。
  • 社員が増えた場合を見越して、アクターはそれぞれの役割別に設ける。
  • 既存の注文管理システムをアクターとして設け、「原稿を入稿する」というユースケースと関連づける。

以上の要件を得て作成したのが、図2のユースケース図である。

図2 広告編集システムのユースケース図
図2 広告編集システムのユースケース図

ただし、ユースケース図だけではシステム構築に必要な情報を網羅できない。そこで、ユースケースごとに「ユースケースシナリオ」を作成する。このユースケースシナリオには、アクターが実施すべき業務フローに従ってシステム仕様を文章で記述する。顧客がWeb経由で入稿する際のユースケースシナリオの例を、図3に示す。

図3 ユースケースシナリオの例
ユースケース名 原稿を入稿する
ユースケース番号 U002
概要 顧客から原稿を受け取り、営業担当者と注文管理システムに渡す
アクター 顧客、営業担当者、注文管理システム
事前条件 セッションが確立していること
事後条件
  • システムに原稿が保存されていること
  • 注文管理システムにデータが送信されていること
イベントフロー
正常フロー
  1. 顧客が画面から「原稿を入稿する」を選択することでユースケースが始まる
  2. 顧客は原稿をアップロードする。その際に、掲載する媒体名および号数を指定する
  3. システムは入力内容の妥当性をチェックする
  4. システムは入稿フラグを立てる
  5. システムは注文管理システムにデータを送信する
  6. システムは原稿を保存する
異常フロー
  1. アップロードに失敗した場合、エラー画面を表示する
  2. 掲載する媒体名または号数が間違っている場合、エラー画面を表示する
この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
バックナンバー
要求仕様の美学一覧へ
関連記事

Special

-PR-

業務の粒度やアクターの役割を明確化し、システムの振る舞いをUMLで表現する:第12回要求仕様に対するソフトウェア工学からのアプローチを解説する第2回である今回は、実際にUML図を作成する。自分だったらどう記述するか、考えながら読み進めてほしい。

PAGE TOP