fur seal data entry

41
Fur Seal Data Entry A Project by Samuel Beecher

Upload: jiro

Post on 23-Feb-2016

54 views

Category:

Documents


0 download

DESCRIPTION

Fur Seal Data Entry. A Project by Samuel Beecher. Fur Seal Data Entry. Client Dr. Ward Testa Research Wildlife Biologist Works with National Marine Mammal Laboratories Project Data Entry App Motorola Defy (Android 2.0 Update 1). In the beginning was…. HISTORY. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Fur Seal Data Entry

Fur Seal Data EntryA Project by Samuel Beecher

Page 2: Fur Seal Data Entry

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)

Page 3: Fur Seal Data Entry

HISTORYIn the beginning was…

Page 4: Fur Seal Data Entry

History: Where it BeganDesignated as depleted in 1988

◦National Marine Fisheries Service

More specific monitoring after 2000◦National Marine Mammal Laboratory

Page 5: Fur Seal Data Entry

History: Where it Began (cont)Done on Pribilof Islands

Archipelago ◦St. Paul and St. George◦70% of total Fur Seal Population

globally

Page 6: Fur Seal Data Entry

History: What it Looked LikeTrack population composition:

◦Size◦Age◦Sex◦Natural Mortality

Performed Observations◦Summer months◦Process needs to be accurate

Used for statistics

Page 7: Fur Seal Data Entry

History: What it Looked Like (cont)

Page 8: Fur Seal Data Entry

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

Page 9: Fur Seal Data Entry

History: What it Looked Like (cont)Entered into an Excel

Spreadsheet◦Used to create statistical data

Page 10: Fur Seal Data Entry

History: What it Looked Like (cont)Also done by performing

“Counts”◦Summer months

Pad and Paper

Entered into Excel Spreadsheet

Page 11: Fur Seal Data Entry

PROJECT GROWTHFrom birth to adulthood…

Page 12: Fur Seal Data Entry

The Growth of a ProjectBirth

◦Initial SpecificationsToddler

◦DesignPre-Teen

◦Finalizing DesignTeenager

◦Problems and RefactoringAdult

◦Final Touches

Page 13: Fur Seal Data Entry

BIRTHInitial Specifications…

Page 14: Fur Seal Data Entry

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

Page 15: Fur Seal Data Entry

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

Page 16: Fur Seal Data Entry

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

Page 17: Fur Seal Data Entry

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

Page 18: Fur Seal Data Entry

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

Page 19: Fur Seal Data Entry

TODDLERInitial Design…

Page 20: Fur Seal Data Entry

Toddler: DesignPrototyping

◦Convenient for working on Android◦First large scale project

First Design Ideas◦Based on initial specifications◦Changed drastically by the end

Page 21: Fur Seal Data Entry

Toddler: Design (cont)

ObservationForm

datetimeobser verrooker yvisib i l ityC odef i rstTagother Fl ipper SeensecondTagSea lpupC odephotosTakencommentsSubmi t() SEAL

I DL ef tTagRightTagSexA ge

TAG

sea l IDnumbersidetypecolorlossCode

C ountForm

I Dbul lharemBul lf emalepupSubmit()

C ontrollermainFormcountFor mobsFor mdataC ontr ol l er

DataC ontroller

saveC ount()saveObs()

MainForm

selectC ount()selectO bs()dow nloadCSV()

U M L Diagram

star tM ain()star tCount()star tObs()

Page 22: Fur Seal Data Entry

Toddler: Design (cont)

OBSERVAT IONi d(pk )dateti meobserverrook ery (fk )vi s i bi l i tyCod e (fk)fi rstTag (fk)otherFl i p perSeensecond Tag (fk )pup Cod e (fk )photosTakencomments

SEALid (pk)lef tTag (fk)rightTag (f k)sex age

TAGnu mber (p k )s i d etypecol orl ossCod e

SEAL_TAGtagN um ( fk )seal I d (fk )

TYPEtyp eID (p k )typ eN ame

T YPE_COLORtyp eI D (p k , fk )Col or (p k )

PUPcodeI D (p k )codeD esc

VISIBILITYcod eI d (p k )cod eDesc

LOSScod eI D(p k)cod eDesc

ROOKERYR ookery ID (p k )n amel atl on

Page 23: Fur Seal Data Entry

PRE-TEENFinalizing Design…

Page 24: Fur Seal Data Entry

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

patternProduced

◦New design pattern◦New database setup

Page 25: Fur Seal Data Entry

Pre-Teen: Finalizing Design (cont)

Page 26: Fur Seal Data Entry

Pre-Teen: Finalizing Design (cont)

Page 27: Fur Seal Data Entry

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

Page 28: Fur Seal Data Entry

Pre-Teen: Finalizing Design (cont)

Page 29: Fur Seal Data Entry

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

Page 30: Fur Seal Data Entry

Final UML

Page 31: Fur Seal Data Entry

Final UML

Page 32: Fur Seal Data Entry

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

Page 33: Fur Seal Data Entry

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

Page 34: Fur Seal Data Entry

TEENAGERProblems and Refactoring…

Page 35: Fur Seal Data Entry

Teenager: Problems / RefactoringLearning Curve

◦First large scale project◦Fairly new to Android◦Never used SQLite◦Debugging proved really difficult

Not always clear on error

Page 36: Fur Seal Data Entry

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 insertionRegular meetings helped, A LOT!

Page 37: Fur Seal Data Entry

ADULTReview…

Page 38: Fur Seal Data Entry

Adult: ReviewPlanned 8 hours per week

◦Actual roughly 20 - 22 per week

Still working on bugs◦Dr. Testa is working with phone

Page 39: Fur Seal Data Entry

Adult: Review (cont)

Design8%

Re-quirements3% Writ

eup4%Pre-sen-tatio

n5%

Implmentation60%

Testing20% Design

RequirementsWriteupPresentationImplmentationTesting

Page 40: Fur Seal Data Entry

CONCLUSIONTo Conclude…

Page 41: Fur Seal Data Entry

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