head	1.1;
access;
symbols;
locks; strict;
comment	@% @;


1.1
date	92.10.17.20.34.18;	author lacey;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR DATABASE SUBSYSTEM
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Database Subsystem}

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR PROCESSING NARRATIVE
%%%
%%% For the preliminary design, make the processing narrative
%%% only textual. In the Detailed design, you will provide a
%%% structural description.
%%%---------------------------------------------------------------------------
\subsubsection{Processing Narrative}

The database subsystem has the purpose of maintaining the task list,
and providing a means of communication between the other subsystems.
It needs to have the ability to add a task to the list, remove a task
from the list, find a task in the list, and modify a task in the list.
In addition, lists that are contained within each task will also need
to be managed.

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR INTERFACE DESCRIPTION
%%%---------------------------------------------------------------------------
\subsubsection{Interface Description}

All of the other subsystems, with exception to the \LaTeX\ generation system,
call the database subsystem directly to either retrieve or deposit some type
of information.  Each subsystem directly calls the module that it needs to
perform the desired processing.  Thus, if a task is to be added to the task
database, the add-task module is called to perform that function.

%%%
%%%	The following section will be filled in during the detailed design
%%%	phase. For now, it is commented out.
%%%
%%%	\subsection{Design Language Description}

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR MODULES USED
%%%
%%% Identify the modules to be used by different modules
%%%---------------------------------------------------------------------------
%%%===========================================================================
\subsubsection{Modules Used}

The database subsystem consists of the following modules:
\begin{itemize}
	\item Add-task module \\
	Adds a task to the task list.
	\item Remove-task module \\
	Removes a task from the task list.
	\item Modify-task module \\
	Modifies specific information about a task in the task list.
	\item Find-task module \\
	Finds a task in the task list given a task name.
\end{itemize}

The modules will be used appropriately depending on what function is to be
performed.

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR DATA ORGANIZATION
%%%
%%% Describe the data structures to be used for the software.
%%% Give their organization.
%%%---------------------------------------------------------------------------
\subsubsection{Data Organization}

The main data structure of the database subsystem is the task list,
which is described in detail in section~\ref{dsreview}.  In short, it
is a linear structure that contains a node for each task in the
database, with each such node containing all the information needed
for a task.

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR COMMENTS
%%%
%%% Create the skeleton for each of the modules by commenting
%%% the purpose of each.
%%%---------------------------------------------------------------------------
\subsubsection{Comments}

Brief comments on what each module does follows.

\begin{itemize}
	\item Add-task module \\
	Given a task node to add to the task list, and a task node to
place it after in the list, the new node is added.  To add to the top
of the list, the dummy node at the beginning of the list is specified
as the one to add after.
	\item Remove-task module \\
	Given a task node to remove from the task list, the list is
modified such that the task specified is no longer retained.
	\item Retrieve-task module \\
	Given the name of a task to find, this module finds the task
in the task list and returns it to the caller.
	\item Modify-task module \\
	Given a task to modify, and the information that should be
modified, this module changes the information in the task database.

\end{itemize}
@
