aboutsummaryrefslogtreecommitdiffstats
path: root/csci5801/a1_usecase.tex
diff options
context:
space:
mode:
authorMatt Strapp <matt@mattstrapp.net>2021-10-06 23:45:55 -0500
committerMatt Strapp <matt@mattstrapp.net>2021-10-06 23:45:55 -0500
commit92309390f58cfd559aa74358a6126b0cebef1c24 (patch)
tree01a192653e0adda367c5dfd3ba40f0dbac05e0bb /csci5801/a1_usecase.tex
parentStart 5801a1 (diff)
downloadhomework-92309390f58cfd559aa74358a6126b0cebef1c24.tar
homework-92309390f58cfd559aa74358a6126b0cebef1c24.tar.gz
homework-92309390f58cfd559aa74358a6126b0cebef1c24.tar.bz2
homework-92309390f58cfd559aa74358a6126b0cebef1c24.tar.lz
homework-92309390f58cfd559aa74358a6126b0cebef1c24.tar.xz
homework-92309390f58cfd559aa74358a6126b0cebef1c24.tar.zst
homework-92309390f58cfd559aa74358a6126b0cebef1c24.zip
I hate myself
Signed-off-by: Matt Strapp <matt@mattstrapp.net>
Diffstat (limited to 'csci5801/a1_usecase.tex')
-rw-r--r--csci5801/a1_usecase.tex474
1 files changed, 474 insertions, 0 deletions
diff --git a/csci5801/a1_usecase.tex b/csci5801/a1_usecase.tex
new file mode 100644
index 0000000..1856efb
--- /dev/null
+++ b/csci5801/a1_usecase.tex
@@ -0,0 +1,474 @@
+%% Use Cases Template File
+%% Created by Tom Desair (http://www.tomdesair.com)
+%% Downloadable at: http://www.tomdesair.com/downloads/use-case-latex-template.zip
+%% Date Modified: 03/04/2012
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+\documentclass[a4paper, 10pt, oneside, draft]{article}
+
+%include the usecases package
+\usepackage{usecases}
+
+\begin{document}
+
+%Sometimes it is a good idea to put domain objects in \texttt{}
+%The template and the descriptions are based on the book Applying UML and Patterns:
+%An Introduction to Object-Oriented Analysis and Design and Iterative Development
+%(3rd Edition) by Craig Larman.
+\begin{usecase}
+
+\addtitle{Use Case 1}{Creating a League}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Administrator}
+
+\addfield{Trigger:}{An administrator wants to create a new league.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\addfield{Preconditions:}{The user must be signed in as an administrator.}
+%when multiple
+%\additemizedfield{Preconditions:}{}
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The league will be created.}
+%when multiple
+%\additemizedfield{Preconditions:}{}
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The administrator creates a new league.
+ \item The league is created
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not an administrator:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[2.a] The league cannot be created:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+}
+\end{usecase}
+\pagebreak
+\begin{usecase}
+
+\addtitle{Use Case 2}{Creating a Team}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Coach}
+
+\addfield{Trigger:}{A coach wants to create a new team.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\addfield{Preconditions:}{The user must be signed in as a coach.}
+%when multiple
+%\additemizedfield{Preconditions:}{}
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+% \addfield{Postconditions:}{The team will be created.}
+%when multiple
+\additemizedfield{Preconditions:}{\item The user must be signed in as a coach \item A league must already exist}
+
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item[1] The coach creates a new team.
+ \item[2] The team is created
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not a coach:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[2.a] The team cannot be created:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.b] The league does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] The user returns to step 1
+ \end{enumerate}
+}
+
+
+\end{usecase}
+
+\pagebreak
+
+\begin{usecase}
+
+\addtitle{Use Case 3}{Generating a Schedule}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Administrator}
+
+\addfield{Trigger:}{An administrator wants to generate a schedule.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\additemizedfield{Preconditions:}{\item The user must be singed in as an administrator \item A league must already exist}
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The schedule will be generated.}
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The administrator selects a league to generate a schedule for.
+ \item The administrator generates a schedule.
+ \item The schedule is generated.
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not an administrator:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[2.a] The league does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.a] The league does not have any teams:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.b] The schedule fails to be created:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+}
+
+\end{usecase}
+
+\pagebreak
+
+\begin{usecase}
+
+\addtitle{Use Case 4}{Generating Statistics}
+
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Administrator}
+
+\addfield{Trigger:}{An administrator wants to generate statistics.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\additemizedfield{Preconditions:}{\item The user must be singed in as an administrator \item A league must already exist}
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The statistics will be generated.}
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The administrator selects a league to generate statistics for.
+ \item The administrator generates statistics.
+ \item The statistics are generated.
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not an administrator:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[1.b] The league does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.a] The league does not have any teams:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.b] The statistics fail to be generated:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+}
+
+\end{usecase}
+
+\pagebreak
+
+\begin{usecase}
+
+\addtitle{Use Case 5}{Assign Officials}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Administrator}
+
+\addfield{Trigger:}{An administrator wants to assign officials.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\additemizedfield{Preconditions:}{\item The user must be singed in as an administrator \item A league must already exist \item Officials must already exist for the league}
+
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The officials will be assigned.}
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The administrator selects a league to assign officials to.
+ \item The administrator assigns officials.
+ \item The officials are assigned.
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not an administrator:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[2.a] The league does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.a] There are no eligible officials:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.b] An unknown error occurs:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+}
+
+\end{usecase}
+
+\pagebreak
+
+
+\begin{usecase}
+
+\addtitle{Use Case 6}{Generate Bracket}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Administrator}
+
+\addfield{Trigger:}{An administrator wants to generate a bracket.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\additemizedfield{Preconditions:}{\item The user must be singed in as an administrator \item A league must already exist}
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The bracket will be generated and a schedule will be created.}
+
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The administrator selects a league to generate a bracket for.
+ \item The administrator generates a bracket.
+ \item The bracket is generated.
+ \item A schedule is created from the bracket, following Use Case 3.
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not an administrator:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[2.a] The league does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.a] The league does a cleanly divisible number of teams:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[3.b] The schedule fails to be created:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[4.b] A bracket is manually generated
+ \begin{enumerate}
+ \item[1.] The system follows all steps except step 5
+ \item[2.] The schedule is created
+ \end{enumerate}
+}
+\end{usecase}
+
+\pagebreak
+
+\begin{usecase}
+
+\addtitle{Use Case 7}{Submit Scores}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{Official}
+
+\addfield{Trigger:}{An official wants to submit scores for a game they officiated.}
+
+%Preconditions: What must be true on start and worth telling the reader?
+\additemizedfield{Preconditions:}{\item The user must be singed in as an official \item A league must already exist \item A schedule must already exist \item A game must already exist \item The user must have permission to submit scores for that game}
+
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The scores will be submitted.}
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The official selects a game to submit scores for.
+ \item The official submits scores.
+ \item The scores are submitted.
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The user is not an official:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to login page
+ \end{enumerate}
+ \item[1.b] An administrator:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[2.a] The league does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[2.b] The schedule does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[2.c] The game does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[2.d] The user does not have permission to submit scores for that game:
+ \begin{enumerate}
+ \item[1.] System shows permission denied
+ \item[2.] User returns to step 1
+ \end{enumerate}
+
+}
+\end{usecase}
+
+\pagebreak
+
+
+\begin{usecase}
+
+\addtitle{Use Case 8}{View Schedule}
+
+%Scope: the system under design
+\addfield{Scope:}{System-wide}
+
+%Level: "user-goal" or "subfunction"
+\addfield{Level:}{User-goal}
+
+%Primary Actor: Calls on the system to deliver its services.
+\addfield{Primary Actor:}{End User}
+
+\addfield{Trigger:}{An end user wants to view a schedule.}
+
+
+%Preconditions: What must be true on start and worth telling the reader?
+\additemizedfield{Preconditions:}{ \item A schedule must already exist \item If the schedule is not public the user must be signed in}
+
+%Postconditions: What must be true on successful completion and worth telling the reader
+\addfield{Postconditions:}{The schedule will be displayed.}
+
+%Main Success Scenario: A typical, unconditional happy path scenario of success.
+\addscenario{Main Success Scenario:}{
+ \item The user selects a league to view a schedule for.
+ \item The schedule is displayed.
+}
+
+%Extensions: Alternate scenarios of success or failure.
+\addscenario{Extensions:}{
+ \item[1.a] The schedule is not public:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+ \item[2.a] The schedule does not exist:
+ \begin{enumerate}
+ \item[1.] System shows failure message
+ \item[2.] User returns to step 1
+ \end{enumerate}
+}
+\end{usecase}
+
+
+
+\end{document}
+