Skip to content
Snippets Groups Projects
MIS.tex 4.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • \documentclass[12pt, titlepage]{article}
    
    \usepackage{amsmath, mathtools}
    
    \usepackage[round]{natbib}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{graphicx}
    \usepackage{colortbl}
    \usepackage{xr}
    \usepackage{hyperref}
    \usepackage{longtable}
    \usepackage{xfrac}
    \usepackage{tabularx}
    \usepackage{float}
    \usepackage{siunitx}
    \usepackage{booktabs}
    \usepackage{multirow}
    \usepackage[section]{placeins}
    \usepackage{caption}
    \usepackage{fullpage}
    
    \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=blue,      % color of links to bibliography
    filecolor=magenta,  % color of file links
    urlcolor=cyan          % color of external links
    }
    
    \usepackage{array}
    
    \input{../../Comments}
    
    \newcommand{\progname}{Program Name}
    
    \begin{document}
    
    \title{Module Interface Specification for ...}
    
    \author{Author Name}
    
    \date{\today}
    
    \maketitle
    
    \pagenumbering{roman}
    
    \section{Revision History}
    
    \begin{tabularx}{\textwidth}{p{3cm}p{2cm}X}
    \toprule {\bf Date} & {\bf Version} & {\bf Notes}\\
    \midrule
    Date 1 & 1.0 & Notes\\
    Date 2 & 1.1 & Notes\\
    \bottomrule
    \end{tabularx}
    
    ~\newpage
    
    
    \section{Symbols, Abbreviations and Acronyms}
    
    See SRS Documentation at \wss{give url}
    
    \wss{Also add any additional symbols, abbreviations or acronyms}
    
    \newpage
    
    
    \tableofcontents
    
    \newpage
    
    \pagenumbering{arabic}
    
    \section{Introduction}
    
    The following document details the Module Interface Specifications for
    \wss{Fill in your project name and description}
    
    Complementary documents include the System Requirement Specifications
    and Module Guide.  The full documentation and implementation can be
    found at \url{...}.  \wss{provide the url for your repo}
    
    \section{Notation}
    
    \wss{You should describe your notation.  You can use what is below as
      a starting point.}
    
    The structure of the MIS for modules comes from \citet{HoffmanAndStrooper1995},
    with the addition that template modules have been adapted from
    \cite{GhezziEtAl2003}.  The mathematical notation comes from Chapter 3 of
    \citet{HoffmanAndStrooper1995}.  For instance, the symbol := is used for a
    multiple assignment statement and conditional rules follow the form $(c_1
    \Rightarrow r_1 | c_2 \Rightarrow r_2 | ... | c_n \Rightarrow r_n )$.
    
    The following table summarizes the primitive data types used by \progname. 
    
    \begin{center}
    \renewcommand{\arraystretch}{1.2}
    \noindent 
    \begin{tabular}{l l p{7.5cm}} 
    \toprule 
    \textbf{Data Type} & \textbf{Notation} & \textbf{Description}\\ 
    \midrule
    character & char & a single symbol or digit\\
    integer & $\mathbb{Z}$ & a number without a fractional component in (-$\infty$, $\infty$) \\
    natural number & $\mathbb{N}$ & a number without a fractional component in [1, $\infty$) \\
    real & $\mathbb{R}$ & any number in (-$\infty$, $\infty$)\\
    \bottomrule
    \end{tabular} 
    \end{center}
    
    \noindent
    The specification of \progname \ uses some derived data types: sequences, strings, and
    tuples. Sequences are lists filled with elements of the same data type. Strings
    are sequences of characters. Tuples contain a list of values, potentially of
    different types. In addition, \progname \ uses functions, which
    are defined by the data types of their inputs and outputs. Local functions are
    described by giving their type signature followed by their specification.
    
    \section{Module Decomposition}
    
    The following table is taken directly from the Module Guide document for this project.
    
    \begin{table}[h!]
    \centering
    \begin{tabular}{p{0.3\textwidth} p{0.6\textwidth}}
    \toprule
    \textbf{Level 1} & \textbf{Level 2}\\
    \midrule
    
    {Hardware-Hiding} & ~ \\
    \midrule
    
    \multirow{7}{0.3\textwidth}{Behaviour-Hiding} & Input Parameters\\
    & Output Format\\
    & Output Verification\\
    & Temperature ODEs\\
    & Energy Equations\\ 
    & Control Module\\
    & Specification Parameters Module\\
    \midrule
    
    \multirow{3}{0.3\textwidth}{Software Decision} & {Sequence Data Structure}\\
    & ODE Solver\\
    & Plotting\\
    \bottomrule
    
    \end{tabular}
    \caption{Module Hierarchy}
    \label{TblMH}
    \end{table}
    
    \newpage
    ~\newpage
    
    \section{MIS of \wss{Module Name}} \label{Module} \wss{Use labels for cross-referencing}
    
    \subsection{Module}
    
    \wss{Short name for the module}
    
    \subsection{Uses}
    
    
    \subsection{Syntax}
    
    \subsubsection{Exported Access Programs}
    
    \begin{center}
    \begin{tabular}{p{2cm} p{4cm} p{4cm} p{2cm}}
    \hline
    \textbf{Name} & \textbf{In} & \textbf{Out} & \textbf{Exceptions} \\
    \hline
    \wss{accessProg} & - & - & - \\
    \hline
    \end{tabular}
    \end{center}
    
    \subsection{Semantics}
    
    \subsubsection{State Variables}
    
    
    \subsubsection{Access Routine Semantics}
    
    \noindent \wss{accessProg}():
    \begin{itemize}
    \item transition: \wss{if appropriate} 
    \item output: \wss{if appropriate} 
    \item exception: \wss{if appropriate} 
    \end{itemize}
    
    \newpage
    
    \bibliographystyle {plainnat}
    \bibliography {../../../ReferenceMaterial/References}
    
    \newpage
    
    \section{Appendix} \label{Appendix}
    
    \wss{Extra information if required}
    
    \end{document}