Post on 12-Jan-2016
Fur Seal Data EntryA Project by Samuel Beecher
Fur Seal Data EntryClient
◦Dr. Ward Testa◦Research Wildlife Biologist◦Works with National Marine Mammal
Laboratories
Project◦Data Entry App ◦Motorola Defy (Android 2.0 Update 1)
HISTORYIn the beginning was…
History: Where it BeganDesignated as depleted in 1988
◦National Marine Fisheries Service
More specific monitoring after 2000◦National Marine Mammal Laboratory
History: Where it Began (cont)Done on Pribilof Islands
Archipelago ◦St. Paul and St. George◦70% of total Fur Seal Population
globally
History: What it Looked LikeTrack population composition:
◦Size◦Age◦Sex◦Natural Mortality
Performed Observations◦Summer months◦Process needs to be accurate
Used for statistics
History: What it Looked Like (cont)
History: What it Looked Like (cont)Codes are important
◦Visibility ( 1 - 3◦Pup (0 – 5)◦Age (P, J, A)◦Loss (0 – 6)
Used for easy reference and writing◦Cheat sheet on back of printed form
Used in Excel Sheet◦Statistics and entry
History: What it Looked Like (cont)Entered into an Excel
Spreadsheet◦Used to create statistical data
History: What it Looked Like (cont)Also done by performing
“Counts”◦Summer months
Pad and Paper
Entered into Excel Spreadsheet
PROJECT GROWTHFrom birth to adulthood…
The Growth of a ProjectBirth
◦ Initial SpecificationsToddler
◦DesignPre-Teen
◦Finalizing DesignTeenager
◦Problems and RefactoringAdult
◦Final Touches
BIRTHInitial Specifications…
Birth: Initial SpecificationsClient Specifications: Observations
◦Check IDLookup table for consistency Tag Side, color, type, and number
◦Insert new record, or Edit previous record
◦Check plausibility of Tag Type / Color combo
◦Check plausibility of Island / Rookery / Section combo
Birth: Initial Specifications (cont)Additional Specifications:
Observations◦Lookup table of all observations for
that day◦Dynamic Island, Rookery, Section,
Tag Types, Tag Colors, and all codes I.e. they can’t be hardcoded There must be a centralized place to
manage and transfer data to phone
◦Transfer IDLookup spreadsheet to Phone
Birth: Initial Specifications (cont)Client Specifications: Counts
◦Counters for Females, pups, harem bulls, territorial bulls, and lone bulls
◦Harem Bulls must have femalesAdditional Specifications: Counts
◦Counters for dead adults, bulls, females and pups
◦Lookup table of all previous counts for that day
◦Ability to enter “negative” counts
Birth: Initial Specifications (cont)Client Specifications: General
◦Export counts, observations to CSV◦Move CSV from phone to computer
Additional Specifications: General◦Export count totals in a separate CSV
Birth: Initial Specifications (cont)Design Environment
◦Started with MotoDev for Eclipse◦Switched to NBAndroid for Netbeans
Schedule◦Planned for 8 hours a week◦Spent much more
TODDLERInitial Design…
Toddler: DesignPrototyping
◦Convenient for working on Android◦First large scale project
First Design Ideas◦Based on initial specifications◦Changed drastically by the end
Toddler: Design (cont)
ObservationForm
datetimeobser verrooker yvisibi l ityC odef i rstTagother Fl ipper SeensecondTagSea lpupC odephotosTakencommentsSubmit()
SEAL
I DL ef tTagRightTagSexA ge
TAG
sea l IDnumbersidetypecolorlossCode
C ountForm
I Dbul lharemBul lfemalepup
Submit()
C ontroller
mainFormcountFor mobsFor mdataC ontr ol ler
DataC ontroller
saveC ount()saveObs()
MainForm
selectC ount()selectO bs()dow nloadCSV()
U M L Diagram
star tM ain()star tCount()star tObs()
Toddler: Design (cont)
OBSERVAT ION
i d(pk )dateti meobserverrookery (fk )vi s i bi l i tyCod e (fk)f i rstTag (fk)otherFl i p perSeensecond Tag (fk )pup Cod e (fk )photosTakencomments
SEAL
i d (pk)lef tTag (fk)rightTag (f k)sex age
TAG
nu mber (p k )s i d etypecol orl ossCod e
SEAL_TAG
tagN um ( fk )seal I d (fk )
TYPE
typ eI D (p k )typ eN ame
T YPE_COLOR
typ eI D (p k , fk )Col or (p k )
PUP
codeI D (p k )codeD esc
VISIBILIT Y
cod eI d (p k )cod eDesc
LOSS
cod eI D(p k)cod eDesc
ROOKERYR ookery I D (p k )n amel atl on
PRE-TEENFinalizing Design…
Pre-Teen: Finalizing DesignLots of refactoring
◦Project size grew quickly,◦Needed easier way to add new
elements without repeated code i.e. a more Object Oriented design
pattern
Produced◦New design pattern◦New database setup
Pre-Teen: Finalizing Design (cont)
Pre-Teen: Finalizing Design (cont)
Pre-Teen: Finalizing Design (cont)Not the end
◦Design changed one last time◦Found classes were getting too large
to be manageable◦Wanted to separate functionality ◦Needed addition of classes to
handle: Database access Xml Parsing Export of CSV
Pre-Teen: Finalizing Design (cont)
Pre-Teen: Finalizing Design (cont)Each Activity activates its controller
◦Android Activity Management workaround◦Slave wakes up the master….
Controller handles data validation, insertion, etc…
Activity handles all visualsModel-View-Controller Pattern
◦A parallel class hierarchyAlso used Singleton and Adapter patterns
◦dataController◦databaseController
Final UML
Final UML
Pre-Teen: Finalizing Design (cont)More to do
◦Still needed to transfer files to phone
Transfer of Data to Phone◦Mini program ran on computer◦Needed to be compatible with Mac or
Windows platform◦Parsed Excel Document, put into XML
format, transferred to phone SD card
Pre-Teen: Finalizing Design (cont)Done with design
◦Easier to add components ◦More to figure out
Algorithms for parsing Excel, Xml and insertion to database
Now just needed to implement!◦Lots of custom widgets for special
functionality
TEENAGERProblems and Refactoring…
Teenager: Problems / RefactoringLearning Curve
◦First large scale project◦Fairly new to Android◦Never used SQLite◦Debugging proved really difficult
Not always clear on error
Teenager: Problems / RefactoringMisunderstandings
◦Several, all on my side of the street Tag Creation and Management
Required a change to the database design Seal Code Management
Additional Excel Parsing and insertion
Regular meetings helped, A LOT!
ADULTReview…
Adult: ReviewPlanned 8 hours per week
◦Actual roughly 20 - 22 per week
Still working on bugs◦Dr. Testa is working with phone
Adult: Review (cont)
Design8%
Re-quirements3%
Writeup4%Pre-sen-tatio
n5%
Implmentation60%
Testing20% Design
RequirementsWriteupPresentationImplmentationTesting
CONCLUSIONTo Conclude…
ConclusionLearned Much
◦First Project with a Client◦First Large Scale project◦New to Android
App contained all major features needed
Took longer than expectedHopefully will be used in the fieldWork was hard but well worth it