Skip to content
Snippets Groups Projects
Commit a5cd2315 authored by Ori Almog's avatar Ori Almog
Browse files

Added func reqs

parent 50691cb8
No related branches found
No related tags found
No related merge requests found
\contentsline {table}{\numberline {1}{\ignorespaces \bf Revision History}}{ii}{table.1}
\BOOKMARK [1][-]{section.1}{Project Drivers}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{The Purpose of the Project}{section.1}% 2
\BOOKMARK [2][-]{subsection.1.2}{The Stakeholders}{section.1}% 3
\BOOKMARK [3][-]{subsubsection.1.2.1}{The Client}{subsection.1.2}% 4
\BOOKMARK [3][-]{subsubsection.1.2.2}{The Customers}{subsection.1.2}% 5
\BOOKMARK [3][-]{subsubsection.1.2.3}{Other Stakeholders}{subsection.1.2}% 6
\BOOKMARK [2][-]{subsection.1.3}{Mandated Constraints}{section.1}% 7
\BOOKMARK [2][-]{subsection.1.4}{Naming Conventions and Terminology}{section.1}% 8
\BOOKMARK [2][-]{subsection.1.5}{Relevant Facts and Assumptions}{section.1}% 9
\BOOKMARK [1][-]{section.2}{Functional Requirements}{}% 10
\BOOKMARK [2][-]{subsection.2.1}{The Scope of the Work and the Product}{section.2}% 11
\BOOKMARK [3][-]{subsubsection.2.1.1}{The Context of the Work}{subsection.2.1}% 12
\BOOKMARK [3][-]{subsubsection.2.1.2}{Work Partitioning}{subsection.2.1}% 13
\BOOKMARK [3][-]{subsubsection.2.1.3}{Individual Product Use Cases}{subsection.2.1}% 14
\BOOKMARK [2][-]{subsection.2.2}{Functional Requirements}{section.2}% 15
\BOOKMARK [3][-]{subsubsection.2.2.1}{Basic mechanics}{subsection.2.2}% 16
\BOOKMARK [3][-]{subsubsection.2.2.2}{Interaction}{subsection.2.2}% 17
\BOOKMARK [3][-]{subsubsection.2.2.3}{The Dungeon}{subsection.2.2}% 18
\BOOKMARK [3][-]{subsubsection.2.2.4}{Equipment}{subsection.2.2}% 19
\BOOKMARK [3][-]{subsubsection.2.2.5}{Combat}{subsection.2.2}% 20
\BOOKMARK [1][-]{section.3}{Non-functional Requirements}{}% 21
\BOOKMARK [2][-]{subsection.3.1}{Look and Feel Requirements}{section.3}% 22
\BOOKMARK [2][-]{subsection.3.2}{Usability and Humanity Requirements}{section.3}% 23
\BOOKMARK [2][-]{subsection.3.3}{Performance Requirements}{section.3}% 24
\BOOKMARK [2][-]{subsection.3.4}{Operational and Environmental Requirements}{section.3}% 25
\BOOKMARK [2][-]{subsection.3.5}{Maintainability and Support Requirements}{section.3}% 26
\BOOKMARK [2][-]{subsection.3.6}{Security Requirements}{section.3}% 27
\BOOKMARK [2][-]{subsection.3.7}{Cultural Requirements}{section.3}% 28
\BOOKMARK [2][-]{subsection.3.8}{Legal Requirements}{section.3}% 29
\BOOKMARK [2][-]{subsection.3.9}{Health and Safety Requirements}{section.3}% 30
\BOOKMARK [1][-]{section.4}{Project Issues}{}% 31
\BOOKMARK [2][-]{subsection.4.1}{Open Issues}{section.4}% 32
\BOOKMARK [2][-]{subsection.4.2}{Off-the-Shelf Solutions}{section.4}% 33
\BOOKMARK [2][-]{subsection.4.3}{New Problems}{section.4}% 34
\BOOKMARK [2][-]{subsection.4.4}{Tasks}{section.4}% 35
\BOOKMARK [2][-]{subsection.4.5}{Migration to the New Product}{section.4}% 36
\BOOKMARK [2][-]{subsection.4.6}{Risks}{section.4}% 37
\BOOKMARK [2][-]{subsection.4.7}{Costs}{section.4}% 38
\BOOKMARK [2][-]{subsection.4.8}{User Documentation and Training}{section.4}% 39
\BOOKMARK [2][-]{subsection.4.9}{Waiting Room}{section.4}% 40
\BOOKMARK [2][-]{subsection.4.10}{Ideas for Solutions}{section.4}% 41
\BOOKMARK [1][-]{section.5}{Appendix}{}% 42
\BOOKMARK [2][-]{subsection.5.1}{Symbolic Parameters}{section.5}% 43
No preview for this file type
......@@ -60,13 +60,13 @@ to the template, you should explicity state what modifications were made.
\subsection{The Purpose of the Project}
The goal of the project is to produce a reimplementation of the orignal Rogue computer game, originally developed by Michael Toy, Glenn Wichman, and Ken Arnold in 1980. The gameplay of the reimplementation should mimic that of the original whenever possible. The objective of the rewrite is to produce a copy in a modern language, using modern design principles, with superior documentation and a full test suite. The original Rogue is of historical interest as it forms the foundation and is the namesake of the roguelike genre of games, typified by their randomized environments, difficulty, and permadeath features. The motivation for this project is the poor condition of the original source code. The original source was not written with readability in mind, and designed for extremely low-performance systems who required some unusual design patterns. The version of C in which it was written is very old, which hinders compilation or feature extension. The intended audience for this document is the stakeholders of this project, especially Dr Smith and the 3XA3 TAs.
The goal of the project is to produce a reimplementation of the original Rogue computer game, originally developed by Michael Toy, Glenn Wichman, and Ken Arnold in 1980. The gameplay of the reimplementation should mimic that of the original whenever possible. The objective of the rewrite is to produce a copy in a modern language, using modern design principles, with superior documentation and a full test suite. The original Rogue is of historical interest as it forms the foundation and is the namesake of the roguelike genre of games, typified by their randomized environments, difficulty, and permadeath features. The motivation for this project is the poor condition of the original source code. The original source was not written with readability in mind, and designed for extremely low-performance systems who required some unusual design patterns. The version of C in which it was written is very old, which hinders compilation or feature extension. The intended audience for this document is the stakeholders of this project, especially Dr Smith and the 3XA3 TAs.
\subsection{The Stakeholders}
\subsubsection{The Client}
The client of the project is Dr Spencer Smith. Dr Smith commissioned the project and will be overseeing its production. Dr Smith provides the specifications for this document, as well as other aspects of the project, including the test suite, and all documenation. In addition he will be evaluating the final product.
The client of the project is Dr Spencer Smith. Dr Smith commissioned the project and will be overseeing its production. Dr Smith provides the specifications for this document, as well as other aspects of the project, including the test suite, and all documentation. In addition he will be evaluating the final product.
\subsubsection{The Customers}
......@@ -86,6 +86,8 @@ to the template, you should explicity state what modifications were made.
\subsection{The Scope of the Work and the Product}
Not sure about this section
\subsubsection{The Context of the Work}
\subsubsection{Work Partitioning}
......@@ -94,6 +96,56 @@ to the template, you should explicity state what modifications were made.
\subsection{Functional Requirements}
This section will specify the functional requirements of the Rogue++ project. They are numerous, scattered, and interdependent, therefore an attempt shall be made to organize them into cascading, logical segments.
\subsubsection{Basic mechanics}
\begin{itemize}
\item The player should be able to start a new game
\item The player should be able to save the current game by name
\item The player should be able to load previous games by name
\item The player should be able to quit the game
\item The player must always begin with the default level 1 hero
\item The player must always see their hero's statistics
\item The game must wait until the user takes an action to manipulate the environment
\end{itemize}
\subsubsection{Interaction}
\begin{itemize}
\item The player should be able to view detailed information about:
\begin{itemize}
\item The hero
\item The surrounding environment
\end{itemize}
\item The player should be able to pass the turn
\item The player should be able to walk around
\item The player should be able to open and close doors
\end{itemize}
\subsubsection{The Dungeon}
\begin{itemize}
\item The player must begin at the dungeon's first level
\item The game must generate each dungeon level one at a time
\item Each level must have a downwards staircase
\item Every level must generate rooms, corridors, monsters, treasure, and traps
\end{itemize}
\subsubsection{Equipment}
\begin{itemize}
\item The game should maintain an inventory of player items
\item The player should be able to view the inventory
\item The game should limit the player's inventory based on the weight of its contents
\item The player should be able to add, hold, use, and remove objects from the inventory
\end{itemize}
\subsubsection{Combat}
\begin{itemize}
\item Each monster must have its own statistics
\item Each monster must calculate a plan of action
\item Monsters must only attack the player, not other monsters
\end{itemize}
\section{Non-functional Requirements}
\subsection{Look and Feel Requirements}
......
\contentsline {section}{\numberline {1}Project Drivers}{1}{section.1}
\contentsline {subsection}{\numberline {1.1}The Purpose of the Project}{1}{subsection.1.1}
\contentsline {subsection}{\numberline {1.2}The Stakeholders}{1}{subsection.1.2}
\contentsline {subsubsection}{\numberline {1.2.1}The Client}{1}{subsubsection.1.2.1}
\contentsline {subsubsection}{\numberline {1.2.2}The Customers}{2}{subsubsection.1.2.2}
\contentsline {subsubsection}{\numberline {1.2.3}Other Stakeholders}{2}{subsubsection.1.2.3}
\contentsline {subsection}{\numberline {1.3}Mandated Constraints}{2}{subsection.1.3}
\contentsline {subsection}{\numberline {1.4}Naming Conventions and Terminology}{2}{subsection.1.4}
\contentsline {subsection}{\numberline {1.5}Relevant Facts and Assumptions}{2}{subsection.1.5}
\contentsline {section}{\numberline {2}Functional Requirements}{2}{section.2}
\contentsline {subsection}{\numberline {2.1}The Scope of the Work and the Product}{2}{subsection.2.1}
\contentsline {subsubsection}{\numberline {2.1.1}The Context of the Work}{2}{subsubsection.2.1.1}
\contentsline {subsubsection}{\numberline {2.1.2}Work Partitioning}{2}{subsubsection.2.1.2}
\contentsline {subsubsection}{\numberline {2.1.3}Individual Product Use Cases}{2}{subsubsection.2.1.3}
\contentsline {subsection}{\numberline {2.2}Functional Requirements}{2}{subsection.2.2}
\contentsline {subsubsection}{\numberline {2.2.1}Basic mechanics}{2}{subsubsection.2.2.1}
\contentsline {subsubsection}{\numberline {2.2.2}Interaction}{3}{subsubsection.2.2.2}
\contentsline {subsubsection}{\numberline {2.2.3}The Dungeon}{3}{subsubsection.2.2.3}
\contentsline {subsubsection}{\numberline {2.2.4}Equipment}{3}{subsubsection.2.2.4}
\contentsline {subsubsection}{\numberline {2.2.5}Combat}{4}{subsubsection.2.2.5}
\contentsline {section}{\numberline {3}Non-functional Requirements}{4}{section.3}
\contentsline {subsection}{\numberline {3.1}Look and Feel Requirements}{4}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}Usability and Humanity Requirements}{4}{subsection.3.2}
\contentsline {subsection}{\numberline {3.3}Performance Requirements}{4}{subsection.3.3}
\contentsline {subsection}{\numberline {3.4}Operational and Environmental Requirements}{4}{subsection.3.4}
\contentsline {subsection}{\numberline {3.5}Maintainability and Support Requirements}{4}{subsection.3.5}
\contentsline {subsection}{\numberline {3.6}Security Requirements}{4}{subsection.3.6}
\contentsline {subsection}{\numberline {3.7}Cultural Requirements}{4}{subsection.3.7}
\contentsline {subsection}{\numberline {3.8}Legal Requirements}{4}{subsection.3.8}
\contentsline {subsection}{\numberline {3.9}Health and Safety Requirements}{4}{subsection.3.9}
\contentsline {section}{\numberline {4}Project Issues}{5}{section.4}
\contentsline {subsection}{\numberline {4.1}Open Issues}{5}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}Off-the-Shelf Solutions}{5}{subsection.4.2}
\contentsline {subsection}{\numberline {4.3}New Problems}{5}{subsection.4.3}
\contentsline {subsection}{\numberline {4.4}Tasks}{5}{subsection.4.4}
\contentsline {subsection}{\numberline {4.5}Migration to the New Product}{5}{subsection.4.5}
\contentsline {subsection}{\numberline {4.6}Risks}{5}{subsection.4.6}
\contentsline {subsection}{\numberline {4.7}Costs}{5}{subsection.4.7}
\contentsline {subsection}{\numberline {4.8}User Documentation and Training}{5}{subsection.4.8}
\contentsline {subsection}{\numberline {4.9}Waiting Room}{5}{subsection.4.9}
\contentsline {subsection}{\numberline {4.10}Ideas for Solutions}{5}{subsection.4.10}
\contentsline {section}{\numberline {5}Appendix}{6}{section.5}
\contentsline {subsection}{\numberline {5.1}Symbolic Parameters}{6}{subsection.5.1}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment