Design
Stephen Baier
Brandon Davis
Nathan Gross
Leah Shanker
Revision 2.0
Last revision 5/2/2011
Hakuna Matata Northern
Arizona University nau.hakunamatata@gmail.com https://sites.google.com/site/nauhakunamatata
Table of Contents
Introduction 2
1.
Climate Change 2
2.
Clean Air Action Corporation 2
3.
TIST 3
4.
Current Implementation 4
5.
GroveTrotter 5
Architecture Overview 7
Module Descriptions 8
Implementation Plan 11
References 12
1. Climate Change
One of the greatest questions facing
modern society is whether or not life on Earth is sustainable. Sustainability
is the ability to endure over time. If the environment is destroyed then life
would not be able to endure. If this destruction doesn’t get reversed then life
on Earth would eventually cease to exist.
This concern of sustainability is
largely a result of deforestation. Deforestation is the removal of a forested
region or large amount of trees in order to convert the land for farming. According to the World Resources Institute,
more than 80 percent of the Earth’s natural forests already have been
destroyed. Additionally, up to 90 percent of West Africa’s coastal rain forests
have disappeared since 1900. Deforestation, in turn, causes additional effects
such as drought and famine. Without trees and plants soil becomes arid and dry,
making it much more difficult to plant there in the future. Additionally, trees
are natural consumers of carbon dioxide, so a decrease in trees increases the
amount of carbon dioxide in the air. This overabundance of carbon dioxide
decreases the overall air quality.
The decline in air quality is a result
of increased emissions of carbon dioxide in addition to the reduction of trees,
which would naturally offset these emissions. Techniques used in these
countries cause the deforested land to remain unusable for future crops since
the land becomes devoid of nutrients necessary for cultivation. This means the
population must move on and deforest additional land in order to plant more
crops. There are several companies attempting to reverse the effects of
deforestation and teach improved farming techniques to these communities. One
such company is our sponsor, Clean Air Action Corporation.
2. Clean Air Action
Corporation (CAAC)
Clean Air Action Corporation focuses on
developing and implementing low-cost solutions to improve air quality and
reduce air emissions of their clients. CAAC has implemented their own
cost-effective solutions for several companies across the United States to help
these companies meet air quality control standards or to reduce their
environmental impact. These companies include large corporations such as
General Motors, Shell Oil, and Ford Motors along with many other smaller
companies.
CAAC helps these companies in one of two
ways. Either they find innovative methods of reducing air quality concerns such
as installing combustion controls, suggesting gasoline additives that reduce
emissions, or upgrading distribution and transmission techniques. If they can’t
provide their client with an innovative solution then they offer emission
transactions to offset the harmful emissions.
An emission transaction is when the
client purchases Carbon, Nitrogen Oxide (NOx), or VOC credits, depending on
what emissions they want to offset. These credits are representations of the
consumption effect of these gases. For example, trees are able to absorb Carbon;
if a large amount of trees are planted then they can be used to offset Carbon
emissions for the client. The trees can be quantified in order to verify how
much Carbon they are absorbing. A client can then purchase a verified Carbon
credit in order to compensate for emissions that they are producing.
These methods have been very successful
for Clean Air Action Corporation’s clients. The Connecticut Resources Recovery
Authority even noted that because of CAAC they “saved approximately $7 million
in capital expenditures, achieved full compliance with the Nitrogen Oxide RACT
standard on time, and, in fact, over the past eighteen months has surpassed the
regulatory requirements and prevented an additional 220 tons of NOx from being
emitted into the air, thereby creating approximately 200 Emission Reduction
Credits for marketing to other facilities,” which shows the strength and impact
of just one of CAAC’s solutions.
CAAC has helped clients attain emission
controls, but has also identified another problem in underdeveloped nations.
CAAC has helped reverse the problem of deforestation while also helping to
secure their business model. Along with The Institute of Environmental
Innovation, they formed one of the world’s largest and most successful reforestation
and economic development programs, TIST.
3. The International
Small Group & Tree Planting Program (TIST)
The International Small Group & Tree
Planting Program, or TIST, focuses on empowering Small Groups of subsistence
farmers in countries such as India, Nicaragua, Kenya, Tanzania, and Uganda to
reverse the effects of deforestation, drought, and famine. TIST encourages
farmers to form small groups that plant and care for large groves of trees.
These groves are then verified and the Carbon consumed by the trees in the grove
can be calculated as Carbon credits and then sold.
Once a small group of farmers has been
formed, they contact TIST indicating their intent to plant some trees. TIST
sends a quantifier out to inspect the area, confirms the size of the grove,
confirms that the land is owned by the group, and collects other relevant data
(like what types of trees will be planted). The quantifier also takes multiple
GPS perimeters of the grove for verification. Information such as area, perimeter,
density, and shade coverage are calculated and stored. The quantifier then
returns to an Internet cafe and uploads the grove data to the TIST database
server.
Once a year, a quantifier will be sent
to return to the grove and re-quantify the tract. This is called a secondary
audit. Auditing involves first downloading the original tract data at an
Internet cafe. Then the quantifier makes
their way to the grove to collect the data once again. This data is verified with
the original data to ensure that the size of the grove hasn’t changed and that
the trees are healthy. After a grove is
verified by TIST, the data collected can be used to calculate how much carbon
dioxide the trees are absorbing, which is then converted to the virtual
commodity of Carbon Credits. CAAC can then find buyers for these Carbon
Credits.
This process provides income to both the
quantifiers who are employed by TIST and the small groups that maintain the
groves. Small groups receive small stipends for every tree that they continue to
maintain. This encourages them to provide care and attention to ensure that the
trees stay alive as well as providing income. TIST has been very successful in
their endeavors to both provide income to local farmers and to help reforest
areas in need. The TIST program began in only Tanzania with less than 40 small
groups of 10-12 people each. Now TIST spans over 6 countries in East Africa,
Asia, and Central America. TIST now includes over 60,000 participating members,
and over 10 million trees have been planted as a result. On average, about
6,000 trees are being planted by TIST small groups every day.
4. TIST’s Current
Implementation
In order to verify the Carbon Credits, quantification
must occur. Quantification is where a TIST quantifier visits a grove tract, an
area where trees will be grown, and audits it in order to gather information
about the tract. The current TIST quantification process contains several
inefficiencies. The quantification process includes:
1. Receiving tract data from the TIST servers via an
Internet cafe. This data is stored on a Palm device.
2. The quantifier must then leave the Internet Cafe and
head out for the actual grove, which can take a while.
3. Once the quantifier reaches the grove then they must
gather the perimeter of the grove in GPS points as well as additional
information that confirms the maintenance of the grove.
4. After this is completed, they must then return to the
Internet cafe.
5. Once back at the Internet Cafe, the quantifier will
sync their Palm Device and upload data back to the TIST Server.
This process is inefficient for several
reasons. Initially it is apparent that requiring an Internet Cafe is a large
time overhead. However, since there are little-to-no wireless Internet signals
in most of these areas, they must commute to the local Internet Cafes. In
addition to this, the actual gathering of data at the grove can be extremely
time consuming. This is due to the current software used to collect the GPS
locations, Acreage.
Acreage suffers from several faults that
can lengthen the overall process considerably. These faults range from simple
hindrances to causing a complete restart of the quantification process. In
addition to this, the faults can’t be fixed because the developers of Acreage
did not distribute any source code. The major implementation issues of Acreage
include:
Figure 1: TIST Data Flow
● Data Restriction
○ 750 point limit.
● Error Prone Nature
○ Fatal errors cause device crashes.
○ Poor Bluetooth support causes numerous fatal errors.
● User Interface Flaws
○ Buttons that have no function.
○ Buttons without any user feedback/confirmation.
○ Actions that have no reaction.
○ No reversal of action on GPS collection.
■ To
reverse accidentally added points the tract must be deleted and restarted.
○ Awkward context switching between multiple
applications.
○ Navigation towards a tract is done by awkwardly
manipulating GPS points.
● Extensive Training Requirement
○ Training quantifiers to use the software takes
multiple weeks due to the numerous amounts of errors that they may encounter as
well as the above UI flaws.
● No Source Code / Documentation
○ Acreage can not be extended in order to address
issues, it must be used and handled as-is.
5. GroveTrotter
Our solution to the problems TIST is
facing with their current software is to replace the functionality of Acreage,
while addressing as many of these faults as possible. Our system, GroveTrotter
(GT), must replace the existing functionality of Acreage while allowing for a
more extensible system. Currently, Acreage has no source code available. GT
will instead be highly documented and as modular as possible. This will allow
future extensions or potential usage on different platforms as possible.
The functionality that GT needs to
replace is important because if GT does not function at least as well as
Acreage, or if GT is lacking key functionality, then it won’t be used. The
functionality that GT will be able to accomplish can be summarized in these
requirements:
● Integrate with current TIST work-flow and existing
data.
○ Import data stored by Acreage in the past.
○ Export collected data to Pendragon Forms.
● External Protocols
○ Connect to the Magellan GPS device via the Serial
port.
○ Connect to the VisionTac GPS device via Bluetooth.
● GPS Data
○ Retrieve GPS data from device and store the data into tracts.
○ Draw tract to the screen during collection.
○ Store at least 2 grove tracts at a time.
○ Convert Lat/Long GPS data to UTM coordinates.
○ Use UTM coordinates to calculate area and perimeter.
● Reviewing Data
○ View each tract that was collected.
○ View 2 tracts simultaneously for comparison.
○ Allow selection of which tract is best.
However, the functional requirements are
not the only things to be considered in the creation of GroveTrotter. GT also
needs to improve upon Acreage. Improvements over Acreage can increase the
efficiency and decrease the overhead that Acreage currently causes. As
mentioned in the above section, there are several faults that can be addressed.
The way that we plan on addressing these faults are as follows:
● Data Restriction
○ Storing the data as a database file rather than in
fields removes the point limit.
● Error Prone Nature
○ Improve error handling to reduce device failures.
○ Using a Pendragon Forms software to handle GPS
improves Bluetooth handling.
● User Interface Flaws
○ Provide UI feedback for all actions.
○ Add Undo functionality to remove erroneous GPS points.
○ Contain logic underneath Pendragon Forms to provide
the illusion of only a single application.
● Training Requirement
○ Removing errors and remaining similar to the
functional interface of Acreage should significantly reduce training and
re-training requirements.
● Source Code / Documentation
○ A major consideration is providing all source code in
well-documented manner that facilitate future changes, extensions, or
otherwise.
These decisions have been made in order
to ensure that GroveTrotter retains the previous functionality of Acreage while
also improving on several aspects. Some of the decisions made to accommodate
these improvements do have limitations attached to them, such as utilizing the
Pendragon Forms software to handle GPS communications. However, these decisions
have several benefits that outweigh the costs. The manner in which our
decisions and considerations come together is highlighted within our
architecture.
Architecture Overview
Our architectural design is that of a
Three Tiered architecture (3T); this is quite similar to the Model View
Controller (MVC) architectural style where the Presentation Tier (top) acts as
the view, the Logic Tier (middle) acts as the controller and the Data Tier
(bottom) acts as the model. The difference between 3T and MVC is an explicit
layering in which the presentation tier (view) can only access the data tier
(model) via the logic tier (controller); see Figure 2.
Figure 2: GroveTrotter Architecture
Module Descriptions
Presentation Tier
Pendragon Forms: This is an application on our
customer’s devices which provides both a user interface development environment
via Microsoft Access and a communication bridge to the Logic Tier via a
proprietary scripting language. The primary functions of Forms is providing
user interface elements and allowing users to invoke logic via user interface
controls - triggering scripts which invoke the Logic Tier. It also acts as a
communication bridge between the GPS Custom Control and other Logic Tier
elements.
●
Primary
user interface provider.
●
Handles
user input events.
Custom Rendering: Rendering arbitrary sets of data,
such as GPS tracts, are outside the capabilities of Pendragon Forms; ergo,
custom rendering is performed by GroveTrotter logic via Palm API rendering
functionality.
●
Secondary
user interface provider.
Presentation-Logic Bridge
Pendragon Script: Since Forms uses a proprietary
scripting language, its method of communication with the Logic Tier is simply a
local memory address; anything can be placed in this memory address, but for
communication purposes XML strings will be used as indicators of required
action.
●
Propagates
action requests downwards (Presentation to Logic).
●
Communication
between GPS Custom Control and XML Parser.
●
Invokes
GPS Custom Control and XML Parser.
●
Invoked
by user input events via Pendragon Forms.
Palm API: The rendering capabilities of the
Palm API act as a bridge between the Display Module in the Logic Tier and the
user view of the Presentation Tier.
●
Propagates
rendering commands upwards (Logic to Presentation).
●
Invoked
by the Display Module.
Logic Tier
The elements within the Logic Tier
are to be implemented in C and perform the necessary actions based on messages
received from the Presentation Tier; these elements include GPS Custom Control,
XML Parser, Command Manager, Database Module and Display Module.
GPS Custom Control: This logical element was not
developed by Team Hakuna Matata nor can any additions or changes be made to it
as it was developed by Pendragon Software Corp and packaged with Pendragon
Forms. The GPS Custom Control handles GPS device connection of a specified port
and can be queried by Pendragon Script for GPS data in XML form. The full
specification of this control can be found at:
http://pendragonsoftware.com/forms3/gpscontrol.html.
●
Invoked
by Pendragon Script.
●
Populates
XML string with GPS data.
XML Parser: This logical element is invoked by
Pendragon Script accompanied by an XML message which indicates what action
should occur.
●
Invoked
by Pendragon Script.
●
Discovers
required action based on XML tags.
The XML tags which indicate required
action are as follows:
●
<ADD>
○
User
needs to collect a new GPS point.
●
<UNDO>
○
User
needs to remove the previous GPS point.
●
<CREATE>
○
User
needs to collect a new tract.
●
<DUMP>
○
User
needs to export their tract data to CSV.
●
<IMPORT>
○
User
needs to import data.
●
<VIEW>
○
User
needs to view a single tract or compare two tracts.
●
<CLEAR>
○
User
needs to clear session data.
Supplemental XML tags for indicating
specifics of the actions are as follows:
●
<ONE>,
<TWO>, <PRIM>, <SEC>
○
Indicates
which tract database to effect with the supplemented action.
●
<ISTART>,
<ICONT>, <IEND>
○
Indicates
the start, continuation and end of an import; necessary as imports can take up
to twenty-five continuations as the data is too large to send all at once.
●
<GPS>,
<LAT>, <LONG>
○
Indicates
GPS data and data elements created by the GPS Custom Control.
Command Manager: Invokes sub-routines within the
Database Manager and Display Manager based on XML Parser invocation and
supplemental XML tags.
●
Invoked
by the XML Parser.
●
Invokes
the Display Module and Database Module.
Database Module: Acts as the gate keeper to the Palm
Database and an abstraction of ugly Palm API calls. Performs actions such as
adding data points, removing data points, querying data for rendering
operations, etc.; no other logical component should be able to access the Local
Database without going through the Database Manager.
●
Invoked
by the Command Manager.
●
Accesses
the Palm Database(s) in the Data Tier via Palm API calls.
●
Mutates
the Palm Database(s) in the Data Tier via Palm API calls.
Display Module: Performs calculations such as
converting GPS data to screen coordinates and performs rendering operations
such as clearing the screen and rendering a tract.
●
Invoked
by the Command Manager.
●
Performs
conversion calculations.
●
Performs
rendering operations via Palm API calls.
Logic-Data Bridge
Palm API: To access and mutate Palm
Databases, Palm API calls must be used.
●
Invoked
by the Database Module.
●
Grants
access and mutation to Palm Database(s) in the Data Tier.
Data Tier
Palm Database: Best practice in Palm development
is the use of database files for storing large quantities of data. This data is
stored locally as a Palm Database file (.pdb). The contents of local databases
include GPS tract points along with necessary rendering data.
●
Accessed
and mutated by the Database Manager via Palm API calls.
●
Stores
local GPS tracts and rendering data.
●
Best-in-practice
data storage technique.
Implementation Plan
Our
implementation plan has been separated into large modules in order to complete
core functionality. This was done so that we could use an agile design
methodology. The modules were adaptable in order to change as new challenges
approached. The timeline we follow is shown in the Figure 3.
Figure 3:
Development Timeline
Milestone 1 (Friday, February 18) Requirements & Design
Complete preliminary requirements and
design in order to prepare for the future implementation. Highlights functional
requirements, needs, wants, and sample architectures.
Milestone 2 (Wednesday, March 16) Database Module
Develop modules to store and manage data for multiple candidate tracts and a
secondary audit tract. Database needs to be accessible in order to modify the
data or attach it for exporting. This module also includes importing and
exporting data from Pendragon Forms.
Milestone 3 (Wednesday, April 6) Command Manager
Command Manager needs to set a protocol for messages that it can interpret and
then call the appropriate sub-commands in either the Display or Database
modules.
Milestone 4 (Wednesday, April 13) Pendragon Forms Scripting
Create the UI and UI flow via Pendragon Forms as well as enabling the sending
of messages to the external GroveTrotter application.
Milestone 6: (Wednesday, April 20) Display Module
Develop Grove Tracts display module to manage, edit and delete grove tracts as
well as plotting module tract information.
Milestone 8: (Wednesday, May 4) User Testing
Conduct Usability Analysis, including User Testing and Performance metrics.
Change application as necessary to meet Usability and Performance requirements.
Milestone 9: (Thursday, May 12) Delivery
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
10.
Deforestation
statistics: http://www.Nationalgeographic.com/eye/deforestation/effect.html