%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	Template latex file for CS 445 project			%
%	last modified:	Pansy Au, October 1996				%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	See main-file and sub-file from the webpage for examples 	%
%	of how to divide this file into several files.			%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\documentclass[12pt, titlepage]{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	These packages are needed for including your postscript		%
%	figures in the document, displaying some symbols, and 		%
%	generating the index. 						%
%	Examples of how to specify index entries are given		%
%	throughout the document.  The Requirements entry appears	%
%	in many places.  Notice that make index automatically		%
%	accumulate the page numbers for you.  Some more specific	%
%	examples are given in the Behavioural Requirements section. 	%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{latexsym,makeidx,rotating}
\setlength{\topmargin}{-0.35in}
\makeindex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	This is a command for inserting postscript figures into 	%
%	document.  Use the following command :				%
%	\insertfig{file}{width}{rotation}{label}			%
%		where file is the name of the postcript file		%
%			(without the .ps)				%
%		      width is the desired width of the diagram		%
%			(default is inch, can specify like 5cm)		%
%		      rotation is the angle of rotation in degrees	%
%			(if you print your ps file in landscape,	%
%			 set this to 270)				%
%		      label is the label of your diagram		%
%	An example is given in the Dynamic Requirements section		%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\insertfig}[4] {
   \begin{figure}
   \centerline{\psfig{figure=#1.ps,width=#2,angle=#3}}
   \caption{\label{#1} #4}
   \end{figure}
}

\pagestyle{myheadings}
\renewcommand{\sectionmark}[1]
		{\markright{\thesection. #1 \hfill CS445/ECE451/SE463/CS645 \ }}
\markboth{\ \leftmark \hfill CS445/ECE451/SE463/CS645}
         {CS445/ECE451/SE463/CS645 \hfill \rightmark \ }

\setcounter{secnumdepth}{5}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	Put in the correct title of the document			%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{\Huge \bf CS445/ECE451/SE463/CS645 \\ \ \\
                        Software Requirements Specifications \\
                        for XXX \\ \ \\ \ \\
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	Put in the names and email addresses of 		%
%	all the members in the group. 					%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\author{Name  Email \\ 
        Name  Email \\
	Name  Email \\
	Name  Email \\
}

\begin{document}
\pagenumbering{roman}
\maketitle		% create title page for you


\renewcommand*\contentsname{Table of Contents}
\tableofcontents	% create table of contents for you

\newpage		% use \newpage to start a new page
\listoffigures		% create a list of figures for you

\pagenumbering{arabic}

\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	This is your Introduction section.  Put in the text in the	%
%	appropriate sections. 						%
%	To add another section, use \section{section title}.		%
%	To add a subsection, use \subsection{subsection title}. 	%
%	and so on...							%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
\index{Requirements}


\markboth{\thesection \hfill CS445 \ ECE451 \ SE 463 \ CS645}
         {CS445 \ ECE451 \ SE 463 \ CS645 \hfill \thesection}


	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	%	Some other things you may find useful :		%
	%		bullet items				%
	%	different fonts and sizes			%
	% Other things that you may find useful, i.e. bullet items:  
	% \begin{itemize}
	% \item {\it italic }
	% \item {\bf bold face }
	% \item {\tt typewriter }
	% \item {\large large}
	% \item {\small small}
	% \end{itemize}
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\subsection{Purpose of Software Requirements Specifications}
%Purpose: Describes what the reader needs to know to read the rest of the document – or to decide whether to read the rest of the document.

\subsection{Scope of Product}
%Executive summary of the product requirements 
% - identify the product by name
% - explain what the software will do, what it will not do if necessary
% - describe the problem being solved, the target customer segment, your proposed solutions, the unique value proposition -- information captured in your Lean Canvas model but in text format

\subsection{Definitions, Acronyms, Abbreviations, and Notation Conventions}
% Define terms that the reader needs to know to understand your document
% - Domain-specific terminology        
% - Naming conventions
% - Notational conventions, deviations from standard UML
%        e.g., fonts or colour to denote different model elements

\subsection{References}
% Summary of where you got your information about the requirements for your project (e.g., 
%	stakeholders
% - Pre-existing project documentation
% - Documentation of stakeholder interviews
%		e.g., meeting minutes, videos, email 
% - External info sources
%		e.g., a textbook on telephony, web pages

\subsection{Overview}
% Description of the structure of the rest of the SRS, especially:
% - Organization for section 3
% - Deviations from the standard SRS format


\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	This is the General Description section. It provides an overall description of the proposed 		%
%	system, including general factors that affect the project and its requirements. (In contrast, the 	%
%	next section provides detailed specifications 										%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{General Description}

\subsection{Product Perspective}
% Describe the operational environment of the proposed software.  An *updated* context diagram or use-case diagram, with textual explanations of secondary actors, would work well here.  Plus any *requirements* of the system's interfaces.

\subsection{Product Functions}
% Provide an overview of the system's main features.  A complete list of the *updated* use-case descriptions or user stories (whichever is more comprehensive and matches well with the use-case diagram) would work well here.

\subsection{User Characteristics}
% Provide descriptions of the target user classes and their characteristics 
% - Assumptions about the user, their background, how much training he/she will need
%	e.g., different user interfaces for expert vs. novice users
% Only user characteristics that affect the software requirements need be included

\subsection{Constraints}
% Describe any other items that will limit the developer's options. Not quality requirements, but sources of quality requirements
% In this manner, Sections 2.1 through 2.4 describe *sources* of possible constraints on requirements:
%	2.1 describes existing environment components that might constrain requirements
%	2.2 describes desired functionality
%	2.3 describes users’ backgrounds that might affect usability issues.
%	2.4 You need to consider whether there are any sources of constraints on requirements or design.

\subsection{Assumptions and Dependencies}
% Assumptions and Dependencies that have to hold in order for your system to work correctly.  Such as
%	- Assumptions about input/environmental behaviour
%		- hardware never fails 
%		- ABM casing is impenetrable 
%		- limited number of transactions per day (sufficient paper for receipts) 
%		- limited amount of money withdrawn per day (sufficient money)
%	- Conditions could cause the system to fail
%- Changes to the environment that could lead to changes in the software requirements


\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%	This is the Specific Requirements section, in which elaborated requirements are presented	%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Specific Requirements}
\index{Requirements}

\subsection{External Interface Requirements}
% This section describes the interface requirements for the proposed software. An *updated* Domain Model showing <<interface>> entities, as well as descriptions of the inputs and outputs (i.e., names, properties, constraints on value) 

\subsubsection{User Interface}
% Such as UI sketches

\subsubsection{Hardware Interface}

\subsubsection{Software Interface}

\subsubsection{Communication Interface}


\newpage
\subsection{Behavioural Requirements}
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	%	To specify an index entry, type			%
	%		\index{word}				%
	%	on the place where that word appears, page	%
	%	numbers will be					%
	%	generated automatically. 			%
	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{Requirements}
\index{Behavioural Requirements}
% Behavioural Requirements are the detailed specifications of the system's required behaviour.  This includes the state machine / navigation map of the system, followed by elaborated scenarios

\subsection{Performance Requirements}
\index{Requirements}
% If your system has performance requirements (a type of quality requirement), then they are described here (outstanding, target, and minimal values)

\subsection{Accuracy Requirements}
\index{Requirements}
% If your system has accuracy requirements on its outputs (a type of quality requirement), then they are described here (outstanding, target, and minimal values)

\subsection{Quality Requirements}
\index{Requirements}
% All other quality requirements are described here (outstanding, target, and minimal values)




\newpage

\printindex	% This command will create the index at this place
		% (right before the end of the document)

\end{document}
