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


1.7
date	92.10.28.10.24.43;	author lacey;	state Exp;
branches;
next	1.6;

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

1.5
date	92.10.28.05.23.10;	author marlow;	state Exp;
branches;
next	1.4;

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

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

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

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


desc
@@


1.7
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{Addition Module}

  The database addition module contains procedures which are used for adding
tasks, and task related information to the xplan data base. The program design
language (PDL) is given for each procedure which modifies the data base.  
These procedures will be called by the Graphical User Interface, when the
user is interacting with the text pane to enter and edit tasks, and task
related information. 


% 
% 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 addition functions for the database, are for inserting a new task
into the linked list of tasks at one of several possible positions.
The possible positions are, at the start of the linked list, at the
end of the linked list, before a current task node, or after a current
task node.  The procedures add-task-before and add-task-after are
called with the arguments (task-list, old-task, new-task) , so that
they may determine the proper location in the linked list to add the
tasks.  The procedures add-task-to-beginning and add-task-to-end will
have the arguments (task-list, task).  The procedure
add-task-to-beginning will call the procedure add-task-before to add
the task to the beginning of the linked list of tasks.  The procedure
add-task-to-end will call the procedure add-task-after to add the task
to the end of the linked list of tasks.

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

\begin{verbatim}

PROCEDURE add-task-to-beginning;
  INTERFACE ARGUMENTS list, task;
  INTERFACE RETURNS void;
  CALL add-task-before PROCEDURE WITH ``list, list.head, task'';
END add-task-to-beginning;

PROCEDURE add-task-to-end;
  INTERFACE ARGUMENTS list, task;
  INTERFACE RETURNS void;
  CALL add-task-after PROCEDURE WITH ``list, list.tail, task'';
END add-task-to-end;

PROCEDURE add-task-before;
  INTERFACE ARGUMENTS list, old-task, new-task;
  INTERFACE RETURNS void;
  set list.current = new-task;
  set new-task.next = old-task;
  IF old-task
     THEN set new-task.prev = old-task.prev;
          set old-task.prev = new-task;
     ELSE set list.head = new-task;
          set list.tail = new-task;
          set new-task.prev = NULL;
     ENDIF
END add-task-before;

PROCEDURE add-task-after;
   INTERFACE ARGUMENTS list, old-task, new-task;
   INTERFACE RETURNS void;
   set list.current = new-task;
   set new-task.prev = old-task;
   IF old-task
      THEN set new-task.next = old-task.next;
           set old-task.next = new-task;
      ELSE set list.head = new-task;
           set list.tail = new-task;
           set new-task.next = NULL;
   ENDIF
END add-task-after;

\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}

The data types declaration PDL for the database describes all of the
parameters which are passed between the database functions. The
external parameters passed between the database  module of \xplan\/
and other  modules of \xplan\/ are the following.  All the task
information necessary to create a task, can be input to the database
major module either from the ASCII text file read functions, or from
the Graphical User Interface (GUI) major module, where a user edits
and inputs tasks to the \xplan\/ software from text pane windows in the
GUI. The \xplan\/  modules for the PERT/Gantt chart calculations,
display, and LaTeX and ASCII text file output formats will receive a
pointer to a structure of task information. From that pointer, they
may access all relevant information to a task and the tasks other
information from doubly linked list data structures like resources,
dependencies, dependents, and subtasks.  Basically, task information
goes into the database  module, and the database  module
outputs pointers to nodes in doubly linked lists containing the
desired task information.

%
% 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:] list
\item[Where Used/How Used:] Used in all of the addition procedures to add tasks to 
the correct linked list of task nodes which contain the task information and
pointers for the doubly linked list.
\item[Description (content):] list = * a doubly linked list of task nodes *
\end{description}

\item
\begin{description}
\item[Name:] task
\item[Where Used/How Used:] Used in all of the addition procedures as
a node in the linked list of tasks. A task contains the information
for a task and pointers to other doubly linked lists of relevant
information for that task such as resources, dependencies, dependents,
and subtasks.
\item[Description (Content):] task = * a node in a doubly linked list of tasks *
\end{description}

\item
\begin{description}
\item[Name:] old-task
\item[Where Used/How Used:] An argument to the add-task-after and add-task-before 
procedures to determine where to add a new task in the linked list of task 
nodes. old-task is the position in the doubly linked list where the new task
is added before or after.
\item[Description (Content):] old-task = * a node in a doubly linked list of tasks *
\end{description}

\item
\begin{description}
\item[Name:] new-task
\item[Where Used/How Used:] An argument to the add-task-before and add-task-after 
procedures. new-task is the information for a new task being added to the
doubly linked list of tasks.
\item[Description (Content):] new-task = * a node in a doubly linked list of tasks *
\end{description}
\end{enumerate}












@


1.6
log
@*** empty log message ***
@
text
@d142 5
a146 3
NAME: list
ALIASES: None
WHERE USED/HOW USED: Used in all of the addition procedures to add tasks to 
d149 2
a150 1
DESCRIPTION (CONTENT): list = * a doubly linked list of task nodes *
d152 10
d163 4
a166 12
NAME: task
ALIASES: None
WHERE USED/HOW USED: Used in all of the addition procedures as a node in the 
linked list of tasks. A task contains the information for a task and pointers
to other doubly linked lists of relevant information for that task such as
resources, dependencies, dependents, and subtasks.
DESCRIPTION (CONTENT): task = * a node in a doubly linked list of tasks *


NAME: old-task
ALIASES: None
WHERE USED/HOW USED: An argument to the add-task-after and add-task-before 
d170 2
a171 1
DESCRIPTION (CONTENT): old-task = * a node in a doubly linked list of tasks *
d173 4
a176 3
NAME: new-task
ALIASES: None
WHERE USED/HOW USED: An argument to the add-task-before and add-task-after 
d179 3
a181 1
DESCRIPTION (CONTENT): new-task = * a node in a doubly linked list of tasks *
@


1.5
log
@*** empty log message ***
@
text
@d10 1
a10 1
\subsection{Database Addition Module}
d12 1
a12 1
  The data base addition module contains procedures which are used for adding
d23 1
a23 1
\subsubsection{Database Addition Data Flow Diagram}
d31 1
a31 1
\subsubsection{Database Addition Structure Chart}
d38 1
a38 1
\subsubsection{Database Addition Processing Narrative}
d57 1
a57 1
\subsubsection{Database Addition PDL}
d111 1
a111 1
\subsubsection{Database Addition Internal Interfaces}
d115 2
a116 2
external parameters passed between the database major module of xplan
and other major modules of xplan are the following.  All the task
d120 2
a121 2
and inputs tasks to the xplan software form text pane windows in the
GUI. The xplan major modules for the PERT/Gantt chart calculations,
d127 1
a127 1
goes into the database major module, and the database major module
d140 1
a140 1
\subsubsection{Database Addition Data Dictionary}
d173 9
@


1.4
log
@*** empty log message ***
@
text
@d25 1
a25 1
The reader is refered to the data flow diagrams for the data base as shown
@


1.3
log
@*** empty log message ***
@
text
@d19 1
@


1.2
log
@*** empty log message ***
@
text
@d12 7
d23 3
d31 2
a33 1

d143 4
a146 3
WHERE USED/HOW USED: Used in all of the addition procedures to add tasks to the correct list
DESCRIPTION (CONTENT): A linked list of task nodes, which contain the task information and
 pointers for the linked list.
d148 1
d151 5
a155 3
WHERE USED/HOW USED: Used in all of the addition procedures as a node in the linked list of tasks.
DESCRIPTION (CONTENT): A task contains the information for a task, and pointers to other
linked lists of relevant information for the task such as resources, dependencies, and dependents.
d157 1
d160 5
a164 3
WHERE USED/HOW USED: An argument to the add-task-after and add-task-before procedures to 
determine where to add a new task in the linked list of task nodes.
DESCRIPTION (CONTENT): old-task is the task that the new task is to be added before or after.
d168 5
a172 3
WHERE USED/HOW USED: An argument to the add-task-before and add-task-after procedures.
DESCRIPTION (CONTENT): new-task is the new task whose information is being added to the 
linked list of tasks.
@


1.1
log
@Initial revision
@
text
@d26 1
a26 1
\subsubsection{Data base Addition Processing Narrative}
d28 1
a28 1
The addition functions for the data base, are for inserting a new task
d45 1
a45 1
\subsubsection{Data base Addition PDL}
d101 3
a103 3
The data types declaration PDL for the data base describes all of the
parameters which are passed between the data base functions. The
external parameters passed between the data base major module of xplan
d105 1
a105 1
information necessary to create a task, can be input to the data base
d115 1
a115 1
goes into the data base major module, and the data base major module
d128 1
a128 2
\subsubsection{Data base Addition Data Dictionary}
\begin{verbatim}
a153 1
\end{verbatim}
@
