Requirements
Stephen Baier
Brandon Davis
Nathan Gross
Leah Shanker
Introduction
3
1.
Environmental Change
2. Clean Air Action Corporation
(CAAC)
3. The International Small Group
& Tree Planting Program (TIST)
4. Team Hakuna
Matata
Existing
Implementation
7
1. Current Process
2. Problems With
Current Implementation
Our
Solution
.. 9
1. Solution Overview
2. GroveTrotter
(GT)
3. Forms Parsing
4. Forms Data Input
Functional
Requirements
.. 11
1. Plotting Tracts
2. Tract Display
3. Tract Management
4. GPS Device Communication
5. Data Integrity
6. Position Indication
7. Pendragon
Forms Communication
Non-Functional
Requirements
12
1. Hardware Requirements
2. Usability Analysis
Execution
Plan
.... 15
References
... 16
1. Environmental Change
Our planets temperature is rising.
Research shows Earths average surface temperature has increased 0.6 degrees
Celsius (1.8ΊF) over the last 100 years. This increase in temperature can be
linked to the recent environmental trend known as global warming. Global
warming is partially caused by the rising levels of greenhouse gasses (GhG). Greenhouse gasses reside in Earths atmosphere,
absorbing and transmitting radiation.
Historically, greenhouse gases allowed life on Earth
to flourish due to its characteristic of trapping heat in the atmosphere and
keeping the planet within habitable temperatures. However, levels of carbon
dioxide, methane, and nitrous oxide have intensified substantially over the
last century. The most influential of these gases is carbon dioxide for the
role it plays in temperature increase. Levels of carbon dioxide in the
atmosphere are higher now than it has been over the last 650,000 years. Extraneous amounts of carbon dioxide in the earths atmosphere is
the main cause of global warming. This increase is partially due to the burning
of fossil fuels such as oil, coal, and natural gas. Another reason for the
increase in carbon dioxide is having fewer forests to soak up the gas from the
atmosphere; this is known as deforestation.
As global warming continues to worsen,
calamity has arisen on our planet. Global warming leads to the reduction of
glaciers, which are very important to the survival of salmon and polar bears.
Global warming also causes rising water levels, creating favorable living
conditions for mosquitoes. These favorable conditions have led to
the rise of mosquito-associated diseases such as West Nile Virus, Malaria, and
Dengue Fever in Asia, East Africa, and Latin America. Another effect includes
oceans absorbing more carbon dioxide causing the water to become more acidic
leading to damage to many species.
There are many ways we can slow down the
process of global warming and help save our planet. Many small and traditional
actions include recycling, using fluorescent bulbs, driving less or driving a
hybrid. We could drastically reduce our carbon emissions if we stopped driving
cars and operating large industrial factories, but this solution obviously
isnt practical in our modern time. A first step to fighting global warming
without halting industrial progress is the planting of new trees all over the
world. After all, one single tree can reduce atmospheric carbon dioxide by
about 915 kilograms (~1 ton) over its lifetime.
2. Clean Air Action
Corporation (CAAC)
Clean Air Action Corporation (CAAC)
develops and implements low cost strategies to clean up the air in ways that
make good business sense. For seventeen years they have helped communities and
businesses clean up the air sooner and at lower cost. CAAC is headquartered in
Tulsa, Oklahoma and has a subsidiary in Morogoro,
Tanzania. Smaller offices are also located in India, Kenya, and Uganda. CAAC
has worked all over North America, Europe, Africa, and Asia.
CAAC primarily manufactures NOx, VOC, and GhG emission
reductions for various clients. NOx refers to
Nitrogen Oxide, a chemical produced during combustion that contributes to
global warming and limits the growth of plants. VOCs are Volatile Organic
Compounds with significant vapor pressures that can occur naturally or be
man-made and can have chronic adverse effects on the environment. GhG are Greenhouse Gasses which are various gases that trap
heat and radiation in the atmosphere causing a gradual global warming effect.
All of these chemicals and gases have negative effects on the environment. CAAC
helps to reduce these emissions while also helping companies meet regulations
for acceptable levels of these chemicals.
CAAC has worked with a broad range of
clients to help reduce or reverse these emissions. Their satisfied clients
include a broad range of companies, such as Shell Chemical, Shell Oil, Ford
Motor, General Motors, Pfizer Corporation, Tennessee Valley Authority, and
Cumberland Farms. A full list of their clients is available on their website.
Finally, Clean Air Action Corporation
(CAAC) has established itself as a catalyst for change in air emission
compliance. CAAC has been involved with or responsible for several
breakthroughs. For example, they helped establish the first Ozone Alert program
for alerting the public of weather conditions that contribute to high ozone
levels. They also have helped facilitate the first Interstate and International
emission reduction credit transactions. With a wide range of functions and
clients, CAAC has established itself as a pioneer in cost effective solutions
for air emission problems. One of CAACs most unique solutions is their
sustainable development project, The International Small Group & Tree
Planting Program.
3. The International
Small Group & Tree Planting Program (TIST)
The International Small Group &
Tree Planting Program (TIST) empowers farmers from Tanzania, Kenya, Uganda,
India, Honduras and Nicaragua to reverse the effects of deforestation, drought
and famine through the planting of trees. These planted trees will eventually
be sold to companies worldwide in the form of Greenhouse Gas Credits (GhGs) when a company or individual seeks to reduce their
global carbon footprint. Currently, a certificate of offsetting greenhouse
gasses produced by 1 metric ton of CO2 equivalent (CO2e) sells for $10 in their
online store.
Local farmers from Tanzania, Kenya,
Uganda, India, Honduras and Nicaragua are paid to plant new trees in groves
around their farmland. However, in order for TIST to be able to offer
certificates of GhG, reporting is necessary. The
administrative body in charge of GhG certification
also requires precise GPS coordinates of the location of these tree groves -
not just a simple count of trees planted. In order to satisfy the administrative
body, TIST hires and trains local recruits as GPS Quantifiers to walk the
perimeter of the tree groves (recording a grove tract) which had previously
been planted by local farmers. There are over 50,000 farmers in the program,
over 7 million trees in the ground, and an estimated 6,000 more being planted
each day.
The success of the TIST Project greatly
relies on the accurate information collected for the programs current trees
and other project areas (also known as grove tracts). The data is captured by
TIST Quantifiers using Palm mobile devices. These palm
devices are used in conjunction with GPS devices. TIST Quantifiers collect this
GPS data in a variety of ways to georeference the
other information being collected related to valid project areas. Acreage, the
third party GPS application currently used by TIST for collecting tract data,
has become outdated and no longer meets TISTs needs.
4. Team Hakuna Matata
Hakuna Matata is a Swahili phrase
that translates to There are no worries in English. Our development will be
contributing to offsetting the worry caused by global rising temperatures and
greenhouse gas emissions. Were also indirectly helping farmers in struggling
countries maintain their independence and offset the devastating effects of
deforestation, drought and famine. Were helping the world become a little more
worry free.
Our team consists of an experienced
group of software developers, all from varying backgrounds of expertise:
Leah Shanker
is serving as the primary role of Team Lead for the project, in addition to
serving as an extra set of hands in any area where necessary. She is aiming for
a professional career in Embedded Software Development upon graduation at the
end of the semester. Her personal strengths include Embedded Software
Development and User Interface Development. Her ability to quickly grasp
complexities, solve problems efficiently and effectively lead numerous
successful teams during her academic career prime her for leadership for this
team. Her Computer Science electives taken include Advanced User Interfaces,
Embedded Systems, Virtual Worlds, Artificial Intelligence and Computer
Security.
Stephen Baier is serving as
the primary role of User Interface Designer and Recorder. With an emphasis in games,
Stephen Baier has extensive experience with user
interface design; picking up practice in classes such as Virtual Worlds, Game
Production, Advanced User Interfaces and Software Engineering; implementing
interfaces in Java (Swing), SLAG and Actionscript3. Through courses such as
Computer Graphics and Operating Systems, Stephen has experience with C and C++
in UNIX, Windows and OS X environments; skills that will be valuable in the
course of this project. Having spent one semester as an Aerospace Engineer and
two semesters as a Computer Engineer at Embry-Riddle Aeronautical University
(ERAU), along with pursuits of personal interest, Stephen has some familiarity
with embedded and mobile programming; another valuable trait for this project.
Stephens strongest trait is his ability to write code.
Brandon Davis is serving as the primary role of System
and Document Management, with a secondary role of application development.
Planning for a future in Game Production, Brandon Davis has placed an emphasis
on communication and the overlaying architectures of any system. Brandon has
been exposed to the architecture of various systems through courses such as
Software Engineering, Game Production, Automata Theory, and Data Mining. These
systems have also exposed Brandon to various implementation languages, such as
C/C++, Java, PHP, and Actionscript. With a minor in
English, Brandon also focuses on being able to visualize and explain the
overall problem and solution. Communication and abstraction are key components to
any successful software system and these are what Brandon excels at.
Nathan Gross is serving as the primary role of Website
Administrator and secondary role of Hardware Manager. A semester away from
attaining a bachelors in Computer Science, Nathan
Gross is self-determined, outgoing, hardworking, dependable, and eager to learn
and grow professionally when associated in software development. Nathan has
laid an emphasis on web development, software architecture, and game production.
Considerable experience can be shown through courses such as Web Development,
Virtual Worlds, Computer Graphics, Software Engineering, and Operating Systems.
Through the course of his career he has been divulged in several languages
including PHP, Javascript, Perl, ASP, Java, C, C++,
and other strong tools such as HTML, CSS, MySQL, and AJAX. Nathan is ready to
prove that he is versatile and can perform well in many kinds of positions.
Existing Implementation
1. Current Process
The TIST Projects current
implementation includes the long outdated software package, Acreage. Acreage
talks to an external GPS device (via serial port on the Zire
71, Bluetooth on the Centro) and offers the GPS Quantifier an interface for
recording and deleting grove tracts. The software was designed by a programmer
in South Africa who has since stopped maintaining it or publishing any updates
whatsoever. With the numerous unhandled errors in the Acreage software, coupled
with the older Palm hardware - the GPS Quantifiers experience a great deal of
annoyance due to errors, sometimes even causing the device to reboot.
Pendragon Forms 2.0 (Forms) is used for local data storage on
the device as well as synchronization with the TIST.org servers when the GPS
Quantifier reaches an Internet cafe in one of the local villages. Because
neither the Zire71 nor the Centro devices have on-board GPS, the Acreage
software communicates to the external GPS devices for location information. The
GPS Quantifier walks the perimeter of the tree grove to record a new grove
tract. Acreage displays previously recorded grove tracts, allowing the GPS
Quantifier to delete erroneous tracts.
Below are some screenshots of the
current implementation. The left two are from Acreage, displaying two different
views of a grove. The right two are from Pendragon
Forms 2.0 - notice excessive message pop-ups.
2. Problems with
Current Implementation
Our clients shipped us both the Palm
Zire71 device and the Palm Centro device, both with Acreage and Forms
installed. In addition, we were also given the external GPS Devices that were
being used in the field by the GPS Quantifiers. Our team took a hike around the
grassy area near the NAU Engineering Building, plotting our own grove tracts and
taking notes about the current user experience as well as problems encountered.
2.1 Poor Interface
Design
Although we were eventually able to
successfully plot grove tracts for both devices, it took a great deal of
referencing the users manual and trying to figure out what purpose each of the
options served. For example, from the application screenshot above, what do
each of the checkboxes marked Auto, Man and User in the Acreage program
actually do? This is only one example of confusing interface elements that
dont match the users mental model.
2.2 No Source Code
The original developer of Acreage was a
man in South Africa who has long since stopped responding to e-mails sent by
our client. The original developer has not issued an update to Acreage in
several years and it looks like he never will. Moreover, since the software was
not released open source and source code was never provided to TIST, Acreage is
not maintainable or update-able with future functional requirements.
2.3 Intensive Training
Required
Acreage is not the easiest or most
intuitive piece of software to use. A twenty-page training manual is given to
each of the GPS Quantifiers with screenshots of every possible phase and every
application error that occurs and how to deal with it. In addition to the
manual, GPS Quantifiers are required to attend a two week classroom training
session, followed by a tag-along apprenticeship where they follow another GPS
Quantifier out to a job site to watch them in action. For more information
about our users, please see our User Profile.
2.4 Lack of Modularity
The current implementation has several
applications working together, but hardly seamlessly. Forms calls Acreage to
begin the data collection process, but Acreage never releases control back to
Forms. This requires the user exit out to the menu and
manually re-launch the Forms application to continue the data
synchronization process.
2.5 Missing
Functionality in Acreage
Problems with the Acreage software
include advertised functionality that was never actually completed in the
released product.
2.5.1 No Editing of Existing Grove
Tracts
Acreage has an incomplete menu item for
allowing the GPS Quantifier to edit existing grove tracts, but that
functionality has reportedly never actually worked. It simply causes an
application error to fire, usually resulting in the device rebooting.
2.5.2 Auto Setting Not Functioning
Properly
Under the Acreage Toolbar Tab for
Menu > Options > Preference, there is a Map Scale setting. The possible
values are some numbers of an unknown scaling unit (0.1, 1, 2, 5, etc.) and
Auto. As the name would suggest, the Auto setting is intended to inscribe
the track as large as possible inside the drawing space. This should be the
ideal setting to use while collecting tracks; however, it does not function
properly.
2.5.3 Cross-hair Display
When collecting points in Acreage, a
cross-hair appears denoting the person's current position. Unfortunately, it only appears when you are
actively collecting points. It would be
great if this cross-hair was also displayed when the GPS was connected but
Acreage was not actively collecting points. This would allow the quantifier to
locate a previously collected track, without actively collecting points. At the
moment, the Quantifiers are required to collect points in order to locate the
track, then restart the process to get read of the
junk points collected during their wandering.
2.6 Unhandled Errors in
Acreage
The older Palm hardware simply
reboots when unhandled application errors are thrown. Unhandled errors in the
Acreage software cause the hardware to reboot, wasting the valuable time of our
users, the GPS Quantifiers.
2.6.1 Quirky Bluetooth Communication
The Palm Centro version of Acreage
handles Bluetooth communication with the external GPS device in a very poor
manner. It does not close the Bluetooth port properly after finishing,
creating a state where no new data can be input until both the GPS Device and
the Centro are rebooted. Another problem found is Acreage attempts to
communicate over the Bluetooth port to initiate a new connection, even when it
has already properly connected to the Bluetooth GPS Device. These problems
cause unhandled application errors and sometimes cause the device to reboot.
2.6.2 Frequent Runtime Errors
Runtime errors in Acreage occurred
almost every time we tested out the software. It was nearly impossible to
complete a task without an error dialog popping up with a random error code and
no explanation. This seems like a product of poorly developed code.
Our Solution
1. Solution Overview
Team Hakuna Matata will be rewriting Acreage, used by GPS Quantifiers
in the field to accurately record, edit and delete grove tracts. We will be
naming our GPS quantifier application GroveTrotter
(GT). Because the TIST Project intends to eventually move to a different
unspecified hardware platform in the future, we have designed our solution to
be as modular as possible, separating out data communication into its own
section.
The already existing software to
communicate with the TIST.org servers is called Pendragon
Forms 2.0 (Forms). Our solution will implement middle-ware for parsing Forms
data and formatting output for use with Forms, but we will not be rewriting any
piece of the already existing Forms software. The Forms Parsing and Forms Data
Input pieces will be designed with orthogonality in
mind, as these are the pieces that will likely need to be swapped out with
newer communication frameworks in the future.
The GPS Quantifier walks around the
perimeter of the tree grove, recording a grove tract using the GroveTrotter (GT) software. GT communicates with an
external GPS device to gather location information while the GPS Quantifier
records the grove tracts.
One of the main issues the GPS
Quantifiers face is the lack of a steady Internet connection. In order to
synchronize collected data with the TIST.org servers and gather information
about future grove tract assignments, the GPS Quantifiers need to seek out a
local village and use the connection at an Internet Cafe.
The TIST Project collects and reviews
GPS data in a number of different ways. While Acreage has become inadequate and
substandard, the development of a new GPS application, GroveTrotter,
will be fully capable of meeting the projects demands. The basic key features
required are as follows:
1.
Collecting,
saving, and loading tracts
2.
Calculating the
area, length and other basic information about a tract
3.
Pausing and
editing of a tract while it is being collected
4.
Reviewing
multiple tracts at the same time
5.
Navigating a user
to a single GPS location
6.
Allowing the user
to navigate to an existing tract (whether stored from a previous monitoring
event or recently taken)
Forms Parsing involves gathering data
from the Forms specification, packaging up the data and sending it to GroveTrotter (GT) using a documented data standard, which
will be outlined at a later time. GT will then convert the input into the
user-selected language and user-selected measurement system for a localized
user interface experience.
Forms Data Input focuses on aggregating
collected GroveTrotter (GT) data, packaging it up to
Forms standard for data and sending it to Forms for local data storage. Once
the GPS Quantifier reaches a steady Internet connection at a local Internet
Cafe, they will use Forms to synchronize their data with the TIST.org servers.
Designing for
modularity means that if in the future TIST decides to move away from Forms for
data management, the only pieces of GroveTrotter (GT)
that would need to be updated would be the two Forms pieces. None of the GT application code would need to be
updated, provided the hardware remained the same.
4. GPS Device Communication
As neither the Zire71 nor the Centro
has a built-in GPS device, both communicate to external GPS devices (for more
details see the Hardware Requirements). GT will need to use the appropriate
port to access external GPS data, depending on which GPS device is currently
being used. The integrity of this communication needs to be improved upon from
the existing implementation, which frequently errors out and forces the user to
restart their device.
5. Data Integrity
The Zire71 has a flash memory system
which requires constant battery power. If battery power runs out, the entire
device memory, including installed programs and recorded grove data will be
wiped out. GT will need to offset this risk by backing up all data to the SD Card
of the hardware device.
6. Position Indication
With their current software, TIST
Quantifiers can run into trouble determining if they are on the correct tract
or not. For this reason, GT needs to indicate to its users where they are
relative to their target tract.
7. Pendragon Forms 2.0 Communication
Pendragon Forms 2.0 is the application responsible for handling
communication between individual devices and TIST.org servers. GT needs to send
tract information to Forms, as well as load previous tracts from Forms.
Non-Functional Requirements
1. Hardware Requirements
TIST
has specific and inflexible hardware requirements. These constraints cannot be
changed or modified as TIST does not plan on purchasing new hardware in the
immediate future. The devices TIST Quantifiers currently use were chosen
because these devices survive in the rugged deployment environment, whereas
most (modern) devices would be far too frail.
TIST uses two different mobile
platforms, the Zire71 and Centro. GroveTrotter (GT)
will be developed for these platforms, adhering to the specific requirements of
each. Both platforms use the Palm OS; a specific SDK was provided by the
sponsor which is compatible with both devices. Each device will need to talk to
an external GPS device, as neither has one built-in.
1.1 Palm Zire71
● Uses serial port to talk to external GPS device.
● 1GB SD memory.
1.2 Palm Centro
● Uses Bluetooth to talk to external GPS device.
● 8GB SD memory.
2. Usability Analysis
2.1 User Profile
The profile of TIST Quantifiers
dictates specific educational, training, travel and environmental constraints. Hakuna Matatas design will take
this user profile into consideration during our design phase.
2.1.1
Minimal Education
Users have been described as commonly having no more than a high school
education. Most have had little or no exposure to computers. English is assumed
to be their third or fourth language.
2.1.2 Training Provided
TIST
trains its Quantifiers for three months before they are expected to collect
tract data alone; this training includes classroom and on the job training. New
users are first taught the quantifying process in a classroom setting, learning
the software and expected usage. Later, these Quantifiers-in-training are taken
by experienced users as apprentices to practice recording grove tracts on a job
site.
2.1.3 Travel Requirements
Users travel many miles before and after
the use of GT. Much of this travel is across areas with under developed
transportation networks. While using GT, users will travel along grove tracts,
which will vary in size. Due to these high travel requirements, users will
spend more time with their device in their pocket versus actually using it.
2.1.4 Harsh Environment
TIST Quantifiers reside in Tanzania,
Kenya, Uganda, India, Honduras and Nicaragua. Many of the groves reside on
harsh and rugged terrain.
2.2 Interface Options
Since users operate in Tanzania, Kenya, Uganda, India,
Honduras and Nicaragua, the user interface should accompany preferences for
many different measurement systems and languages. The current implementation of
Acreage uses a preferences menu for selecting measurement system and language;
this paradigm should be continued in GT to maintain what the current users are
used to.
2.2.1 Measurement System
There is not currently an exhaustive
list of all measurement systems required; but the needs extend beyond standard
and metric, requiring specific measurement systems like the Kenyan mansana and the Nigerian mansana.
This functionality would allow TIST to cut down on training time for GPS
Quantifiers.
2.2.2 Language
There is not currently an exhaustive
list of all languages required by the system, but GT is required to support
multiple languages. This functionality would allow TIST to cut down on training
time for GPS Quantifiers
2.3 Use Scenarios
There are two particular use scenarios as
described in TISTs Tract SOP (Standard Operating Procedure).
2.3.1
Initial Quantification
In the first case, Quantifiers are
required to take two complete tracts that match visually on the screen of their
Palm device. One of these tracts will be chosen to represent the grove for all
subsequent quantification. Quantifiers are required to keep taking tracts until
they have two that match and accurately represent the physical area of the
grove. One tract is designated as the primary, completing the initial quantification.
2.3.2
Subsequent Quantification
In the second case, the primary tract will have been downloaded to the
Quantifiers Palm device during a sync. When the
Quantifier reaches the grove, it will display on the Palm device and will be
used to help guide the Quantifier when taking a secondary tract. A secondary
tract is one taken during normal quantification when a primary tract already
exists. The Quantifier will look at the secondary tract and compare it to the
primary tract; if there is a visual match, the Quantifier will go on to the
next step in quantification. If there is not a good match, the Quantifier will
need to repeat the process until a visual match is found. A secondary tract is
taken every time a grove is quantified.
2.4 Performance Requirements
There are five performance
requirements that the Grove Trotter (GT) Application must meet. These include
performance based on plotting, displaying, and managing tracts. Performance must also adhere
to GPS device communication, data integrity, position indication, and Pendragon Forms 2.0 communication.
4.
GPS Device Communication
The Zire71 and Centro must be able to
connect to its external GPS devices and receive a GPS Signal data within 3
attempts and before 30 seconds of hold-up. Obviously this performance is not
solely susceptible on GT, due to dependency on satellite positions.
5.
Position Indication
Users should be enable/disable
position indication within 2-5 seconds, after standard TIST training.
Execution Plan
Milestone 1 (Wednesday, February 23) Data Test Harnessing
Forms Parsing & Forms Data Input - Parse the data coming in from a new
assignment from Pendragon Forms 2.0 and verify output
is correct to Forms.
Milestone 2 (Wednesday, March 2) Zire71 Serial GPS Device
Communication
Connect to the Zire71 serial port, read GPS location information from the
external device, verify.
Milestone 3 (Wednesday, March 2) Centro Bluetooth GPS Device Communication
Connect to the Centro Bluetooth port (including possible pairing), read GPS
location information from external device, correctly close the Bluetooth port,
verify input.
Milestone 4 (Wednesday, March 9) Record/Delete Tracts
Record linear grove tracts and store in Forms. Allow deletion of grove tracts
form Forms.
Milestone 5 (Wednesday, March 9) Display Tracts
Display recorded grove tracts on top of one another in a meaningful way. Add
cross-hair display.
Milestone 6: (Wednesday, March 16) Edit Existing Tracts
Allow for the removal of arbitrary location points from previously recorded
grove tracts.
Milestone 7: (Wednesday, March 23) Map Scaling & Polish
Develop the three different map scaling options for the customer and polish out
application code, seamlessly integrating between Forms and GroveTrotter.
Milestone 8: (Wednesday, March 30) User Testing &
Performance Requirements
Conduct Usability Analysis, including User Testing and Performance metrics.
Change application as necessary to meet Usability and Performance requirements.
Milestone 9: (Wednesday, March 30) Refinement
Address any remaining errors or issues with the application, add finishing
touches to application.
1.
Global Warming - http://en.wikipedia.org/wiki/Global_Warming
2.
Clean Air Action
Corporation - http://www.cleanairaction.com
3.
CAAC clients - http://www.cleanairaction.com/clients.htm
4.
T.I.S.T - http://www.tist.org
5.
Palm Zire 71 - http://en.wikipedia.org/wiki/Zire_Handheld
6.
Palm Centro - http://en.wikipedia.org/wiki/Palm_Centro
7.
Palm (Garnet)
Operating System - http://en.wikipedia.org/wiki/Palm_OS
8.
Pendragon Forms Software - http://www.pendragonsoftware.com/forms3/index.html
9.
Hakuna Matata Team Website https://sites.google.com/site/nauhakunamatata