=================== ユースケース =================== ユースケース一覧 ==================== .. list-table:: :widths: 30, 30, 30, 60 :header-rows: 1 * - ユースケースグループID - ユースケースグループ名 - ユースケースID - ユースケース名 * - A - ログイン - A1 - ログインする * - B - 記事閲覧 - B1 - 記事を閲覧する * - C - 記事投稿 - C1 - 記事を投稿する * - D - 記事修正 - D1 - 記事を修正する * - E - 記事削除 - E1 - 記事を削除する * - F - コメント投稿 - F1 - 記事にコメントする * - G - ログアウト - G1 - ログアウトする ユースケース図 ==================== .. uml:: @startuml left to right direction skinparam packageStyle rect skinparam defaultFontName IPAGothic actor :閲覧者: as Visitor actor :ユーザ: as User rectangle "ブログ" { usecase (ログインする) as Login usecase (記事を閲覧する) as ViewArticle usecase (記事を投稿する) as EntryArticle usecase (記事を修正する) as ModifyArticle usecase (記事を削除する) as RemoveArticle usecase (記事にコメントする) as EntryComment usecase (ログアウトする) as Logout EntryArticle ..> Login : <> ModifyArticle ..> Login : <> RemoveArticle ..> Login : <> User --> EntryArticle User --> ModifyArticle User --> RemoveArticle User --> EntryComment Visitor --> EntryComment User --> ViewArticle Visitor --> ViewArticle User --> Logout Visitor --> Logout } @enduml ユースケース仕様書 ==================== ログイン ------------- :概要: ユーザがログインする :アクター: ユーザ :関連システム: なし :事前条件: ログインしていないこと :事後条件: ログインされていること :ビジネスルール: なし :生成エンティティ: なし :参照エンティティ: ユーザ情報 :更新エンティティ: なし :削除エンティティ: なし :関連ユースケース: なし :基本フロー: #. ユーザはログイン画面を表示する。 #. ユーザはユーザIDとパスワードを入力する。 #. システムはユーザ情報を検索しユーザIDおよびパスワードの一致を確認する。 #. システムは記事一覧画面を表示する。 :代替フロー(ユーザID、パスワードが一致しないとき): #. システムはエラーメッセージを表示し、再入力を促す。 記事閲覧 ------------- :概要: 閲覧者またはユーザが記事を閲覧する :アクター: ユーザ、閲覧者 :関連システム: なし :事前条件: なし :事後条件: なし :ビジネスルール: なし :生成エンティティ: なし :参照エンティティ: 記事、コメント :更新エンティティ: なし :削除エンティティ: なし :関連ユースケース: なし :基本フロー: #. ユーザは記事一覧画面を表示する。 #. ユーザは記事一覧画面から詳細を見たい記事のタイトルをクリックする。 #. システムは選択された記事の内容をコメントと共に記事詳細画面として表示する。 記事投稿 ------------- :概要: ユーザが記事を投稿する :アクター: ユーザ :関連システム: なし :事前条件: ログインしていること :事後条件: 記事が保存されていること :ビジネスルール: なし :生成エンティティ: 記事 :参照エンティティ: なし :更新エンティティ: なし :削除エンティティ: なし :関連ユースケース: ログイン :基本フロー: #. ユーザは記事一覧画面の「記事を投稿する」ボタンをクリックする。 #. システムは記事投稿画面を表示する。 #. ユーザは記事を入力し「投稿」ボタンをクリックする。 #. システムは入力内容の検証を行い、記事投稿確認画面を表示する。 #. ユーザは表示内容を確認し「確定」ボタンをクリックする。 #. システムは記事を保存し、記事一覧画面を表示する。 :代替フロー(入力内容の検証がNGの場合): #. システムはエラーメッセージを表示し、再入力を促す。 記事修正 ------------- :概要: ユーザが記事を修正する :アクター: ユーザ :関連システム: なし :事前条件: ログインしていること :事後条件: 記事が修正されていること :ビジネスルール: なし :生成エンティティ: なし :参照エンティティ: なし :更新エンティティ: 記事 :削除エンティティ: なし :関連ユースケース: ログイン :基本フロー: #. ユーザは記事一覧画面で修正したい記事のタイトルをクリックする。 #. システムは記事詳細画面を表示する。 #. システムはログインユーザが投稿した記事の場合「修正」ボタンを表示する。 #. ユーザは記事詳細画面の「修正」ボタンをクリックする。 #. システムは記事修正画面を保存された記事の内容で表示する。 #. ユーザは記事を修正し「修正」ボタンをクリックする。 #. システムは入力内容の検証を行い、記事修正確認画面を表示する。 #. ユーザは表示内容を確認し「確定」ボタンをクリックする。 #. システムは記事を保存し、記事一覧画面を表示する。 :代替フロー(入力内容の検証がNGの場合): #. システムはエラーメッセージを表示し、再入力を促す。 記事削除 ------------- :概要: ユーザが記事を削除する :アクター: ユーザ :関連システム: なし :事前条件: ログインしていること :事後条件: 記事が削除されていること :ビジネスルール: なし :生成エンティティ: なし :参照エンティティ: なし :更新エンティティ: なし :削除エンティティ: 記事、コメント :関連ユースケース: ログイン :基本フロー: #. ユーザは記事一覧画面で削除したい記事のタイトルをクリックする。 #. システムは記事詳細画面を表示する。 #. システムはログインユーザが投稿した記事の場合「削除」ボタンを表示する。 #. ユーザは記事詳細画面の「削除」ボタンをクリックする。 #. システムは記事削除確認画面を表示する。 #. ユーザは「削除」ボタンをクリックする。 #. システムは記事と記事に紐づくコメントを削除する。 #. システムは記事一覧画面を表示する。 コメント投稿 ------------- :概要: 記事にコメントする :アクター: 利用者(ユーザ、閲覧者) :関連システム: なし :事前条件: なし :事後条件: コメントが保存されていること :ビジネスルール: なし :生成エンティティ: コメント :参照エンティティ: 記事、コメント :更新エンティティ: なし :削除エンティティ: なし :関連ユースケース: なし :基本フロー: #. 利用者は記事一覧画面でコメントを投稿したい記事のタイトルをクリックする。 #. システムは記事詳細画面で記事と保存されているコメントを表示する。 #. ユーザは新規コメント欄にコメントを入力し「コメント投稿」ボタンをクリックする。 #. システムはコメントが入力されていた場合、確認ダイアログを表示する。 #. ユーザは「OK」ボタンをクリックする。 #. システムはコメントを保存する。 #. システムは記事詳細画面を再表示する。 ログアウト ------------- :概要: ユーザがログアウトする :アクター: ユーザ :関連システム: なし :事前条件: ログインしていること :事後条件: ログアウトされていること :ビジネスルール: なし :生成エンティティ: なし :参照エンティティ: なし :更新エンティティ: なし :削除エンティティ: なし :関連ユースケース: なし :基本フロー: #. ユーザは記事一覧画面のログアウトボタンをクリックする。 #. システムはログアウト処理を実行する。 #. システムは記事一覧画面を再表示する。