スパイラル2では、スパイラル1で実装した機能に加えて、ユーザ関係の機能を追加しよう。
SP2のユースケースは以下の7つである。
- 管理ユーザは入力欄に必要事項を記入し「登録」ボタンを押す。
- 登録ボタンが押されたことがユーザ制御パネルに通知される。
- ユーザ制御パネルは入力情報を取り出し、ユーザ管理者に渡し登録を依頼する。
- ユーザ管理者はデータベース管理者に新規ユーザ情報を渡し登録を依頼する。
- データベース管理者はデータベースに新規ユーザを登録する。
- ユーザ管理者はユーザリストを更新する。
- 管理ユーザはユーザリストのユーザをクリックする。
- クリックされたことがユーザ制御パネルに通知される。
- ユーザ制御パネルはリスト内の情報を取り出し、入力欄に設定する。
- 選択されたユーザの背景色が変わる。もし以前に選択されていたユーザがあれば、その背景色は元に戻る。
- 管理ユーザは選択されているユーザの情報を変更し「修正」ボタンを押す。
- 修正ボタンが押されたことがユーザ制御パネルに通知される。
- ユーザ制御パネルは入力情報を取り出し、ユーザ管理者に渡し修正を依頼する。
- ユーザ管理者はデータベース管理者に既存のユーザ情報を渡し修正を依頼する。
- データベース管理者はデータベースのユーザ情報を修正する。
- ユーザ管理者はユーザリストを更新する。
- 管理ユーザは「削除」ボタンを押す。
- 削除ボタンが押されたことがユーザ制御パネルに通知される。
- ユーザ制御パネルはユーザ管理者に削除するユーザのIDを渡し削除を依頼する。
- ユーザ管理者はデータベース管理者にユーザIDを渡し削除を依頼する。
- データベース管理者は渡されたユーザIDのユーザを削除する。
- ユーザ管理者はユーザリストを更新する。
- 管理ユーザは管理画面を開く。
- ユーザ管理者はデータベース管理者にユーザリストを要求する。
- データベース管理者はデータベースからユーザリストを取り出しユーザ管理者に渡す。
- ユーザ管理者はユーザリストを更新する。
- ユーザが年と月と会議室を入力して表示ボタンを押す。
- 表示ボタンが押されたことが制御パネルに通知される。
- 制御パネルは、年と月と会議室名を取り出して、その情報をシステム管理者に通知する。
- システム管理者は、年と月と会議室の情報をデータベース管理者に渡して、予約リストの取り出しを依頼する。
- データベース管理者は、指定された年月と会議室の予約リストをデータベースから取り出しシステム管理者に渡す。
- システム管理者は予約リストをカレンダー管理者に渡して、表示の更新を依頼する。
- カレンダー管理者がカレンダーを更新する。
- ユーザが会議室予約システムのページを開く。
- 制御パネルはデータベース管理者に会議室リストを要求する。
- データベース管理者はデータベースに問い合わせて会議室リストを得て、制御パネルに渡す。
- 制御パネルは会議室のドロップダウンメニューを更新する。
- 制御パネルは現在の年と月の値をテキストボックスに設定する。
- 制御パネルは、現在の年と月と“全会議室”を使ってシステム管理者にカレンダーの更新を依頼する。→ここから先は予約の閲覧と同様。
本来の開発ならば、すべてのユースケースについてシナリオを書くべきである。 シナリオはオブジェクト抽出の基本であるから。
しかし、ここではシナリオとユースケース記述がほぼ同じになることから、シナリオの記述は省略する。
以下の6つのオブジェクトを抽出した。
シーケンス図のオブジェクト間のメッセージやり取りの関係からクラスの関係を導くと以下のようになる。
なお、ここではオブジェクトとクラスは一致している。
クラス名を以下のように英語表記に変更した。
詳細シーケンス図は以下のようになる。