-\section{Requirements Specification}
+\section{Functional Specification}
%*******************************************************************************
\subsection{Data input processing}
The tape data shall be checked against the Honeywell tape block specification
found in \cite{ser16:progref:bformats}.
-\rd{chk001}{Block completeness check}{
- Every data block's completeness shall be checked by the means of
+\rd{chk001}{Block integrity check}{
+ Every data block's integrity shall be checked by the means of
detecting unexpected end of file while reading in the block.
}
}
%*******************************************************************************
+\subsection{Additional features}
+
+\rd{h001}{Print help message}{
+ A help message is output to standard error.
+}
+
+%*******************************************************************************
+\newpage
\subsection{Data analysis}
\rd{da001}{List tape contents}{
}
%*******************************************************************************
+\newpage
\subsection{Data processing}
\rd{dp001}{Split into object files}{
a zero-padded three digit number and EOT blocks are not suppressed.
}
-%*******************************************************************************
-\subsection{Additional features}
-
-\rd{h001}{Print help message}{
- A help message shall be output to standard error.
-}
-
%*******************************************************************************
+\newpage
\subsection{Program configuration}
\rd{cfg001}{Configuration process}{
- The following sequence shall be used to acquire the working configuration:
+ The following sequence shall be used to acquire the working
+ configuration:
\begin{enumerate}
\item Configuration file according to environment variable:\\
If the environment variable LDC\_CONFIG is set, that
file is found,
the specified configuration file is parsed.\\
Any values in this configuration file
- override values found in the previously read configuration
- file.
+ override values found in the previously read
+ configuration file.
\item Configuration parameters passed via the command line:\\
Parameters passed on the command line will override
values from previously read configuration files.
The program shall accept two types of parameters:
\begin{itemize}
\item Switches:\\
- A switch is a binary value which can have the value true or false.
+ A switch is a binary value which can have the value true or
+ false.
\item Strings:\\
A string parameter is a parameter requiring a string value.\\
A typical use would be a file name for input or output.
\end{itemize}
}
+\newpage
\rd{cfg003}{Switch parameters}{
The following switch parameters shall be accepted:
\begin{table}[H]\begin{center}
- \begin{tabular}{|r|p{2.5em}|l|}
+ \begin{tabular}{|r|p{2.5em}|p{23em}|}
\hline
\bf Long Form & \bf Short form & \bf Description\\
\hline
help & h & Show help message (\req{h001})\\
- output\_info & a & Output data info according to \req{da005}.\\
- output\_called & c & Output a list of called symbols (\req{dp003}).\\
- output\_exported & e & Output a list of exported symbols (\req{dp002}).\\
- output\_unsatisfied & u & Output a list of unsatisfied dependencies (\req{dp004}).\\
- split\_objects & s & Split into object files (\req{dp006}.\\
- split\_objects\_numbered & S & Split into numbered object files (\req{dp007}).\\
- ignore\_block\_errors & b & Ignore block integrity errors (\req{err001}).\\
- ignore\_checksum\_errors & k & Ignore Checksum errors (\req{err001}).\\
- pause\_on\_checksum\_error & p & Wait for user input on checksum error (\req{err003}).\\
- ignore\_unknown\_block\_errors & n & Ignore errors causes by datablocks of
- unknown type (\req{err001}).\\
- ignore\_object\_integrity\_errors & g & Ignore errors caused by objects without
- proper end block (\req{err001}.)\\
+ output\_info & a & Output data info (\req{da005}) .\\
+ output\_called & c & Output a list of called symbols
+ (\req{da003}).\\
+ output\_exported & e & Output a list of exported symbols
+ (\req{da002}).\\
+ output\_unsatisfied & u & Output a list of unsatisfied
+ dependencies (\req{da004}).\\
+ split\_objects & s & Split into object files
+ (\req{dp001}).\\
+ split\_objects\_numbered & S & Split into numbered object files
+ (\req{dp002}).\\
+ ignore\_block\_errors & b & Ignore block integrity errors
+ (\req{err001},\req{chk001}).\\
+ ignore\_checksum\_errors & k & Ignore Checksum errors
+ (\req{err001}\req{chk002}).\\
+ pause\_on\_checksum\_error & p & Wait for user input on checksum error
+ (\req{chk005}).\\
+ ignore\_unknown\_block\_errors & n & Ignore errors causes by
+ datablocks of unknown type
+ (\req{err001}\req{chk003}).\\
+ ignore\_object\_integrity\_errors & g & Ignore errors caused by objects
+ without proper end block
+ (\req{err001}\req{chk004}).\\
\hline
\end{tabular}\end{center}
\caption{Configuration switches}
\hline
\bf Long Form & \bf Short form & \bf Description\\
\hline
- in\_file & i & Set input file (\req{inp001}) \\
- out\_file & o & Set output file for text output.(\req{dp008})\\
+ in\_file & i & Set input file (\req{inp001}). \\
+ out\_file & o & Set output file for text output(\req{dp008}).\\
\hline
\end{tabular}\end{center}
\caption{Configuration strings}
\end{table}
}
-
+\newpage
\rd{cfg005}{Configuration file syntax}{
The configuration file must comply two the following grammar, given in EBNF:
}
String = { ? Every character except newline ?} ;
TrueStr = "yes" | "1" | "true" ;
FalseStr = | "no" | "0" | "false" ;
- \end{verbatim};
+ \end{verbatim}
-\rd{cfg006}{Commandline syntax}{
+\rd{cfg006}{Command Line syntax}{
The command line must comply to the following grammar, given in EBNF:
}
\begin{verbatim}
LongSwitch = "--" SwLong [ "=" BoolValue ] ;
ShortParam = "-" StrShort String ;
LongParam = "--" StrLong "=" String ;
- SwShort = "a" | "c" | "e" | "u" | "s" | "S"
+ SwShort = "h" | "a" | "c" | "e" | "u" | "s" | "S"
| "b" | "k" | "p" | "n" | "g" ;
- SwLong = "output_info" | "ouput_called" | "output_exported"
+ SwLong = "help"
+ | "output_info" | "ouput_called" | "output_exported"
| "output_unsatisfied" | "split_objects" [ _"numbered" ]
- | "ignore_block_errors" | "ignore_checksum_errors
+ | "ignore_block_errors" | "ignore_checksum_errors"
| "pause_on_checksum_error"
| "ignore_unknown_block_errors"
| "ignore_object_integrity" ;
- StrShort = "o";
+ StrShort = "o" ;
StrLong = "out_file" ;
\end{verbatim}
+\newpage
\rd{cfg007}{Configuration implications}{
\begin{itemize}
\item pause\_on\_checksum\_errors implies ignore\_checksum\_errors.
}
%*******************************************************************************
+\newpage
\subsection{Error handling}
Caused by failed check according to \req{chk004}.\\
\esup
\item Usage error:\\
- Error caused by errors in the program configuration i.e.wrong
+ Error caused by errors in the program configuration i.e. wrong
parameters or impossible combinations of parameters.\\
\enosup \\
Additionally, the help (\req{h001}) message is output.
Checksum error & Block checksum wrong!\\
Unknown block type & Unknown block type!\\
Object integrity & Object integrity check failed!\\
- Usage error & $<$Error message describing the problem$>$\\
+ Usage error & $<$Specific message describing the problem$>$\\
\hline
\end{tabular}
\end{center}