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


1.4
date	92.10.28.02.10.05;	author lacey;	state Exp;
branches;
next	1.3;

1.3
date	92.10.27.01.06.22;	author lacey;	state Exp;
branches;
next	1.2;

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

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


desc
@@


1.4
log
@Moved portions of the scope over to the overview
@
text
@%
% In this section provide an essential view of the system.
% It should be very high level and may include portions of the
% preliminary design.
%
\section{System Overview}

The tool will include a GUI built using the Sun OpenWindows
Developer's Guide.  Using Guide restricts the platforms that the tool will
run on to Unix\footnote{Unix is a trademark of AT\&T Bell Labs.}
machines running the X Windows system and having the XView libraries.
Since X Windows and the XView libraries are both distributed
freely\footnote{A nominal distribution fee is charged if the libraries
are distributed on tape.}, and free implementations of Unix exist
(386BSD, linux) which are powerful enough to run X Windows, the
restrictions are minimal.

At the heart of the graphical user interface is the \pscreen\/ (see
Figure~\ref{project-screen} on page~\pageref{project-screen}) which
contains a scrollable list of tasks, along with pull-down menus that
perform functions such as file loading and saving, PERT and Gantt
chart display, date calculations, and \LaTeX\ file generation.  By
double-clicking on a task in the task list, the user will be able to
bring up the \tiscreen\/ for that task.  The user can then modify
information about the task, and save the changes into the task
database.  These two screens are used throughout the process of
building a task list, which can then later be displayed graphically as
a PERT or Gantt chart.

\begin{figure}
\centering
\centerline{\psfig{figure=project-screen.ps,height=3in}}
\caption[Project Screen]{\label{project-screen} The \pscreen\/
with example task list.}
\end{figure}

The \tiscreen\/ (see Figure~\ref{task-info-screen} on
page~\pageref{task-info-screen}) is the means by which the user enters
and views specific information about each task that is a part of the
project they are planning.  That information includes task name; task
description; task duration; planned, actual, forecast, earliest, and
latest start and end dates; float time; resource list; sub-task list;
dependency list; and flags that indicate if completion of this task
is a milestone, and if completion of this task yields a deliverable.
Some items, like the earliest and latest start and end dates, cannot
be modified by the user, but are rather filled in by selecting the
{\em Date Calculation}\/ item in the {\em Analyze}\/ menu of the
\pscreen.  The resource, sub-task, and dependency lists are accessed
by selecting the appropriate button on the \tiscreen.  Once the user
is satisfied with the information entered for the task, he/she can
select the {\em Apply}\/ button to save the information for the given
task into the task database.  If at any point before selecting {\em
Apply}\/ the user decides he/she would like to revert to what was
previously stored in the database, the {\em Reset}\/ option can be
chosen.

\begin{figure}
\centering
\centerline{\psfig{figure=task-info-screen.ps,height=4in}}
\caption[Task Information Screen]{\label{task-info-screen} The
\tiscreen\/ with detailed task information.}
\end{figure}

The \pcscreen\/ is for the graphical display of PERT charts which
correspond to the task list created by the user.  The chart is
generated automatically based upon the tasks and their dependency
lists.  Each box on the chart will be the same size, and will contain
the task name, planned start date and end date for the task, task
number, and task duration.  Task dependency will be indicated by the
tool placing the tasks that have to be completed first on the left end of
the chart and placing tasks that can be completed next to the right of
that task and connecting them with a line.  If the task is part of the
critical path, then the line from that task to the next task on the
critical path will be drawn thicker than other lines, to give a good
graphical representation of its importance.  By double-clicking on a
task box, the user will cause the \tiscreen\/ to be displayed with the
details of that task.

The \gcscreen\/ is for the graphical display of Gantt charts, which
like the PERT charts will be generated based on the information in the
task list created by the user.  The user will have the ability to
select a task from the Gantt chart which will cause the \tiscreen\/ to
be displayed with information on that task.

In addition to those main screens, a \flsscreen\/ along with an
\poscreen\/ are provided so that the user can control the destination
of the project file when saved, and the destination of the \LaTeX\
output that the program produces.

The \flsscreen\/ includes a field with the path to the current
directory displayed in it, along with a list of files in the current
directory, and a field in which the user can enter a directory that
they would like to move to or the name of a file they would like to
load.

The \poscreen\/ contains fields for the user to enter directory and
file names for the generated \LaTeX\ code to be stored in.  Direct
printing of the \LaTeX\ files from within the application will not be
provided since the main purpose of using a \LaTeX\ format for the
output is to allow a user to incorporate generated task sheets, along
with PERT and Gantt charts, into his/her own document for later
printing.  If the user chooses to print the generated files directly
rather than incorporating them into another document, the normal {\tt
latex}, {\tt dvips}, and {\tt lpr} commands can be used from a command
shell.

@


1.3
log
@*** empty log message ***
@
text
@d8 98
@


1.2
log
@Lifted the design description from the preliminary design.
@
text
@a7 147
%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR DATA DESCRIPTION
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Data Description}

The data managed by \xplan\/ is primarily made up of task information
for a project.  A list of tasks is maintained, and each task in turn
can have a list of sub-tasks that make up the task.  The information
stored for each task includes: task name; task description; task
duration; planned, actual, forecast, earliest, and latest start and
end dates; float time; resource list; sub-task list; dependency list;
and flags which indicate if completion of this task is a milestone,
and if completion of this task yields a deliverable.

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR REVIEW OF DATA FLOW
%%%
%%% The following subsection describe the data flow and
%%% structure from refined DFD and decomposition of tasks
%%%---------------------------------------------------------------------------
\subsubsection{Review of Data Flow}

Referring to Figures \ref{l0dfd} and \ref{l1dfd}, it can be seen that
the database subsystem is at the heart of the project planning tool.
All information that is stored or retrieved goes through the database
subsystem.  Data flows from the user and from files into the database.
From the database comes structured task information that can be used
in displaying PERT and Gantt charts on the screen, or dumping them out
to a \LaTeX\ file.

\begin{figure}
\centering
\centerline{\psfig{figure=l0dfd.ps,height=3in}}
\caption[Level 0 Data Flow Diagram]{Level 0 data flow diagram of system}
\label{l0dfd}
\end{figure}

\begin{figure}
\centering
\centerline{\psfig{figure=l1dfd.ps,height=5in}}
\caption[Level 1 Data Flow Diagram]{Level 1 data flow diagram of system}
\label{l1dfd}
\end{figure}

%%%---------------------------------------------------------------------------
%%% SUBSUBSECTION FOR REVIEW OF DATA STRUCTURE
%%%---------------------------------------------------------------------------
\subsubsection{Review of Data Structure}
\label{dsreview}

The main data structure that the tool uses is a task list.  The task
list is a linear structure of linked task nodes.  Each task node has
the corresponding information for a single task.  Included in that
information is a dependency list.  The dependency list is a list of
tasks that the current task depends on.  Looking at it from another
perspective, the task list could be seen as an adjacency list, with
each task node having a list of tasks off of it that it depends on.
Adjacency lists are often used in place of matrices for storing graph
information, since they can store information for a sparse graph in a
much more compact fashion.

The tasks in the task list are in the order that the user places them.
The user will have the ability to add tasks at the beginning and end
of the list, along with inserting a new task at any point within the
list.

%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR DERIVED PROGRAM STRUCTURE
%%
%% Given the tasks and subtasks identified in Requirements
%% document, identify program structure (modules).
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Derived Program Structure}

The program structure will ultimately start out with the files
generated by the Sun OpenWindows Developer's Guide user interface
tool, along with those files generated by {\em flex\footnote{The
program {\tt flex} is a derivative of {\tt lex}, and is used to
generate lexical analyzers.}}\/ and {\em bison\footnote{The program
{\tt bison} is a derivative of {\tt yacc}, and is used to generate
parsers.}}.  Most of the user interface code will be contained within
the files generated by Guide.  Various Xlib functions will be needed
to implement graphical display of PERT and Gantt charts.

The heart of the project planning tool, the database subsystem, is the
next module.  This module is a logical entity of its own with the
expressed purpose of managing the database.  All database access will
have to be done through the use of calls to the database module.
Functions will be created to add, retrieve, delete, modify, and search
for information within the database.

The calculations module will consist of a set of functions used in
finding the critical path, calculating the earliest and latest start
and end dates for a task, and checking dependency information for
dependency loops.  The calculations module will also need functions
that calculate the placement of information on the PERT and Gantt
charts generated by the system.

The file read/write module consists of a set of functions related to
storing information from the internal database to a file, or
retrieving information from a file and storing it into the internal
database.

The \LaTeX\ generation module will use the information generated by
the calculations module to generate \LaTeX\ commands corresponding to
the type of output the user asked for (task sheet, PERT chart, or
Gantt chart).  The \LaTeX\ module itself, however, is responsible for
breaking the output into separate pages.

%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR INTERFACES WITHIN STRUCTURE
%%
%% How do the modules fit together?
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Interfaces Within Structure}

This section will explain the integration and how each major module
will be integrated with one another. First the user interface will
only have write access to the database using the store functions of
the database. The user interface will be able to receive information
from the database and the calculations modules only. The information
received from the database consist of the task information from the
database to the screen, depending on what screen the user is on. The
information received from the calculations will consist of a formatted
structure that will contain information for the viewing of the Gantt
and PERT charts. The file read/write will only access information from
the database and will put information to the file. The calculations
section will receive data from the database to do its calculations and
output data to either the database (calculation of begin, end dates),
the user interface (formatted data for the PERT and Gantt charts for
the screen), or the \LaTeX\ generator (formatted data for the
generation of a \LaTeX\ file that will produce PERT and Gantt charts).
Lastly, the database will be accessed when the user types some
information on the screen (Information is stored to the database), the
database is updating the screen, the database is called by the
calculations, the calculations update the database, the read file is
called by the read function which is called by the database function
to read the information from the file, and the database calls the
write function to write the information stored within the database to
the file.

@


1.1
log
@Initial revision
@
text
@d7 149
@
