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


1.6
date	92.10.28.10.38.45;	author marlow;	state Exp;
branches;
next	1.5;

1.5
date	92.10.28.10.20.03;	author lacey;	state Exp;
branches;
next	1.4;

1.4
date	92.10.28.05.25.47;	author marlow;	state Exp;
branches;
next	1.3;

1.3
date	92.10.28.05.22.18;	author marlow;	state Exp;
branches;
next	1.2;

1.2
date	92.10.28.03.49.57;	author lacey;	state Exp;
branches;
next	1.1;

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


desc
@@


1.6
log
@*** empty log message ***
@
text
@%*****************************************************************************
% Remember, you need to be as detailed as possible in the description
% of the modules in order to facilitate the coding task. Do not leave any 
% room for ambiguity.
%*****************************************************************************
%
% For each module and major submodule complete the following
% section and subsections
%
\subsection{Database Find Module}
   The database find module contains procedures which are used to search for
a particular task in the xplan data base of PERT/Gantt chart tasks.  xplan's 
Calculations major module and the users interaction with xplan's Graphical User
Interface (GUI) will call the find procedures to search for a particular task.

% 
% Include a data flow diagram for this module
%
\subsubsection{Data Flow Diagram}
   The PDL is small enough to fully describe the functions of this module.
The reader is referred to the data flow diagrams for the data base as shown
in the Requirements Specification Document.

%
% Include a Structure Chart for this module
%
\subsubsection{Structure Chart}
  The PDL is small enough to fully describe the functions of this module.
The module procedures are to small to need a structure chart to describe them.


%
% Include a processing narrative for this module
%
\subsubsection{Processing Narrative}

The procedures get-main-task-list, find-task, list-current, list-next,
and string-hash-search are used for searching the xplan data base for
task information. The xplan data base is a doubly linked list whose
task nodes are a single task. The task nodes have pointers to the
previous, and next node, and to a structure containing the task
information.  Other doubly linked lists are maintained to represent a
tasks resources, dependencies, dependents, and subtasks.  A hash table
of resources will be maintained to allow quick searching of resources.
The reason for that is to save storage, since it will be assumed that
the user of xplan will have many commonly used resources among
different tasks.  Thus, the hash table is used to save memory space.
The hash table will be made from a commonly used hashing method
implemented with linked lists such as the double hashing technique.

%
% Include a PDL pseudocode description for this module
%
\subsubsection{PDL}
\begin{verbatim}

PROCEDURE get-main-task-list;
   INTERFACE ARGUMENTS ;
   INTERFACE RETURNS main-task-list;
   return main-task-list;
END get-main-task-list;

PROCEDURE find-task;
   INTERFACE ARGUMENTS list, name;
   INTERFACE RETURNS a pointer to task-node;
   set list.current = list.head;
   DO WHILE list.current;
      IF list.current.data.name = name
         THEN return list.current;
      ENDIF
      set list.current = list.current.next;
   ENDDO
END find-task;

PROCEDURE list-current;
   INTERFACE ARGUMENTS list;
   INTERFACE RETURNS a pointer to task-node;
   return list.current;
END list-current;
 
PROCEDURE list-next;
   INTERFACE ARGUMENTS list;
   INTERFACE RETURNS a pointer to task-node;
   IF list.current
      THEN set list.current = list.current.next;
   ENDIF
   return list.current;
END list-next;

\end{verbatim}
%
% Include a description of the interfaces for this module.
% This should include a list of data elements passed between
% modules.  The data elements described here should either be
% described in the next subsection or in the relevant owner's
% data dictionary
%
\subsubsection{Internal Interfaces}

   See the Data base Addition Module for this information.  It is the same.

%
% Include a data dictionary for this module.  The format should be:
%  
% Name: (this is the name of the data item)
% Aliases: (this is a list of aliases, if any)
% Where Used/ How Used: (this is a paired list of where the item is
%     used and how it is used
% Description: (this is a demarco description of the data item)
%
\subsubsection{Data Dictionary}

\begin{enumerate}
\item
\begin{description}
\item[Name:] main-task-list
\item[Where used/how used:] Procedure get-main-task-list.
A pointer to the start of the doubly linked list
representing the main task list.  The main task list is the tasks that
the user inputs to xplan to calculate the critical path for.
\item[Description (content):] * a pointer to a task node in the doubly linked
list of tasks to calculate critical path for *
\end{description}

\item
\begin{description}
\item[Name:] list
\item[Where used/how used:] Procedure find-task, list-current, list-next.
A doubly linked list of tasks in which a task is searched for.
\item[Description (content):] * a pointer to a task node in a double linked list of
tasks *
\end{description}
\end{enumerate}





@


1.5
log
@*** empty log message ***
@
text
@d10 2
a11 2
\subsection{Data base Find Module}
   The data base find module contains procedures which are used to search for
d19 1
a19 1
\subsubsection{Data base Find Data Flow Diagram}
d27 1
a27 1
\subsubsection{Data base Find Structure Chart}
d35 1
a35 1
\subsubsection{Data base Find Processing Narrative}
d54 1
a54 1
\subsubsection{Data base Find PDL}
d98 1
a98 1
\subsubsection{Data base Find Internal Interfaces}
d111 1
a111 1
\subsubsection{Data base Find Data Dictionary}
@


1.4
log
@*** empty log message ***
@
text
@d113 5
a117 3
NAME: main-task-list
ALIASES: None
WHERE USED/HOW USED: Procedure get-main-task-list.
d121 1
a121 1
DESCRIPTION (CONTENT): * a pointer to a task node in the doubly linked
d123 6
a128 3
NAME: list
ALIASES: None
WHERE USED/HOW USED: Procedure find-task, list-current, list-next.
d130 1
a130 1
DESCRIPTION (CONTENT): * a pointer to a task node in a double linked list of
d132 2
@


1.3
log
@*** empty log message ***
@
text
@d21 1
a21 1
The reader is refered to the data flow diagrams for the data base as shown
@


1.2
log
@*** empty log message ***
@
text
@d11 5
d20 4
d28 4
d116 1
a116 1
DESCRIPTION (CONTENT): A pointer to the start of the doubly linked list
d119 2
a120 1

d124 3
a126 1
DESCRIPTION (CONTENT): A doubly linked list of tasks in which a task is searched for.
@


1.1
log
@Initial revision
@
text
@a10 2
\begin{verbatim}
\end{verbatim}
a14 2
\begin{verbatim}
\end{verbatim}
a18 2
\begin{verbatim}
\end{verbatim}
a22 11
\begin{verbatim}
   The procedures get_main_task_list, find_task, list_current, list_next, and string_hash_search
are used for searching the xplan data base for task information. The xplan data base is a 
doubly linked list whose task nodes are a single task. The task nodes have pointers to the
previous, and next node, and to a structure containing the task information.  Other doubly linked
lists are maintained to represent a tasks resources, dependencies, dependents, and subtasks.
A hash table of resources will be maintained to allow quick searching of resources.  The reason
for that is to save storage, since it will be assumed that the user of xplan will have many
commonly used resources among different tasks.  Thus, the hash table is used to save memory space.
The hash table will be made from a commonly used hashing method implemented with linked lists
such as the double hashing technique.
d24 14
a37 1
\end{verbatim}
d44 1
a44 1
PROCEDURE get_main_task_list;
d46 3
a48 3
   INTERFACE RETURNS main_task_list;
   return main_task_list;
END get_main_task_list;
d50 1
a50 1
PROCEDURE find_task;
d52 1
a52 1
   INTERFACE RETURNS a pointer to task_node;
d60 1
a60 1
END find_task;
d62 1
a62 1
PROCEDURE list_current;
d64 1
a64 1
   INTERFACE RETURNS a pointer to task_node;
d66 1
a66 1
END list_current;
d68 1
a68 1
PROCEDURE list_next;
d70 1
a70 1
   INTERFACE RETURNS a pointer to task_node;
d75 1
a75 1
END list_next;
d86 1
a86 1
\begin{verbatim}
d88 1
a88 1
\end{verbatim}
a98 1
\begin{verbatim}
d100 1
a100 1
NAME: main_task_list
d102 1
a102 1
WHERE USED/HOW USED: Procedure get_main_task_list.
d109 1
a109 1
WHERE USED/HOW USED: Procedure find_task, list_current, list_next.
a111 1
\end{verbatim}
@
