Index: /trunk/doc/pslib/psLibSRS.tex
===================================================================
--- /trunk/doc/pslib/psLibSRS.tex	(revision 352)
+++ /trunk/doc/pslib/psLibSRS.tex	(revision 352)
@@ -0,0 +1,250 @@
+%%% $Id: psLibSRS.tex,v 1.1 2004-04-01 07:31:03 eugene Exp $
+\documentclass[panstarrs]{panstarrs}
+
+% basic document variables
+\title{Pan-STARRS Image Processing Pipeline}
+\subtitle{Software Requirements Specification}
+\author{Eugene Magnier}
+\shorttitle{IPP SRS}
+\group{Pan-STARRS Algorithm Group}
+\project{Pan-STARRS Image Processing Pipeline}
+\organization{Institute for Astronomy}
+\version{DR}
+\docnumber{PSDC-430-005}
+
+\begin{document}
+\maketitle
+
+% -- Revision History --
+% provide explicit values for the old versions
+% use '\theversion' for the current version (set above)
+\RevisionsStart
+% version     Date         Description
+01          & 2003.01.01 & First draft \\
+\hline
+\theversion & 2003.03.10 & Second draft \\
+\RevisionsEnd
+
+\listoffigures
+\pagebreak 
+
+\tableofcontents
+\pagebreak
+\pagenumbering{arabic}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Scope} 
+
+\subsection{Identification}
+
+This document establishes the system requirements for the Pan-STARRS
+Image Processing Pipeline (IPP).
+
+\subsection{System Overview}
+
+\subsection{Document Overview}
+
+The Pan-STARRS document naming scheme is PSDC-NNN-MMM-VV, where the VV
+entry specifies the document version number.  Where documents are
+identified without the version number, the latest official version in
+that series is implied.  
+
+Open Issues and TBDs in this document are marked \tbd{in bold, red
+with surrounding square brackets}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\DocumentsInternal
+PSCD-430-xxx  &   PS-1 Design Reference Mission \\ \hline
+PSCD-430-004  &   Pan-STARRS IPP C Code Conventions \\ \hline
+PSCD-430-006  &   Pan-STARRS IPP ADD \\ \hline
+PSCD-430-007  &   Pan-STARRS IPP PSLib SDR \\ \hline
+\DocumentsExternal
+Posix Standard & Open Group Based Specifications Issue 6, IEEE Std 1003.1, 2003 \\
+\DocumentsEnd
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Requirements} 
+
+\subsection{Required States and Modes}
+
+\tbd{deferred}
+
+\subsection{System Capability Requirements}
+
+\subsubsection{Software Coding Requirements}
+
+\subsubsubsection{CSCI Deliverable}
+
+All final source code generated for the IPP is to be delivered via
+CVS, including the test code.  CVS revision history shall be included
+and made available via CVS.
+
+\subsubsubsection{Languages}
+
+Source code shall be in C.  All source code shall be compiled with
+`gcc' version v2.95 or higher.
+
+Scripting language shall be in \tbd{Python, version TBD}. 
+
+\subsubsubsection{Interfaces}
+
+Access to low-level Library functions shall be provided via C APIs
+consisting of the function calls and the defined data structures and
+other data types.  Access to high-level functions shall be provided
+via C APIs as well as SWIG interfaces, where specified.  Access to
+processing jobs shall be available via the UNIX shell.
+
+\subsubsubsection{Coding Standards} 
+
+The C code shall comply with ANSI Standard C99.  Because the delivered
+code is required to run on UNIX machines, the delivered code shall be
+in compliance with the language-independent UNIX operating system
+standard POSIX (Open Group Based Specifications Issue 6, IEEE Std
+1003.1, 2003).  Source code files shall use the UNIX line-break
+convention (line-feed only).  C coding style shall adhere to the
+standard defined in the document 'Pan-STARRS C-coding standard'
+(PSDC-430-004).  \tbd{Python coding shall follow the Python standard
+defined in the document TBD}.
+
+\subsubsubsection{Commenting and Documentation}
+
+Commenting of delivered C and Python code shall follow the C and
+Python coding standards and shall provide tags for Doxygen
+interpretation of the comments and program structures.
+
+Documentation for the IPP consists of source code documentation and
+user documentation.  Source code documentation shall be generated with
+Doxygen from the in-line comments and shall be provided as HTML,
+Latex, and man pages.  User documentation includes the API usage for
+the modules and library functions as well as user interface
+description for the higher-level architectural systems.  User
+documentation shall be delivered as PDF documents.
+
+\subsubsubsection{Version Control}
+
+Source code version control shall be implemented with CVS.  
+
+\subsubsubsection{Platform architectures and operating systems}
+
+Makefiles shall be provided with appropriate flags set so that all
+code compiles without warnings under 'gcc -Wall' for the following
+platform architectures and operating systems:
+
+\begin{itemize}
+\item x86/Linux
+\item PPC/OS-X
+\end{itemize}
+
+The requirement of compiling without warnings includes the allowance
+that the output may be filtered to exclude known, specified warnings,
+such as those caused by lex-generated code.  
+
+Although the code must compile successfully under all three listed
+operating systems, unit testing should only be performed for the
+x86/Linux combination.
+
+\subsubsubsection{Software Configuration}
+
+\tbd{deferred}
+
+\subsubsection{Architectural Components}
+
+\tbd{deferred}
+
+\subsubsection{Analysis Stages}
+
+\tbd{deferred}
+
+\subsubsection{Modules}
+
+\tbd{deferred}
+
+\subsubsection{Pan-STARRS IPP Library}
+
+In order to facilitate testing and development, and to encourage
+flexibility, the IPP will be built in a layered fashion.  The lowest
+level functions will be written in C and collected together into a
+Pan-STARRS library, \code{PSLib}.  
+
+The Pan-STARRS Data Library will consist of C structures describing
+the basic data types needed by the IPP and C functions which perform
+the basic data manipulation operations.  The library is organized into
+four topics: System Utilities, Basic Data Collections, Data
+Manipulation, and Astronomy-Specific Functions.
+
+The required functionality of the Pan-STARRS Data Library is specified
+by the document `Pan-STARRS Image Processing Pipeline Library,
+Supplementary Design Requirements' (PSDC-430-007), and details of
+specified algorithms are specified in the document `Pan-STARRS Image
+Processing Pipeline Algorithm Design Document' (the ADD;
+PSDC-430-006).
+
+\subsubsection{Data Sources and Formats}
+
+\tbd{deferred}
+
+\subsection{External Interfaces}
+
+\tbd{deferred}
+
+\subsection{Internal Interfaces}
+
+\tbd{deferred}
+
+\subsection{Internal Data Requirements}
+
+\tbd{deferred}
+
+\section{Computer Hardware}
+
+\tbd{deferred}
+
+\section{Test Verification}
+
+A testing regime shall be implemented to demonstrate the working state
+of the provided software.  Certain tests as specified shall be
+performed by MHPCC, with code release contingent on success.  Other
+specified tests will be performed by IfA to verify the validity of the
+implemented algorithms.  The tests include: software configuration
+tests, software integrity tests, basic unit tests, and detailed
+functional analysis.
+
+\subsection{Software Configuration Tests}
+
+MHPCC shall test the validity of the software configuration,
+specifically to check that the code can be compiled on the specified
+platforms and that the compilation produces no errors or warnings,
+except as noted and allowed.
+
+\subsection{Software Integrity Tests}
+
+MHPCC shall test the integrity of the software, specifically to check
+that the code does not produce memory leaks, segmentation faults.
+
+\subsection{Basic Unit Tests}
+
+MHPCC shall perform basic unit tests with sample input data and known
+output results, including invalid input data to test error handling.
+These tests should exercise the complete range of module options.
+
+\subsection{Detailed Functional Analysis}
+
+IfA shall perform detailed tests with a wide range of input data and
+compare the results with existing software system.
+
+\subsection{Test Verification Matrix}
+
+\subsubsection{Pan-STARRS IPP Library}
+
+See Appendix A \& B of the IPP Library SDR (PSDC-430-007) for the test
+verification matricies for the Pan-STARRS IPP Library 
+
+\section{Appendices}
+
+\bibliographystyle{plain}
+\bibliography{panstarrs}
+\end{document}
+
