Welcome
Project Description
Software Development Plan
Gantt Schedule
Specifications Document
Project Proposal
Design Document
Client Email
Teleconference Minutes
Status Reports
Team Meeting Minutes
Client Meeting Minutes
Team Pictures

Project Proposal

Signature Page

TEAM LIVERMORE

Project Proposal Document

EGR 486 – CSE: Senior Capstone Design

Nathan F. Crary

Aasif Z. Syed

Amy J. Whitaker

Kevin W. Thornton

Date of last revision: November 18, 1997

Revision number: 2.0 kwt

 

 

 

Table of Contents

 

 

1. Introduction

1.1 Description of Proposed Project

1.2 Statement of Work to be Done

2. Date of Expected Completion

3. Proposed Solution

3.1 User Perception

3.1.1 Terrain Map

3.1.2 Costing Function

3.1.2.1 Background Costing Function Set

3.1.2.2 Area Costing Function Set

3.1.3 "Stop and Go"

3.2 Functionality

3.2.1 Execution of the Program

3.2.2 Choosing the Starting Point, Finishing Point, Step Size, and Angle of Step

3.2.3 Costing Function Adjustment

3.2.4 Go Button

3.2.5 Stop Button

3.2.6 Clear All Button

3.2.7 Get Map Button

3.2.8 Add CF Button

3.2.9 Delete CF Button

3.3 Algorithm Applied

  1. Risk Assessment
  2. Statement of Required Resources

5.1 Non-Functional Specifications

5.2 Lawrence Livermore Resources

5.3 Team Members

5.4 Faculty Support at NAU & System Administration Support

6. Detailed Budget

6.1 Northern Arizona University Budget

6.2 Lawrence Livermore Budget

6.3 Team Budget

6.4 Total Budget

7. Research

8. Appendix

1. Introduction:

 

The Proposal Document is a detailed description of the suggested solution for the product requested by the Conflict Simulation Laboratory at Lawrence Livermore. The document will be presented to the client at Lawrence Livermore, and after it is reviewed, negotiations for any changes will be conducted. Once the client and the team are mutually satisfied with the document, both parties will sign it.

This signed document will represent a written description of the final working product and a contract by the client and team to deliver it.

1.1 Description of Proposed Project

The proposed project is to design a new tool which, utilizing Lawrence Livermore’s existing Conflict Simulation Laboratory code and simulation terrain map, will determine the optimal path between chosen starting and finishing points on a terrain map. The Conflict Simulation Laboratory’s code reports a weight, or "cost", for movement between any adjacent cells on the terrain map, based upon different criteria. By placing these costs together the optimal path from start to finish can be calculated and displayed to the user.

 

1.2 Statement of Work to be Done

The following areas require code to be written:

  • Reading in and displaying a terrain map
  • Graphically selecting a starting and ending point for a proposed route
  • Costing Functions provided by the client are 80% completed requiring the following:

1. Review each cost function, locating those that need modification

2. Modify functions to return appropriate values

  • Research will be done to determine an accurate way of conforming all of the functions to one scale to help determine precedence and report step costs
  • Add or Delete a Area Costing Function Set
  • Clear all costing functions and the start and finish points
  • Scaling each cost function to return a comparable value
  • Implement a optimal path algorithm based on Dijkstra’s shortest path algorithm
  • Display the result of the path graphically on the terrain map
  • Output result optionally to a data file

 

2. Date of Expected Completion

 

Capstone Design is the Friday of the 3rd week in April, so we will make our project deadline April 20, 1998 the previous Monday of that week.

 

3. Proposed Solution

 

Upon execution, the program will display the following sections: terrain map, costing functions, and program control items. After loading a terrain map, the user must choose the starting point, finishing point, step size, and angle of step. Once the two points are set the user can then choose to adjust the Background Costing Function Set and add new Area Costing Function Sets which will define the rules used to find the optimal path through the terrain. Then the user executes the algorithm to find the optimal path. While the path is being generated, the user will be able to cancel the route generation. When the algorithm has finished, it will display the resulting path on the terrain map. Finally, the user will be able to save the path to a file.

 

3.1 User Perception

The following is information about each of the sections found in the main window.

 

3.1.1 Terrain Map

This window will display the terrain map. Additional items displayed here are the start and finish points, and the path taken solution.

 

 

 

3.1.2 Costing Function

Background Costing Function Set and Area Costing Function Set’s are the two types of Costing Functions. Both of them contain the following:

    • Distance – Distance from current location to destination.
    • Time – Time estimated to perform the current move.
    • Viewability (Line of Sight) – Measurements amount of viewable terrain.
    • General Area Token – Weight based on distance to general token. All other functions will be negated within the radius of this function.
    • Concealment – Amount of concealment provided by the terrain
    • Terrain Type – Boolean value based on ability to traverse different forms of terrain (roads, cities, etc.).

 

By adjusting a function’s value with the scroll bar the importance or precedence changes possibly resulting in a new path to be found.

 

3.1.2.1 Background Costing Function Set

The Background Costing Function Set is required and will be always accessible.

As a default, the costing functions in the Background Costing Function Set will be disabled except for distance (cost vs. distance is specified by the client as a default setting)

 

3.1.2.2 Area Costing Function Set

Two options are visible in this area. "Add CF" and "Delete CF".

An Area Costing Function Set can be created by clicking on the "Add CF" button. They can also be deleted when the Area Costing Function Set is visible, by clicking the "Delete CF" button. At default, all costing functions in the Area Costing Function Set are disabled and no numbers will be assigned to the X-Y coordinates or radius fields. Each Area Costing Function Set consists of X -Y coordinates, a radius of effect, and the functions with their active values. All functions except the Terrain Function are labeled and have a scroll bar with an integer box next to them. The Scroll bar represents the level of precedence and the integer box contains the numerical value of that precedence. The Terrain Function is a set of buttons that allow for travel along a certain terrain.

 

3.1.3 "Stop and Go"

Five buttons and a text box are displayed here. The buttons are Go, Stop, Clear All, Get Map, and Save Path. The text box is used to allow the user to specify the file that will save the resulting path.

 

3.2 Functionality

We have broken up the processes into several categories.

 

3.2.1 Execution of the program

The program will be executed by command line. No command line arguments will be added.

 

3.2.2 Choosing the starting point, finishing point, step size, and angle of step

There are two ways to enter starting and finishing coordinates: Manually the start and finish coordinates can be entered into an X-Y coordinate box or by specifying the start or finish coordinate and clicking on the terrain map. (X and Y position will be put into the manual input box when a point is clicked on the map)

Coordinates are represented in meters and are accurate up to one one-thousandth of a meter (Ex. 3.500m, 4065.795m) and will average out to fit the accuracy of the terrain map. Starting and finishing points must be located inside the terrain map.

The user can choose the step size, in meters, by entering a decimal value representing the distance between steps with an accuracy of one thousandth. The angle of step allows the user to determine the direction of the calculated steps from the current position. As an example, the user can enter 100 meters between steps with an angle of every 10 degrees from the current position.

 

3.2.3 Costing Function Adjustments

The Background Costing Function Set is required and must have at least one of its functions active. The Background Costing Function Set does not have X-Y coordinates or a radius like the Area Costing Function Sets, but it does have the same functions available. X-Y coordinates for the Area Costing Function Sets are represented in meters and are accurate up to one one-thousandth of a meter (Ex. 3.500m, 4065.795m) and will average out to fit the accuracy of the terrain map. The radius is accurate up to one one-thousandth of a meter (Ex. 3.500m, 4065.795m) and will average out to fit the accuracy of the terrain map. X-Y coordinates can be chosen which are outside of the terrain map coordinates system, and the radius value can be set to any size (including one that extends beyond the terrain map coordinates system). The cost of a move will be affected by all Area Costing Functions that apply.

All functions except the Terrain Function will have a horizontal scroll bar. Each function precedence can be increased or decreased by adjusting the scroll right or left. The range is 0 to 1000 with a step size of 1. A value of zero would mean that the function is not to be applied. It is possible that more than one function can be set to the same value. When two or more functions have the same value, the precedence will not be accurate.

The Terrain Function will consist of a set of buttons allowing the user to choose the types of terrain used to create the route.

 

3.2.4 Go button

A check will be made to see if all of the information needed to proceed has been entered. The algorithm will then determine the optimal path. If a path is found the result will be graphically displayed on the terrain map from start to finish points.

 

3.2.5 Stop Button

The Stop Button can stop the algorithm while it is processing the optimal path.

 

3.2.6 Clear All Button

The Clear All Button is used when the user wants to clear the contents of all data entered so far and return the system to original defaults. The following effects are produced: start and finish coordinates are erased, all Area Costing Function Sets are deleted, and the Background Costing Function Set is set to its default state.

 

3.2.7 Get Map Button

The get Map Button will execute Lawrence Livermore’s existing code to read in a terrain map.

 

3.2.8 Add CF Button

A new Area Costing Function Set is created with default values entered when the Add CF Button is pressed.

 

3.2.9 Delete CF Button

The Delete CF Button will remove the current visible Area Costing Function Set. If there are no Area Costing Function Sets or the Background Costing Function Set is visible then no action is taken.

 

3.3 Algorithm Applied

The algorithm being applied to provide the path from start to finishing points will be a version of Dijkstra’s shortest path algorithm. The steps of our algorithm are:

  1. We start out with a set S of which initially only contains the starting node.
  2. If a step was taken, and it is to the finishing node then we have found the optimal path and once it is reported, we are done.
  3. A request is made for the cost of each step which can be taken from all of the nodes in our set S that do not move to a node that is currently in our set.
  4. If there are no step values to choose from then there is no path to the finishing node. We must report that there is no path to the finish point and we are done.
  5. From these step values we choose the lowest value as our step and add the node stepped-to to out set S.
  6. We must return to step 2 and repeat the loop until steps 2 or 4 are met.

 

 

4. Risk Assessment

 
 

Impact

High

Medium

Low

Probability

High

I

II

III

Medium

IV

V

VI

Low

VII

VIII

IX

 

We foresee the following potential risks:

Category I – High Probability, High Impact

  • Team annoys system administrator; system administrator deletes accounts
  • To mitigate impact, we will be prepared to petition dean to recreate accounts
  • Program resource requirements exceed available resources
  • Due to potential hardware limitations, user guidelines will be included with finished product, recommending rules of thumb to be used when entering data

 

Category II – High Probability, Medium Impact

  • Miscommunication between client and team
  • Frequent communications between client and team, to include email when regular teleconferences or meetings are not working
  • Allow client or team to restate their understanding of information provided by other party, to ensure equal understanding of information

 

Category III – High Probability, Low Impact

 

Category IV – Medium Probability, High Impact

  • Failure of Lawrence Livermore to deliver necessary code
  • Watch for delays in promised delivery. Remind contact of importance as needed.
  • Prepare design to minimize connectivity with needed code, if code not available during design phase, to lessen code change requirements when code is delivered

 

Category V – Medium Probability, Medium Impact

  • Member of the team does not produce a promised deliverable
  • Mitigate possibility, by including frequent reviews of progress on all deliverables
  • Keep current copies of all work accessible by all members of group, to allow slack to be picked up as necessary
  • Compiler incompatibility between client and school systems
  • Include precompiled versions of all code with source code deliverables
  • Contact administrators to ensure compatible compilers are installed
  • Include all source code, include files, and libraries (where possible) with deliverables

 

Category VI – Medium Probability, Low Impact

  • Code is lost due to unexpected circumstances
  • Maintain regular backups of code on multiple systems, to minimize loss
  • Livermore has problem with Aasif’s citizenship
  • Issue primarily with on site visits. Rest of team able to visit, and keep Aasif informed
  • If problem is citizenship in general, see section on losing team member

 

Category VII – Low Probability, High Impact

  • Not finishing project by deadline
  • Track progress, and attempt negotiating smaller scale project if team falls too far behind to successfully finish initial project
  • Complete individual modules within original project to minimize additional work needed to reach original objectives
  • Client quits/moves to another job/gets fired
  • Beyond control of team
  • Maintain documentation so that any new partner (team member or contact) may be relatively easily brought up to speed with current project status
  • Lawrence Livermore stops or freezes CSL project
  • Beyond control of team. No mitigation or planning possible
  • Team member leaves the team or becomes inactive for long period of time
  • Maintain schedule so that workload may be distributed among remaining members
  • Scale project so that core aspects of project can be completed with a smaller team

 

Category VIII – Low Probability, Medium Impact

  • Product release date is requested to be pushed up by client
  • Scale project to allow completion of core aspects within a shorter time scale, including additional modules to be completed on a time available basis

 

Category IX – Low Probability, Low Impact

 

 

5. Statement of Required Resources

 

5.1 Technical Resources

Standard Template Library

Space to save and work on the code

Sun Systems

Motif programming library

Books – See Appendix

Conflict Simulation Laboratory Web page: http://www.llnl.gov/nai/group/introh.html

 

5.2 Lawrence Livermore Resources

Tom Kelleher – Contact at Conflict Simulation Laboratory

- Approximately 3 Hour/Week

 

5.3 Team Members

Amy J. Whitaker – Team Leader

- Approximately 10 Hour/Week

Aasif Z. Syed – Team Recorder

- Approximately 10 Hour/Week

 

Nathan F. Crary – Team Liaison

- Approximately 10 Hour/Week

Kevin W. Thornton

- Approximately 10 Hour/Week

 

5.4 Faculty Support at NAU & System Administration Support

Dr. Murali Medidi – Unofficial Algorithm and C++ Advisor

- Approximately .25 Hour/Week

Dr. Melvin Neville – Unofficial Algorithm and C++ Advisor

- Approximately .25 Hour/Week

Dr. Ken Collier – Senior Design Advisor

- Approximately .5 Hour/Week

Norm – System Administrator

- Approximately .25 Hour/Week

 

  1. Detailed Budget
  2.  

    6.1 Northern Arizona University

    software

    -

    0.00

    TOTAL

    0.00

    6.2 Lawrence Livermore

    meals

    -

    114.57

    books

    -

    50.00

    plane tickets

    -

    800.00

    hotel

    -

    0.00

    Capstone trip

    -

    200.00

    TOTAL

    1164.57

    6.3 Team

    rental car

    -

    278.47

    meals

    -

    194.61

    gas

    -

    130.00

    hotel

    -

    132.86

    books

    -

    90.00

    team folder and tabs

    -

    20.00

    disks

    -

    5.00

    film and processing

    -

    15.00

    Copies and transparencies

    -

    50.00

    TOTAL

    915.94

    6.4 Total Budget

    $ 2080.51

     

     

  3. Research

 

The client has requested functionality we do not want to include as work promised to be completed in our proposal. However, if we finish the project before the scheduled due date we would like to continue to work on them. These items are:

  • Display Area Costing Function Sets on the map
  • Starting and/or ending times for each Area Costing Function Sets
  • Applying a decay falloff vs. the radius function to each Area Costing Function Set
  • Optimizing path taken to contain less nodes
  • Statistics on path taken
  • Optimizing algorithm

 

8. Appendix

See Team Livermore Specifications Document, Revision 2.0 kwt

 

C++ with Object-Oriented Programming

Paul S. Wang, Kent State University

PWS Publishing Company, Boston

 

C++ programming book

To be provided by Lawrence Livermore

 

Fundamentals of Algorithms, Copyright 1996

Giles Brassard and Paul Bratley

Prentice Hall, Inc.

Englewood Cliffs, New Jersey 07632

 

The X-Windows System Series

(X Windows System set version 11 located in the NAU 1st floor Sun Lab)

Volumes 0,1,2,6,7

O'Reilly & Associates, Inc.

Nutshell Handbooks, Sebastopol, CA