Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
\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}