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


1.8
date	92.10.28.09.37.48;	author lacey;	state Exp;
branches;
next	1.7;

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

1.6
date	92.10.28.02.45.21;	author lacey;	state Exp;
branches;
next	1.5;

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

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

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

1.2
date	92.10.25.20.33.16;	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.8
log
@*** empty log message ***
@
text
@% 
% Much of the information from the system specification described in the
% requirements document and other software definition documents will
% be used here.   
% Specific references to supporting documents are made in the next
% major section
%
\section{Scope}

This document serves as the detailed design of our project planning
tool, \xplan. The purpose of \xplan\/ is to facilitate the planning of
projects by providing storage and retrieval of information related to
tasks that are a part of the project being planned.  Project
scheduling information can be stored to a file, thereby saving it for later
retrieval.  The tool will allow one project file to be loaded and
manipulated at a given time.  Project planning is further facilitated
by the automatic generation of both PERT and Gantt charts based on the
task dependency information in the task database.  The charts can be
viewed via the graphical user interface (GUI) of \xplan, or can be
exported to a text file in \LaTeX\ {\tt picture} environment format.
Direct generation of \LaTeX\ representations of the task information
(in the form of a task sheet), along with both PERT and Gantt charts,
provides the user with an easy mechanism for incorporating the output
of the tool into project planning documents.

%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR INTERFACES
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Hardware, Software, and Human Interfaces}
\label{interfaces}

Our project planning tool requires the use of a 3-button mouse and a
graphical display.  The display can be either black-and-white, or
color.  No explicit software interface is present (i.e.\ no other
programs are executed by the tool), but some form of the X Windows
system is assumed to be present on the machine that the tool is
executing on.  The tool is interactive, and a user is required at all
stages during the operation of the tool.

%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR EXTERNALLY DEFINED DATABASE
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Externally Defined Database}

The project planning tool has no permanent externally defined database
that is needed for its operation.  It operates only on its own project
files, which are in a very specific project file format.  This file
format is discussed in detail in \cite{prelimin-design}.

%%===========================================================================
%%---------------------------------------------------------------------------
%% SUBSECTION FOR MAJOR DESIGN CONSTRAINTS AND LIMITATIONS
%%---------------------------------------------------------------------------
%%===========================================================================
\subsection{Major Design Constraints and Limitations}

One limitation of our tool is that only one project database can
be open at a time.  This limitation is not a major drawback since
under a windowing environment such as the one \xplan\/ runs on,
multiple versions of the tool could be loaded and running at a given
time.  

Due to the fact that there are inherent limitations on the
size of a drawing space in X Windows, our software will have to
enforce a limit on the number of tasks that can be displayed on a
single PERT or Gantt chart.  The limitation will mean there can be at
most 300 tasks ``in a row'' horizontally on a PERT chart, and at most
200 tasks ``in a column'' vertically.  In other words, given the size
of the PERT boxes, and the maximum size for a drawing space, we will
be limited in the number of boxes we can place in each direction.
Similar limitations exist for Gantt charts, with at most 1,800 tasks
listed on the chart, and a time-line limited to at most 5 years worth
of data.  Note, however, that these limitations are only for visual
interactive display, and play no bearing on the number of tasks that
can be stored in the system, or the number that can be produced on
hard-copy output.  Also, since each task can have sub-tasks, and each
list of sub-tasks for a task will be represented by its own PERT
chart, the limitations regarding the PERT charts apply not to the
total number of tasks, but to the number of tasks in any given list
(the list of main tasks, a list of subtasks, etc.).
@


1.7
log
@*** empty log message ***
@
text
@d10 1
a10 1
This document serves as the preliminary design of our project planning
@


1.6
log
@*** empty log message ***
@
text
@d40 1
a40 1
stages during the operationg of the tool.
@


1.5
log
@*** empty log message ***
@
text
@d32 1
@


1.4
log
@*** empty log message ***
@
text
@a25 99
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
@d14 1
a14 1
information can be stored to a file, thereby saving it for later
d27 1
a27 1
Developer's Guide.  This restricts the platforms that the tool will
d61 1
a61 1
dependency list; and flags which indicate if completion of this task
d87 9
a95 9
number, and task duration.  Task dependency will be indicated by
placing the tasks that have to be completed first on the left end of
the chart and drawing lines to those tasks that can be started once
the task is complete.  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.
d138 1
a138 2
stages of using the tool.  All actions taken by the software are
based upon the user's actions.
d149 2
a150 2
files, which are in a very specific project file format.  This is
discussed in detail in \cite{prelimin-design}.
d159 1
a159 1
One major limitation of our tool is that only one project database can
@


1.2
log
@*** empty log message ***
@
text
@d151 1
a151 1
discussed in detail in section \ref{sec:file} of this document.
@


1.1
log
@Initial revision
@
text
@d8 1
d10 174
a183 5
\section{Scope}
	\subsection{System Objectives}
	\subsection{Hardware, Software, and Human Interfaces}
	\subsection{Externally defined database}
	\subsection{Major design constraints, limitations}
@
