Skip to content
Snippets Groups Projects
requirements.tex 7.03 KiB
Newer Older
\documentclass[12pt]{article}

\usepackage{indentfirst}
\usepackage[nottoc,numbib]{tocbibind}
\usepackage{xcolor} % for different colour comments

%% Comments
\newif\ifcomments\commentstrue

\ifcomments
\newcommand{\authornote}[3]{\textcolor{#1}{[#3 ---#2]}}
\newcommand{\todo}[1]{\textcolor{red}{[TODO: #1]}}
\else
\newcommand{\authornote}[3]{}
\newcommand{\todo}[1]{}
\fi

\newcommand{\wss}[1]{\authornote{magenta}{SS}{#1}}
\newcommand{\hm}[1]{\authornote{blue}{HM}{#1}} %Hediyeh
\newcommand{\tz}[1]{\authornote{blue}{TZ}{#1}} %Tahereh
\newcommand{\pl}[1]{\authornote{blue}{PL}{#1}} %Peng

\begin{document}

\title{Software Requirements for Pic-Puzzle} 
\author{Justin Kapinski, Boyun Deng, Yuchen Liu}
\date{\today}
	
\maketitle

\setlength{\parskip}{1em}

\tableofcontents

\listoffigures

\listoftables

\newpage

\section{Revision History}
\begin{description}
	\item[Revision 0.1] Oct 6, 2015: Filled in most sections other than Functional and Non-functional requirements
	\item[Revision 0] Oct 5, 2015: Created document
\end{description}

\newpage

\section{Project Drivers}

\subsection{Purpose of the Project}

The purpose of the Pic-Puzzle is to emulate a type of logic puzzle 
called Nonograms on the computer. Anything that can be done with 
Nonograms on paper should be able to be done in Pic-Puzzle. This project 
will let users have fun while working on a logic puzzle. 

\subsection{The Stakeholders}

The client for this project is Dr. Smith and the TAs of 3XA3. They 
commissioned the project to test our understanding of Software 
Engineering principles. 

The users for this project are people who like to play puzzle games. The 
typical user will want to play a puzzle game for many reasons. Some 
examples are: they are bored and they want they want to play a game, 
they want to excersize their brains, or they just like Nonograms. 

The other users for this project will be Dr. Smith and the TAs of 3XA3. 
They will be testing our project and ensuring it matches our 
requirements. 

\section{Project Constraints}

\subsection{Mandated Constraints}

The first constraint the project has is that it must be completed by 
early December. Another constraint is that the final product should at 
least replicate the functionality of another project called 
PicrossEngine. This project was also created to replicate Nonograms. 

\subsection{Naming Conventions and Terminology}

\begin{description}
\item[3XA3:] \hfill \\ An experiential software engineering course at McMaster University with a large software project.
\item[Nonogram:] \hfill \\ A logic puzzle involving setting pixels of a picture to black or white \cite{nonogram}.
\item[PicrossEngine:] \hfill \\ The project this one is based on. It is a Nonogram game \cite{picrossengine}.
\item[Player:] \hfill \\ See user.
\item[User:] \hfill \\ The user is a person who will use the final product.
\item[Template:] \hfill \\ 
\end{description}

\subsection{Relevant Facts and Assumptions}

The project this one will be replicating, PicrossEngine, is very poorly 
documented. In addition, it has a very simple design that is messy and 
not planned out. Due to these factors, our project will not reuse any 
code or documentation.

The completed project will assume that the player knows how to play a 
Nonogram since it is a simple game to learn and it eliminates the need 
for an in game manual.

\section{Functional Requirements}

\subsection{The Scope of the Work}

\subsection{Business Data Model and Data Dicitonary}

\subsection{The Scope of the Product}

\subsection{Functional Requirements}

\section{Non-functional Requirements}

\subsection{Look and Feel Requirements}

Pic-puzzle's GUI should be decorated as a game.

\subsection{Usability and Humanity Requirements}

pic-puzzle should easy to use for people above 3 years old.
pic-puzzle should be easy to learn for even people who are not familiar with computers.

\subsection{Performance Requirements}

Pic-puzzle should be available for sveral difficulty by changing the resolution of the picture.
Pic-puzzle can generate hint numbers for a given picture.

\subsection{Operational and Environmental Requirements}

Pic-puzzle coding with java, so it should run in a java environment(including windows and mac with JDK).

\subsection{Maintainability and Support Requirements}

Pic-puzzle should be checked and maintained periodiclly.

\subsection{Security Requirements}

Pic-puzzle should be able to save unfinished work to avoid loss work.

\subsection{Cultural Requirements}

None

\subsection{Legal Requirements}

None

\section{Project Issues}

\subsection{Open Issues}

\begin{itemize}
\item The investigation into whether or not an external library will be necessary for the GUI is not complete.
\item It is unclear if the implementation will require special care to work on multiple platforms.
\end{itemize}

\subsection{Off-the-Shelf Solutions}

There are a few off-the-shelf solutions for the problem the product will 
solve. The first off-the-shelf solution is called PicrossEngine. It is 
an implementation of a Nonogram game that is simple and does not have 
many features beyong the bare minimum to be considered a Nonogram. 
Another off-the-shelf solution is called Picross DS. This is a video 
game made by Nintendo for their DS portable game console. It has many 
advanced features such as a score and downloading additional puzzles 
from online \cite{picrossds}. 

\subsection{New Problems}

Not applicable to this project.

\subsection{Tasks}

The project's life cycle will follow the schedule for Software 
Engineering 3XA3. The project must be completed by the end of the 
semester. 

\subsection{Migration to the New Product}

Not applicable to this project.

\subsection{Risks}

The main risk our project faces is not completing a GUI for the game. 
This could happen due to the short amount of time required to produce a 
finished product. GUI programming can be tricky and because of this the 
time required to code one might exceed our initial estimate. As a 
contingency plan we can create a command line interface to the program 
instead. 

\subsection{Costs}

Not applicable to this project.

\subsection{User Documentation and Training}

The documentation will include, the Problem Statement, Requirements 
Document, Design Document, Test Plan, Test Report, User's Guide, and the 
projects source code. This documentation will be completed at the same 
time the project is completed. 

\subsection{Waiting Room}

An additional feature that would improve the project if there is time 
for implementing it would be a level selection screen. This would let 
the user pick a level they want to play and tell them if they have 
completed that level yet. 

\subsection{Ideas for Solutions}

\newpage

\begin{thebibliography}{9}

\bibitem{nonogram} "Nonogram." Internet: https://en.wikipedia.org/wiki/Nonogram, Sept 27, 2015 [Oct 5, 2015]

\bibitem{picrossengine} "Picross Puzzle Engine using Python." Internet: https://github.com/Elliotpwnz/PicrossEngine, Jun 26, 2015 [Oct 5, 2015]

\bibitem{picrossds} "Picross DS." Internet: http://ca.ign.com/games/picross-ds/nds-876330, Jul 12, 2007 [Oct 5, 2015]

\end{thebibliography}

\end{document}