Preliminary Requirements doc

Jason I. Hong (hong@cc.gatech.edu)
Mon, 28 Oct 1996 21:24:15 -0500 (EST)

Here's what I have so far. Please remember that most of it is
in outline form right now. Comments please...

--------------------------------------------------------------------------------

Introduction
============

Cyberguide is a hardware and software system that assists users in the
exploration of physical space. It is an electronic tour guide that provides
information about the surrounding environment, such as the physical layout,
current position, and points of interest.

Customer Needs
==============

o promote Atlanta tourism
o take Cyberguide outside to enable a tour of Atlanta
o interactive, scalable, rotatable vector map
o register where I am currently located
o register what direction I am heading
o You can zoom in and out on the map with ease
o If you indicate a destination, Cyberguide will produce a recommended route
o scale map to include current location and the destination on same screen
o contain information about special places of interest, such
as museums or movie theatres, gas stations, etc.
o add interesting sites to the map
o input information about those sights.
If it is a museum, for example, I'd like to be able to enter
the times it is opened. If it is a restaurant, I'd like to be able to
gives its opening times as well as some information on the kind of food
available and, if I've been there, a recommendation that will give me
advice later on about whether I would like to return.
o At the end of the day, I'd like to see a trail of where I traveled
o If I happen to have a digital camera with me, I'd like to associate
pictures of my day in Atlanta and attach them to the trail of where
I traveled.
o take that history of where I had been, what I did and what I
saw, I'd like to have Cyberguide generate a Web-browsable travel diary of
my day's journey, complete with map.

Scenarios
=========

<Kirk has already given us plenty of scenarios to use :) >

Functional Requirements
=======================

1. Map display
o displays current location (and update)
o zoom in and out
o display surrounding environment (major landmarks, roads, etc)
o display points of interest
o rotate
o shortest path
o scaling upward (ie how to store/retrieve data, which data to use, etc)
o filtering information (e.g. a good way of displaying road names)

2. Positioning
o Accurate positioning and heading at all times
o Tells you where you are
o Shows which direction you are heading

3. Historian
o Record places visited
o Create a real-time web diary of places visited
o Take pictures
o Link pictures taken to place visited

4. Information
o Display information on points of interest
o Annotate information on points of interest
o Suggest points of interest
o Search for places, events, or items of interest (classes of or specific)

5. Communications
o Web access
o E-mail access

Non-Functional Requirements
===========================

1. Global Positioning System
Positioning platform

2. Global Positioning System
Accuracy within xxx meters (probably 10?)

3. Platform independent design and implementation
Currently using Windows 95 Fujitsu
May use Apple Newtons (and/or StrongArm) in future
Implementation should be platform independent as much as possible

4. TIGER/Line map database

5. Response time for any operation < xxx seconds (depends on map)

Phases
======

1. Phase 1 (proof of concept phase)

Implementation on a relatively small scale (Georgia Tech campus)
1. Map (based on TIGER/Line data)
o display current location (and update)
o zoom in and out
o display surrounding environment (major landmarks, roads, etc)
o display points of interest

2. Positioning (based on GPS)
o Get current location
o Make data accurate

3. Historian
o Record places visited
o Create a real-time web diary of places visited
o Take pictures

4. Info
o display information about relevant points of interest
o annotate/add points of interest

5. Communications
o None

6. Online help
o Quick startup

2. Phase 2
3. Phase 3

<I lumped the following future phases together>

Map
o Rotate
o Shortest path
o Scaling upward (ie how to store/retrieve data, which data to use, etc)
o Filtering information (e.g. a good way of displaying road names)

Position
o Current heading

Historian
o Link pictures taken to place visited

Info
o Suggest points of interest
o Search for places, events, or items of interest (classes of or specific)

Communications
o E-mail and web access

Online help

Miscellaneous (not sure if it really belongs here or ddoc)
==========================================================

Maintainable
o Since turnover rate in RWL is high, software must be easy to modify and
maintain

Documented
o Again, since turnover rate in RWL is high, all procedures and software
must be clearly documented

Modular
o Different functional units need to be completely separate in order
to make modifications and upgrading easier
e.g. if we moved from GPS to another positioning system
or communications system changes
or from one hardware platform to another

Scalable
o Must be able to easily and seamlessly work at small level and large level

Glossary
========

--------------------------------------------------------------------------------

-- 
Fortune favors the prepared mind
   - Louis Pasteur

- Jason I. Hong (hong@cc.gatech.edu)