diff --git a/BlankProjectTemplate/Doc/SRS/SRS.bib b/BlankProjectTemplate/Doc/SRS/SRS.bib deleted file mode 100644 index 59ee07fbeb2bb8215f6f79cfb4b04bb844cc9956..0000000000000000000000000000000000000000 --- a/BlankProjectTemplate/Doc/SRS/SRS.bib +++ /dev/null @@ -1,30 +0,0 @@ -%% This BibTeX bibliography file was created using BibDesk. -%% http://bibdesk.sourceforge.net/ - -%% Created for Spencer Smith at 2016-09-22 10:01:42 -0400 - - -%% Saved with string encoding Unicode (UTF-8) - - - -@book{RobertsonAndRobertson2012, - Author = {James Robertson and Suzanne Robertson}, - Date-Added = {2016-09-22 13:54:40 +0000}, - Date-Modified = {2016-09-22 14:01:42 +0000}, - Edition = {16}, - Publisher = {Atlantic Systems Guild Limited}, - Title = {Volere Requirements Specification Template}, - Year = {2012}} - -@article{ParnasAndClements1986, - Author = {David L. Parnas and P.C. Clements}, - Date-Added = {2016-09-10 13:11:57 +0000}, - Date-Modified = {2016-09-10 13:11:57 +0000}, - Journal = {IEEE Transactions on Software Engineering}, - Number = {2}, - Pages = {251--257}, - Title = {A Rational Design Process: How and Why to Fake it}, - Volume = {12}, - Year = {February 1986}, - Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QQy4uLy4uLy4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1Bhcm5hc0FuZENsZW1lbnRzMTk4Ni5wZGbSFwsYGVdOUy5kYXRhTxEB9gAAAAAB9gACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAA0khroUgrAAAAhfxhGVBhcm5hc0FuZENsZW1lbnRzMTk4Ni5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACF/LDT7aEvAAAAAAAAAAAABAADAAAJIAAAAAAAAAAAAAAAAAAAABdTY2lDb21wQW5kU29mdEVuZ1BhcGVycwAAEAAIAADSSKPhAAAAEQAIAADT7dlvAAAAAQAUAIX8YQCF7/8AILODAAlg3gAGKpoAAgBcTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFJlcG9zOgBzZTRzYzoAU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnM6AFBhcm5hc0FuZENsZW1lbnRzMTk4Ni5wZGYADgA0ABkAUABhAHIAbgBhAHMAQQBuAGQAQwBsAGUAbQBlAG4AdABzADEAOQA4ADYALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAEpVc2Vycy9zbWl0aHMvUmVwb3Mvc2U0c2MvU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMvUGFybmFzQW5kQ2xlbWVudHMxOTg2LnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOANQA2QDhAtsC3QLiAu0C9gMEAwgDDwMYAx0DKgMtAz8DQgNHAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA0k=}} diff --git a/BlankProjectTemplate/Doc/SRS/SRS.pdf b/BlankProjectTemplate/Doc/SRS/SRS.pdf index 9c14fc718ca445ad71ff57c4a7c97858f58e8e67..081fc5c28660199fb3d1b9d5a25c79d97e2e432e 100644 Binary files a/BlankProjectTemplate/Doc/SRS/SRS.pdf and b/BlankProjectTemplate/Doc/SRS/SRS.pdf differ diff --git a/BlankProjectTemplate/Doc/SRS/SRS.tex b/BlankProjectTemplate/Doc/SRS/SRS.tex index e6c8a5ccbab10f91c1fd1e268474d22e0d7048be..7efbfb7f50ace8ad730cfff79580f9662a076cb3 100644 --- a/BlankProjectTemplate/Doc/SRS/SRS.tex +++ b/BlankProjectTemplate/Doc/SRS/SRS.tex @@ -1,37 +1,91 @@ -\documentclass[12pt, titlepage]{article} - -\usepackage{booktabs} -\usepackage{tabularx} +\documentclass[12pt]{article} + +\usepackage{amsmath, mathtools} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{graphicx} +\usepackage{colortbl} +\usepackage{xr} \usepackage{hyperref} -\hypersetup{ - colorlinks, - citecolor=black, - filecolor=black, - linkcolor=red, - urlcolor=blue -} +\usepackage{longtable} +\usepackage{xfrac} +\usepackage{tabularx} +\usepackage{float} +\usepackage{siunitx} +\usepackage{booktabs} +\usepackage{caption} +\usepackage{pdflscape} +\usepackage{afterpage} + \usepackage[round]{natbib} -\title{SE 3XA3: Software Requirements Specification\\Title of Project} +%\usepackage{refcheck} -\author{Team \#, Team Name - \\ Student 1 name and macid - \\ Student 2 name and macid - \\ Student 3 name and macid +\hypersetup{ + bookmarks=true, % show bookmarks bar? + colorlinks=true, % false: boxed links; true: colored links + linkcolor=red, % color of internal links (change box color with linkbordercolor) + citecolor=green, % color of links to bibliography + filecolor=magenta, % color of file links + urlcolor=cyan % color of external links } -\date{\today} - \input{../Comments} +% For easy change of table widths +\newcommand{\colZwidth}{1.0\textwidth} +\newcommand{\colAwidth}{0.13\textwidth} +\newcommand{\colBwidth}{0.82\textwidth} +\newcommand{\colCwidth}{0.1\textwidth} +\newcommand{\colDwidth}{0.05\textwidth} +\newcommand{\colEwidth}{0.8\textwidth} +\newcommand{\colFwidth}{0.17\textwidth} +\newcommand{\colGwidth}{0.5\textwidth} +\newcommand{\colHwidth}{0.28\textwidth} + +% Used so that cross-references have a meaningful prefix +\newcounter{defnum} %Definition Number +\newcommand{\dthedefnum}{GD\thedefnum} +\newcommand{\dref}[1]{GD\ref{#1}} +\newcounter{datadefnum} %Datadefinition Number +\newcommand{\ddthedatadefnum}{DD\thedatadefnum} +\newcommand{\ddref}[1]{DD\ref{#1}} +\newcounter{theorynum} %Theory Number +\newcommand{\tthetheorynum}{T\thetheorynum} +\newcommand{\tref}[1]{T\ref{#1}} +\newcounter{tablenum} %Table Number +\newcommand{\tbthetablenum}{T\thetablenum} +\newcommand{\tbref}[1]{TB\ref{#1}} +\newcounter{assumpnum} %Assumption Number +\newcommand{\atheassumpnum}{P\theassumpnum} +\newcommand{\aref}[1]{A\ref{#1}} +\newcounter{goalnum} %Goal Number +\newcommand{\gthegoalnum}{P\thegoalnum} +\newcommand{\gsref}[1]{GS\ref{#1}} +\newcounter{instnum} %Instance Number +\newcommand{\itheinstnum}{IM\theinstnum} +\newcommand{\iref}[1]{IM\ref{#1}} +\newcounter{reqnum} %Requirement Number +\newcommand{\rthereqnum}{P\thereqnum} +\newcommand{\rref}[1]{R\ref{#1}} +\newcounter{lcnum} %Likely change number +\newcommand{\lthelcnum}{LC\thelcnum} +\newcommand{\lcref}[1]{LC\ref{#1}} + +\newcommand{\progname}{ProgName} % PUT YOUR PROGRAM NAME HERE + +\usepackage{fullpage} + \begin{document} +\title{Project Title} +\author{Author Name} +\date{\today} + \maketitle \pagenumbering{roman} \tableofcontents -\listoftables -\listoffigures \begin{table}[bp] \caption{\bf Revision History} @@ -44,107 +98,671 @@ Date 2 & 1.1 & Notes\\ \end{tabularx} \end{table} -\newpage +\section{Reference Material} + +This section records information for easy reference. + +\subsection{Table of Units} + +Throughout this document SI (Syst\`{e}me International d'Unit\'{e}s) is employed +as the unit system. In addition to the basic units, several derived units are +used as described below. For each unit, the symbol is given followed by a +description of the unit and the SI name. +~\newline + +\renewcommand{\arraystretch}{1.2} +%\begin{table}[ht] + \noindent \begin{tabular}{l l l} + \toprule + \textbf{symbol} & \textbf{unit} & \textbf{SI}\\ + \midrule + \si{\metre} & length & metre\\ + \si{\kilogram} & mass & kilogram\\ + \si{\second} & time & second\\ + \si{\celsius} & temperature & centigrade\\ + \si{\joule} & energy & Joule\\ + \si{\watt} & power & Watt (W = \si{\joule\per\second})\\ + \bottomrule + \end{tabular} + % \caption{Provide a caption} +%\end{table} + +\wss{Only include the units that your SRS actually uses} + +\subsection{Table of Symbols} + +The table that follows summarizes the symbols used in this document along with +their units. The choice of symbols was made to be consistent with the heat +transfer literature and with existing documentation for solar water heating +systems. The symbols are listed in alphabetical order. + +\renewcommand{\arraystretch}{1.2} +%\noindent \begin{tabularx}{1.0\textwidth}{l l X} +\noindent \begin{longtable*}{l l p{12cm}} \toprule +\textbf{symbol} & \textbf{unit} & \textbf{description}\\ +\midrule +$A_C$ & \si[per-mode=symbol] {\square\metre} & coil surface area +\\ +$A_\text{in}$ & \si[per-mode=symbol] {\square\metre} & surface area over +which heat is transferred in +\\ +\bottomrule +\end{longtable*} +\wss{Use your problems actual symbols. The si package is a good idea to use for + units.} + +\subsection{Abbreviations and Acronyms} + +\renewcommand{\arraystretch}{1.2} +\begin{tabular}{l l} + \toprule + \textbf{symbol} & \textbf{description}\\ + \midrule + A & Assumption\\ + DD & Data Definition\\ + GD & General Definition\\ + GS & Goal Statement\\ + IM & Instance Model\\ + LC & Likely Change\\ + PS & Physical System Description\\ + R & Requirement\\ + SRS & Software Requirements Specification\\ + \progname{} & \wss{put your program name here}\\ + T & Theoretical Model\\ + \bottomrule +\end{tabular}\\ + +\wss{Add any other abbreviations or acronyms that you add} +\newpage \pagenumbering{arabic} -This document describes the requirements for .... The template for the Software -Requirements Specification (SRS) is a subset of the Volere -template~\citep{RobertsonAndRobertson2012}. If you make further modifications -to the template, you should explicity state what modifications were made. +\section{Introduction} -\section{Project Drivers} +\wss{This SRS template is based on \citet{SmithAndLai2005, SmithEtAl2007}. It + will get you started, but you will have to make changes. Any changes to + section headings should be approved by the instructor, since that implies a + deviation from the template. Although the bits shown below do not include + type information, you may need to add this information for your problem.} -\subsection{The Purpose of the Project} +\wss{Feel free to change the appearance of the report by modifying the LaTeX + commands.} -\subsection{The Stakeholders} +\subsection{Purpose of Document} -\subsubsection{The Client} +\subsection{Scope of Requirements} -\subsubsection{The Customers} +\subsection{Characteristics of Intended Reader} -\subsubsection{Other Stakeholders} +\subsection{Organization of Document} -\subsection{Mandated Constraints} +\section{General System Description} -\subsection{Naming Conventions and Terminology} +This section identifies the interfaces between the system and its environment, +describes the user characteristics and lists the system constraints. -\subsection{Relevant Facts and Assumptions} +\subsection{System Context} -User characteristics should go under assumptions. +\wss{Your system context will likely include an explicit list of user and system + responsibilities} -\section{Functional Requirements} +\begin{itemize} +\item User Responsibilities: +\begin{itemize} +\item +\end{itemize} +\item \progname{} Responsibilities: +\begin{itemize} +\item Detect data type mismatch, such as a string of characters instead of a + floating point number +\item +\end{itemize} +\end{itemize} -\subsection{The Scope of the Work and the Product} +\subsection{User Characteristics} \label{SecUserCharacteristics} -\subsubsection{The Context of the Work} +The end user of \progname{} should have an understanding of undergraduate Level +1 Calculus and Physics. -\subsubsection{Work Partitioning} +\subsection{System Constraints} -\subsubsection{Individual Product Use Cases} +\wss{You may not have any system constraints} -\subsection{Functional Requirements} +\section{Specific System Description} + +This section first presents the problem description, which gives a high-level +view of the problem to be solved. This is followed by the solution characteristics +specification, which presents the assumptions, theories, definitions and finally +the instance models. \wss{Add any project specific details that are relevant + for the section overview.} + +\subsection{Problem Description} \label{Sec_pd} -\section{Non-functional Requirements} +\progname{} is \wss{what problem does your program solve?} -\subsection{Look and Feel Requirements} +\subsubsection{Terminology and Definitions} -\subsection{Usability and Humanity Requirements} +This subsection provides a list of terms that are used in the subsequent +sections and their meaning, with the purpose of reducing ambiguity and making it +easier to correctly understand the requirements: -\subsection{Performance Requirements} +\begin{itemize} -\subsection{Operational and Environmental Requirements} +\item -\subsection{Maintainability and Support Requirements} +\end{itemize} -\subsection{Security Requirements} +\subsubsection{Physical System Description} -\subsection{Cultural Requirements} +The physical system of \progname{}, as shown in Figure~?, +includes the following elements: -\subsection{Legal Requirements} +\begin{itemize} -\subsection{Health and Safety Requirements} +\item[PS1:] -This section is not in the original Volere template, but health and safety are -issues that should be considered for every engineering project. +\item[PS2:] ... -\section{Project Issues} +\end{itemize} -\subsection{Open Issues} +\wss{A figure here may make sense for most SRS documents} -\subsection{Off-the-Shelf Solutions} +% \begin{figure}[h!] +% \begin{center} +% %\rotatebox{-90} +% { +% \includegraphics[width=0.5\textwidth]{<FigureName>} +% } +% \caption{\label{<Label>} <Caption>} +% \end{center} +% \end{figure} -\subsection{New Problems} +\subsubsection{Goal Statements} -\subsection{Tasks} +\noindent Given the \wss{inputs}, the goal statements are: -\subsection{Migration to the New Product} +\begin{itemize} -\subsection{Risks} +\item[GS\refstepcounter{goalnum}\thegoalnum \label{G_meaningfulLabel}:] \wss{One + sentence description of the goal. There may be more than one. Each Goal + should have a meaningful label.} -\subsection{Costs} +\end{itemize} -\subsection{User Documentation and Training} +\subsection{Solution Characteristics Specification} + +The instance models that govern \progname{} are presented in +Subsection~\ref{sec_instance}. The information to understand the meaning of the +instance models and their derivation is also presented, so that the instance +models can be verified. + +\subsubsection{Assumptions} + +This section simplifies the original problem and helps in developing the +theoretical model by filling in the missing information for the physical +system. The numbers given in the square brackets refer to the theoretical model +[T], general definition [GD], data definition [DD], instance model [IM], or +likely change [LC], in which the respective assumption is used. + +\begin{itemize} + +\item[A\refstepcounter{assumpnum}\theassumpnum \label{A_meaningfulLabel}:] + \wss{Short description of each assumption. Each assumption + should have a meaningful label. Use cross-references to identify the + appropriate traceability to T, GD, DD etc., using commands like dref, ddref etc.} + +\end{itemize} + +\subsubsection{Theoretical Models}\label{sec_theoretical} + +This section focuses on the general equations and laws that \progname{} is based +on. \wss{Modify the examples below for your problem, and add additional models + as appropriate.} + +~\newline + +\noindent +\begin{minipage}{\textwidth} +\renewcommand*{\arraystretch}{1.5} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} + \hline + \rowcolor[gray]{0.9} + Number& T\refstepcounter{theorynum}\thetheorynum \label{T_COE}\\ + \hline + Label&\bf Conservation of thermal energy\\ + \hline + Equation& $-{\bf \nabla \cdot q} + g$ = $\rho C \frac{\partial T}{\partial t}$\\ + \hline + Description & + The above equation gives the conservation of energy for transient heat transfer in a material + of specific heat capacity $C$ (\si{\joule\per\kilogram\per\celsius}) and density $\rho$ + (\si{\kilogram\per\cubic\metre}), where $\bf q$ is the thermal flux vector (\si{\watt\per\square\metre}), + $g$ is the volumetric heat generation + (\si{\watt\per\cubic\metre}), $T$ is the temperature + (\si{\celsius}), $t$ is time (\si{\second}), and $\nabla$ is + the gradient operator. For this equation to apply, other forms + of energy, such as mechanical energy, are assumed to be negligible in the + system (\aref{A_OnlyThermalEnergy}). In general, the material properties ($\rho$ and $C$) depend on temperature.\\ + \hline + Source & + \url{http://www.efunda.com/formulae/heat_transfer/conduction/overview_cond.cfm}\\ + % The above web link should be replaced with a proper citation to a publication + \hline + Ref.\ By & \dref{ROCT}\\ + \hline +\end{tabular} +\end{minipage}\\ + +~\newline + +\subsubsection{General Definitions}\label{sec_gendef} + +This section collects the laws and equations that will be used in deriving the +data definitions, which in turn are used to build the instance models. +\wss{Some projects may not have any content for this section, but the section + heading should be kept.} \wss{Modify the examples below for your problem, and + add additional definitions as appropriate.} + +~\newline + +\noindent +\begin{minipage}{\textwidth} +\renewcommand*{\arraystretch}{1.5} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Number& GD\refstepcounter{defnum}\thedefnum \label{NL}\\ +\hline +Label &\bf Newton's law of cooling \\ +\hline +% Units&$MLt^{-3}T^0$\\ +% \hline +SI Units&\si{\watt\per\square\metre}\\ +\hline +Equation&$ q(t) = h \Delta T(t)$ \\ +\hline +Description & +Newton's law of cooling describes convective cooling from a surface. The law is +stated as: the rate of heat loss from a body is proportional to the difference +in temperatures between the body and its surroundings. +\\ +& $q(t)$ is the thermal flux (\si{\watt\per\square\metre}).\\ +& $h$ is the heat transfer coefficient, assumed independent of $T$ (\aref{A_hcoeff}) + (\si{\watt\per\square\metre\per\celsius}).\\ +&$\Delta T(t)$= $T(t) - T_{\text{env}}(t)$ is the time-dependent thermal gradient +between the environment and the object (\si{\celsius}). +\\ +\hline + Source &~\cite[p.\ 8]{Incropera2007}\\ + \hline + Ref.\ By & \ddref{FluxCoil}, \ddref{FluxPCM}\\ + \hline +\end{tabular} +\end{minipage}\\ + +\subsubsection*{Detailed derivation of simplified rate of change of temperature} + +\wss{This may be necessary when the necessary information does not fit in the + description field.} + +\subsubsection{Data Definitions}\label{sec_datadef} + +This section collects and defines all the data needed to build the instance +models. The dimension of each quantity is also given. \wss{Modify the examples + below for your problem, and add additional definitions as appropriate.} + +~\newline + +\noindent +\begin{minipage}{\textwidth} +\renewcommand*{\arraystretch}{1.5} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} +\hline +\rowcolor[gray]{0.9} +Number& DD\refstepcounter{datadefnum}\thedatadefnum \label{FluxCoil}\\ +\hline +Label& \bf Heat flux out of coil\\ +\hline +Symbol &$q_C$\\ +\hline +% Units& $Mt^{-3}$\\ +% \hline + SI Units & \si{\watt\per\square\metre}\\ + \hline + Equation&$q_C(t) = h_C (T_C - T_W(t))$, over area $A_C$\\ + \hline + Description & + $T_C$ is the temperature of the coil (\si{\celsius}). $T_W$ is the temperature of the water (\si{\celsius}). + The heat flux out of the coil, $q_C$ (\si{\watt\per\square\metre}), is found by + assuming that Newton's Law + of Cooling applies (\aref{A_Newt_coil}). This law (\dref{NL}) is used on the surface of + the coil, which has area $A_C$ (\si{\square\metre}) and heat + transfer coefficient $h_C$ + (\si{\watt\per\square\metre\per\celsius}). This equation + assumes that the temperature of the coil is constant over time (\aref{A_tcoil}) and that it does not vary along the length + of the coil (\aref{A_tlcoil}). + \\ + \hline + Sources&~\cite{Lightstone2012} \\ + \hline + Ref.\ By & \iref{ewat}\\ + \hline +\end{tabular} +\end{minipage}\\ + +\subsubsection{Instance Models} \label{sec_instance} + +This section transforms the problem defined in Section~\ref{Sec_pd} into +one which is expressed in mathematical terms. It uses concrete symbols defined +in Section~\ref{sec_datadef} to replace the abstract symbols in the models +identified in Sections~\ref{sec_theoretical} and~\ref{sec_gendef}. + +The goals \wss{reference your goals} are solved by \wss{reference your instance + models}. \wss{other details, with cross-references where appropriate.} +\wss{Modify the examples below for your problem, and add additional models as + appropriate.} + +~\newline + +%Instance Model 1 + +\noindent +\begin{minipage}{\textwidth} +\renewcommand*{\arraystretch}{1.5} +\begin{tabular}{| p{\colAwidth} | p{\colBwidth}|} + \hline + \rowcolor[gray]{0.9} + Number& IM\refstepcounter{instnum}\theinstnum \label{ewat}\\ + \hline + Label& \bf Energy balance on water to find $T_W$\\ + \hline + Input&$m_W$, $C_W$, $h_C$, $A_C$, $h_P$, $A_P$, $t_\text{final}$, $T_C$, + $T_\text{init}$, $T_P(t)$ from \iref{epcm}\\ + & The input is constrained so that $T_\text{init} \leq T_C$ (\aref{A_charge})\\ + \hline + Output&$T_W(t)$, $0\leq t \leq t_\text{final}$, such that\\ + &$\frac{dT_W}{dt} = \frac{1}{\tau_W}[(T_C - T_W(t)) + {\eta}(T_P(t) - T_W(t))]$,\\ + &$T_W(0) = T_P(0) = T_\text{init}$ (\aref{A_InitTemp}) and $T_P(t)$ from \iref{epcm} \\ + \hline + Description&$T_W$ is the water temperature (\si{\celsius}).\\ + &$T_P$ is the PCM temperature (\si{\celsius}).\\ + &$T_C$ is the coil temperature (\si{\celsius}).\\ + &$\tau_W = \frac{m_W C_W}{h_C A_C}$ is a constant (\si{\second}).\\ + &$\eta = \frac{h_P A_P}{h_C A_C}$ is a constant (dimensionless).\\ + & The above equation applies as long as the water is in liquid form, + $0<T_W<100^o\text{C}$, where $0^o\text{C}$ and $100^o\text{C}$ are the melting + and boiling points of water, respectively (\aref{A_OpRange}, \aref{A_Pressure}). + \\ + \hline + Sources&~\cite{Lightstone2012} \ \\ + \hline + Ref.\ By & \iref{epcm}\\ + \hline +\end{tabular} +\end{minipage}\\ + +%~\newline + +\subsubsection*{Derivation of ...} + +\wss{May be necessary to include this subsection in some cases.} + +\subsubsection{Data Constraints} \label{sec_DataConstraints} + +Tables~\ref{TblInputVar} and \ref{TblOutputVar} show the data constraints on the +input and output variables, respectively. The column for physical constraints gives +the physical limitations on the range of values that can be taken by the +variable. The column for software constraints restricts the range of inputs to +reasonable values. The constraints are conservative, to give the user of the +model the flexibility to experiment with unusual situations. The column of +typical values is intended to provide a feel for a common scenario. The +uncertainty column provides an estimate of the confidence with which the +physical quantities can be measured. This information would be part of the +input if one were performing an uncertainty quantification exercise. + +The specification parameters in Table~\ref{TblInputVar} are listed in +Table~\ref{TblSpecParams}. + +\begin{table}[!h] + \caption{Input Variables} \label{TblInputVar} + \renewcommand{\arraystretch}{1.2} +\noindent \begin{longtable*}{l l l l c} + \toprule + \textbf{Var} & \textbf{Physical Constraints} & \textbf{Software Constraints} & + \textbf{Typical Value} & \textbf{Uncertainty}\\ + \midrule + $L$ & $L > 0$ & $L_{\text{min}} \leq L \leq L_{\text{max}}$ & 1.5 \si[per-mode=symbol] {\metre} & 10\% + \\ + \bottomrule +\end{longtable*} +\end{table} + +\noindent +\begin{description} +\item[(*)] \wss{you might need to add some notes or clarifications} +\end{description} + +\begin{table}[!h] +\caption{Specification Parameter Values} \label{TblSpecParams} +\renewcommand{\arraystretch}{1.2} +\noindent \begin{longtable*}{l l} + \toprule + \textbf{Var} & \textbf{Value} \\ + \midrule + $L_\text{min}$ & 0.1 \si{\metre}\\ + \bottomrule +\end{longtable*} +\end{table} + +\begin{table}[!h] +\caption{Output Variables} \label{TblOutputVar} +\renewcommand{\arraystretch}{1.2} +\noindent \begin{longtable*}{l l} + \toprule + \textbf{Var} & \textbf{Physical Constraints} \\ + \midrule + $T_W$ & $T_\text{init} \leq T_W \leq T_C$ (by~\aref{A_charge}) + \\ + \bottomrule +\end{longtable*} +\end{table} -\subsection{Waiting Room} +\subsubsection{Properties of a Correct Solution} \label{sec_CorrectSolution} -\subsection{Ideas for Solutions} +\noindent +A correct solution must exhibit \wss{fill in the details} -\bibliographystyle{plainnat} +\section{Requirements} -\bibliography{SRS} +This section provides the functional requirements, the business tasks that the +software is expected to complete, and the nonfunctional requirements, the +qualities that the software is expected to exhibit. + +\subsection{Functional Requirements} + +\noindent \begin{itemize} + +\item[R\refstepcounter{reqnum}\thereqnum \label{R_Inputs}:] \wss{Requirements + for the inputs that are supplied by the user. This information has to be + explicit.} + +\item[R\refstepcounter{reqnum}\thereqnum \label{R_OutputInputs}:] \wss{It isn't + always required, but often echoing the inputs as part of the output is a + good idea.} + +\item[R\refstepcounter{reqnum}\thereqnum \label{R_Calculate}:] \wss{Calculation + related requirements.} + +\item[R\refstepcounter{reqnum}\thereqnum \label{R_VerifyOutput}:] + \wss{Verification related requirements.} + +\item[R\refstepcounter{reqnum}\thereqnum \label{R_Output}:] \wss{Output related + requirements.} + +\end{itemize} + +\subsection{Nonfunctional Requirements} + +\wss{List your nonfunctional requirements. You may consider using a fit + criterion to make them verifiable.} + +\section{Likely Changes} + +\noindent \begin{itemize} + +\item[LC\refstepcounter{lcnum}\thelcnum\label{LC_meaningfulLabel}:] \wss{Give + the likely changes, with a reference to the related assumption (aref), as appropriate.} + +\end{itemize} + +\section{Traceability Matrices and Graphs} + +The purpose of the traceability matrices is to provide easy references on what +has to be additionally modified if a certain component is changed. Every time a +component is changed, the items in the column of that component that are marked +with an ``X'' may have to be modified as well. Table~\ref{Table:trace} shows the +dependencies of theoretical models, general definitions, data definitions, and +instance models with each other. Table~\ref{Table:R_trace} shows the +dependencies of instance models, requirements, and data constraints on each +other. Table~\ref{Table:A_trace} shows the dependencies of theoretical models, +general definitions, data definitions, instance models, and likely changes on +the assumptions. + +\wss{You will have to modify these tables for your problem.} + +\afterpage{ +\begin{landscape} +\begin{table}[h!] +\centering +\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} +\hline + & \aref{A_OnlyThermalEnergy}& \aref{A_hcoeff}& \aref{A_mixed}& \aref{A_tpcm}& \aref{A_const_density}& \aref{A_const_C}& \aref{A_Newt_coil}& \aref{A_tcoil}& \aref{A_tlcoil}& \aref{A_Newt_pcm}& \aref{A_charge}& \aref{A_InitTemp}& \aref{A_OpRangePCM}& \aref{A_OpRange}& \aref{A_htank}& \aref{A_int_heat}& \aref{A_vpcm}& \aref{A_PCM_state}& \aref{A_Pressure} \\ +\hline +\tref{T_COE} & X& & & & & & & & & & & & & & & & & & \\ \hline +\tref{T_SHE} & & & & & & & & & & & & & & & & & & & \\ \hline +\tref{T_LHE} & & & & & & & & & & & & & & & & & & & \\ \hline +\dref{NL} & & X& & & & & & & & & & & & & & & & & \\ \hline +\dref{ROCT} & & & X& X& X& X& & & & & & & & & & & & & \\ \hline +\ddref{FluxCoil} & & & & & & & X& X& X& & & & & & & & & & \\ \hline +\ddref{FluxPCM} & & & X& X& & & & & & X& & & & & & & & & \\ \hline +\ddref{D_HOF} & & & & & & & & & & & & & & & & & & & \\ \hline +\ddref{D_MF} & & & & & & & & & & & & & & & & & & & \\ \hline +\iref{ewat} & & & & & & & & & & & X& X& & X& X& X& & & X \\ \hline +\iref{epcm} & & & & & & & & & & & & X& X& & & X& X& X& \\ \hline +\iref{I_HWAT} & & & & & & & & & & & & & & X& & & & & X \\ \hline +\iref{I_HPCM} & & & & & & & & & & & & & X& & & & & X & \\ \hline +\lcref{LC_tpcm} & & & & X& & & & & & & & & & & & & & & \\ \hline +\lcref{LC_tcoil} & & & & & & & & X& & & & & & & & & & & \\ \hline +\lcref{LC_tlcoil} & & & & & & & & & X& & & & & & & & & & \\ \hline +\lcref{LC_charge} & & & & & & & & & & & X& & & & & & & & \\ \hline +\lcref{LC_InitTemp} & & & & & & & & & & & & X& & & & & & & \\ \hline +\lcref{LC_htank} & & & & & & & & & & & & & & & X& & & & \\ +\hline +\end{tabular} +\caption{Traceability Matrix Showing the Connections Between Assumptions and Other Items} +\label{Table:A_trace} +\end{table} +\end{landscape} +} + +\begin{table}[h!] +\centering +\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} +\hline + & \tref{T_COE}& \tref{T_SHE}& \tref{T_LHE}& \dref{NL}& \dref{ROCT} & \ddref{FluxCoil}& \ddref{FluxPCM} & \ddref{D_HOF}& \ddref{D_MF}& \iref{ewat}& \iref{epcm}& \iref{I_HWAT}& \iref{I_HPCM} \\ +\hline +\tref{T_COE} & & & & & & & & & & & & & \\ \hline +\tref{T_SHE} & & & X& & & & & & & & & & \\ \hline +\tref{T_LHE} & & & & & & & & & & & & & \\ \hline +\dref{NL} & & & & & & & & & & & & & \\ \hline +\dref{ROCT} & X& & & & & & & & & & & & \\ \hline +\ddref{FluxCoil} & & & & X& & & & & & & & & \\ \hline +\ddref{FluxPCM} & & & & X& & & & & & & & & \\ \hline +\ddref{D_HOF} & & & & & & & & & & & & & \\ \hline +\ddref{D_MF} & & & & & & & & X& & & & & \\ \hline +\iref{ewat} & & & & & X& X& X& & & & X& & \\ \hline +\iref{epcm} & & & & & X& & X& & X& X& & & X \\ \hline +\iref{I_HWAT} & & X& & & & & & & & & & & \\ \hline +\iref{I_HPCM} & & X& X& & & & X& X& X& & X& & \\ +\hline +\end{tabular} +\caption{Traceability Matrix Showing the Connections Between Items of Different Sections} +\label{Table:trace} +\end{table} + +\begin{table}[h!] +\centering +\begin{tabular}{|c|c|c|c|c|c|c|c|} +\hline + & \iref{ewat}& \iref{epcm}& \iref{I_HWAT}& \iref{I_HPCM}& \ref{sec_DataConstraints}& \rref{R_RawInputs}& \rref{R_MassInputs} \\ +\hline +\iref{ewat} & & X& & & & X& X \\ \hline +\iref{epcm} & X& & & X& & X& X \\ \hline +\iref{I_HWAT} & & & & & & X& X \\ \hline +\iref{I_HPCM} & & X& & & & X& X \\ \hline +\rref{R_RawInputs} & & & & & & & \\ \hline +\rref{R_MassInputs} & & & & & & X& \\ \hline +\rref{R_CheckInputs} & & & & & X& & \\ \hline +\rref{R_OutputInputs} & X& X& & & & X& X \\ \hline +\rref{R_TempWater} & X& & & & & & \\ \hline +\rref{R_TempPCM} & & X& & & & & \\ \hline +\rref{R_EnergyWater} & & & X& & & & \\ \hline +\rref{R_EnergyPCM} & & & & X& & & \\ \hline +\rref{R_VerifyOutput} & & & X& X& & & \\ \hline +\rref{R_timeMeltBegin} & & X& & & & & \\ \hline +\rref{R_timeMeltEnd} & & X& & & & & \\ +\hline +\end{tabular} +\caption{Traceability Matrix Showing the Connections Between Requirements and Instance Models} +\label{Table:R_trace} +\end{table} + +The purpose of the traceability graphs is also to provide easy references on +what has to be additionally modified if a certain component is changed. The +arrows in the graphs represent dependencies. The component at the tail of an +arrow is depended on by the component at the head of that arrow. Therefore, if a +component is changed, the components that it points to should also be +changed. Figure~\ref{Fig_ATrace} shows the dependencies of theoretical models, +general definitions, data definitions, instance models, likely changes, and +assumptions on each other. Figure~\ref{Fig_RTrace} shows the dependencies of +instance models, requirements, and data constraints on each other. + +% \begin{figure}[h!] +% \begin{center} +% %\rotatebox{-90} +% { +% \includegraphics[width=\textwidth]{ATrace.png} +% } +% \caption{\label{Fig_ATrace} Traceability Matrix Showing the Connections Between Items of Different Sections} +% \end{center} +% \end{figure} + + +% \begin{figure}[h!] +% \begin{center} +% %\rotatebox{-90} +% { +% \includegraphics[width=0.7\textwidth]{RTrace.png} +% } +% \caption{\label{Fig_RTrace} Traceability Matrix Showing the Connections Between Requirements, Instance Models, and Data Constraints} +% \end{center} +% \end{figure} + +\newpage + +\bibliographystyle {plainnat} +\bibliography {../../ReferenceMaterial/References} \newpage \section{Appendix} -This section has been added to the Volere template. This is where you can place -additional information. +\wss{Your report may require an appendix. For instance, this is a good point to +show the values of the symbolic parameters introduced in the report.} \subsection{Symbolic Parameters} -The definition of the requirements will likely call for SYMBOLIC\_CONSTANTS. -Their values are defined in this section for easy maintenance. - +\wss{The definition of the requirements will likely call for SYMBOLIC\_CONSTANTS. +Their values are defined in this section for easy maintenance.} \end{document} \ No newline at end of file diff --git a/BlankProjectTemplate/ReferenceMaterial/References.bib b/BlankProjectTemplate/ReferenceMaterial/References.bib new file mode 100644 index 0000000000000000000000000000000000000000..6bb1127eafc0cbb587ebe7411cfd67e49aa4c81a --- /dev/null +++ b/BlankProjectTemplate/ReferenceMaterial/References.bib @@ -0,0 +1,60 @@ +%% This BibTeX bibliography file was created using BibDesk. +%% http://bibdesk.sourceforge.net/ + + +%% Created for Spencer Smith at 2017-09-14 11:47:28 -0400 + + +%% Saved with string encoding Unicode (UTF-8) + + + +@article{SmithEtAl2007, + Author = {W. Spencer Smith and Lei Lai and Ridha Khedri}, + Date-Added = {2017-09-14 15:47:22 +0000}, + Date-Modified = {2017-09-14 15:47:22 +0000}, + Journal = {Reliable Computing, Special Issue on Reliable Engineering Computation}, + Local-Url = {/Users/smiths/Work/Research/Papers/ReliableComputing/SmithLaiAndKhedri2007fulltext.pdf}, + Month = {February}, + Number = {1}, + Pages = {83--107}, + Title = {Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Software Reliability}, + Volume = {13}, + Year = {2007}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QSy4uLy4uLy4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1NtaXRoTGFpQW5kS2hlZHJpMjAwN2Z1bGx0ZXh0LnBkZtIXCxgZV05TLmRhdGFPEQIUAAAAAAIUAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAkx/Q0fU21pdGhMYWlBbmRLaGVkcmkyMCM5MzFGRDYwLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTH9YNNvBNMAAAAAAAAAAAAEAAMAAAkgAAAAAAAAAAAAAAAAAAAAF1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzAAAQAAgAAM6Xq8MAAAARAAgAANNvPRMAAAABABQJMf0NCTHuxwASFacACPdmAAJkjgACAGJNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAUmVwb3M6AHNlNHNjOgBTY2lDb21wQW5kU29mdEVuZ1BhcGVyczoAU21pdGhMYWlBbmRLaGVkcmkyMCM5MzFGRDYwLnBkZgAOAEQAIQBTAG0AaQB0AGgATABhAGkAQQBuAGQASwBoAGUAZAByAGkAMgAwADAANwBmAHUAbABsAHQAZQB4AHQALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAFJVc2Vycy9zbWl0aHMvUmVwb3Mvc2U0c2MvU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMvU21pdGhMYWlBbmRLaGVkcmkyMDA3ZnVsbHRleHQucGRmABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4A3ADhAOkDAQMDAwgDEwMcAyoDLgM1Az4DQwNQA1MDZQNoA20AAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADbw==}, + Bdsk-File-2 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QVy4uLy4uLy4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUGFwZXJzL1JlbGlhYmxlQ29tcHV0aW5nL1NtaXRoTGFpQW5kS2hlZHJpMjAwN2Z1bGx0ZXh0LnBkZtIXCxgZV05TLmRhdGFPEQIaAAAAAAIaAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAADOl3ODSCsAAAAXC24fU21pdGhMYWlBbmRLaGVkcmkyMDAjMTc4ODYzLnBkZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeIY88i4TNQREYgQ0FSTwAFAAUAAAkgAAAAAAAAAAAAAAAAAAAAEVJlbGlhYmxlQ29tcHV0aW5nAAAQAAgAAM6Xq8MAAAARAAgAAM8jJ4MAAAABABgAFwtuABcCCwAXAE0AFv3tAAj3ZgACZI4AAgBmTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFdvcms6AFJlc2VhcmNoOgBQYXBlcnM6AFJlbGlhYmxlQ29tcHV0aW5nOgBTbWl0aExhaUFuZEtoZWRyaTIwMCMxNzg4NjMucGRmAA4ARAAhAFMAbQBpAHQAaABMAGEAaQBBAG4AZABLAGgAZQBkAHIAaQAyADAAMAA3AGYAdQBsAGwAdABlAHgAdAAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAVVVzZXJzL3NtaXRocy9Xb3JrL1Jlc2VhcmNoL1BhcGVycy9SZWxpYWJsZUNvbXB1dGluZy9TbWl0aExhaUFuZEtoZWRyaTIwMDdmdWxsdGV4dC5wZGYAABMAAS8AABUAAgAN//8AAIAG0hscHR5aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox0fIFZOU0RhdGFYTlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiBfEA9OU0tleWVkQXJjaGl2ZXLRJidUcm9vdIABAAgAEQAaACMALQAyADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwCEAI4A6ADtAPUDEwMVAxoDJQMuAzwDQANHA1ADVQNiA2UDdwN6A38AAAAAAAACAQAAAAAAAAAoAAAAAAAAAAAAAAAAAAADgQ==}} + +@inproceedings{SmithAndLai2005, + Address = {Paris, France}, + Author = {W. Spencer Smith and Lei Lai}, + Booktitle = {Proceedings of the First International Workshop on Situational Requirements Engineering Processes -- Methods, Techniques and Tools to Support Situation-Specific Requirements Engineering Processes, SREP'05}, + Date-Added = {2017-09-14 15:47:18 +0000}, + Date-Modified = {2017-09-14 15:47:18 +0000}, + Editor = {J. Ralyt\'{e} and P. \.{A}gerfalk and N. Kraiem}, + Local-Url = {file://localhost/Users/smiths/Work/Research/Papers/SREP05/SREP05_ReformatAndRevise/SmithAndLai_2005.pdf}, + Organization = {In conjunction with 13th IEEE International Requirements Engineering Conference}, + Pages = {107--121}, + Title = {A New Requirements Template for Scientific Computing}, + Year = {2005}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QWC4uLy4uLy4uLy4uLy4uL1dvcmsvUmVzZWFyY2gvUGFwZXJzL1NSRVAwNS9TUkVQMDVfUmVmb3JtYXRBbmRSZXZpc2UvU21pdGhBbmRMYWlfMjAwNS5wZGbSFwsYGVdOUy5kYXRhTxECDgAAAAACDgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAAF0DvFFNtaXRoQW5kTGFpXzIwMDUucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXntPPIuJUAAAAAAAAAAAABQAGAAAJIAAAAAAAAAAAAAAAAAAAABhTUkVQMDVfUmVmb3JtYXRBbmRSZXZpc2UAEAAIAADOl6vDAAAAEQAIAADPIyikAAAAAQAcABdA7wAXC3oAFwILABcATQAW/e0ACPdmAAJkjgACAGpNYWNpbnRvc2ggSEQ6VXNlcnM6AHNtaXRoczoAV29yazoAUmVzZWFyY2g6AFBhcGVyczoAU1JFUDA1OgBTUkVQMDVfUmVmb3JtYXRBbmRSZXZpc2U6AFNtaXRoQW5kTGFpXzIwMDUucGRmAA4AKgAUAFMAbQBpAHQAaABBAG4AZABMAGEAaQBfADIAMAAwADUALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAFZVc2Vycy9zbWl0aHMvV29yay9SZXNlYXJjaC9QYXBlcnMvU1JFUDA1L1NSRVAwNV9SZWZvcm1hdEFuZFJldmlzZS9TbWl0aEFuZExhaV8yMDA1LnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAOkA7gD2AwgDCgMPAxoDIwMxAzUDPANFA0oDVwNaA2wDbwN0AAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA3Y=}} + +@book{RobertsonAndRobertson2012, + Author = {James Robertson and Suzanne Robertson}, + Date-Added = {2016-09-22 13:54:40 +0000}, + Date-Modified = {2016-09-22 14:01:42 +0000}, + Edition = {16}, + Publisher = {Atlantic Systems Guild Limited}, + Title = {Volere Requirements Specification Template}, + Year = {2012}} + +@article{ParnasAndClements1986, + Author = {David L. Parnas and P.C. Clements}, + Date-Added = {2016-09-10 13:11:57 +0000}, + Date-Modified = {2016-09-10 13:11:57 +0000}, + Journal = {IEEE Transactions on Software Engineering}, + Number = {2}, + Pages = {251--257}, + Title = {A Rational Design Process: How and Why to Fake it}, + Volume = {12}, + Year = {February 1986}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QQy4uLy4uLy4uLy4uL3NlNHNjL1NjaUNvbXBBbmRTb2Z0RW5nUGFwZXJzL1Bhcm5hc0FuZENsZW1lbnRzMTk4Ni5wZGbSFwsYGVdOUy5kYXRhTxEB9gAAAAAB9gACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAzpdzg0grAAAJMf0NGVBhcm5hc0FuZENsZW1lbnRzMTk4Ni5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkx/UPTbwTTAAAAAAAAAAAABAADAAAJIAAAAAAAAAAAAAAAAAAAABdTY2lDb21wQW5kU29mdEVuZ1BhcGVycwAAEAAIAADOl6vDAAAAEQAIAADTbz0TAAAAAQAUCTH9DQkx7scAEhWnAAj3ZgACZI4AAgBcTWFjaW50b3NoIEhEOlVzZXJzOgBzbWl0aHM6AFJlcG9zOgBzZTRzYzoAU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnM6AFBhcm5hc0FuZENsZW1lbnRzMTk4Ni5wZGYADgA0ABkAUABhAHIAbgBhAHMAQQBuAGQAQwBsAGUAbQBlAG4AdABzADEAOQA4ADYALgBwAGQAZgAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASAEpVc2Vycy9zbWl0aHMvUmVwb3Mvc2U0c2MvU2NpQ29tcEFuZFNvZnRFbmdQYXBlcnMvUGFybmFzQW5kQ2xlbWVudHMxOTg2LnBkZgATAAEvAAAVAAIADf//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOANQA2QDhAtsC3QLiAu0C9gMEAwgDDwMYAx0DKgMtAz8DQgNHAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAA0k=}}