moose habitat surveyor final presentation

23
Moose Habitat Surveyor Final Presentation University of Alaska Anchorage CS 401 : Software Engineering Cold Moose Chasers (Cold MC’s) Max Konovalov Chris Kulhanek Jim Weller

Upload: shino

Post on 31-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Moose Habitat Surveyor Final Presentation. University of Alaska Anchorage CS 401 : Software Engineering Cold Moose Chasers (Cold MC’s) Max Konovalov Chris Kulhanek Jim Weller. Problem Statement. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Moose Habitat Surveyor Final Presentation

Moose Habitat SurveyorFinal Presentation

University of Alaska AnchorageCS 401 : Software EngineeringCold Moose Chasers (Cold MC’s)

Max KonovalovChris Kulhanek

Jim Weller

Page 2: Moose Habitat Surveyor Final Presentation

Problem Statement

• Agencies like the forest service need a way to task biologists to measure and predict the amount of Moose edible biomass in an area

• Take random samples with a computer and project the distribution onto an area.

Page 3: Moose Habitat Surveyor Final Presentation

Scenarios

• Biologists get a list of GPS waypoints from an Agency like the forest service

• Biologists go to each Waypoint and sample 9 CurrentYearGrowth (CYG) of many PlantPatches

• Biologists export the biomass data to a file and give it to the Agency

Page 4: Moose Habitat Surveyor Final Presentation

30 meters

PlantPatch1

PlantPatch4

PlantPatch2PlantPatch3

Waypoint

5 meters

SurveyPole

SurveyPole

Page 5: Moose Habitat Surveyor Final Presentation

Foliage

Survey Pole

Survey Pole

FieldBiologist

Diameter of Patch

WayPoint

Page 6: Moose Habitat Surveyor Final Presentation

Survey Pole

Survey Pole

FieldBiologist

Diameter of Patch

Random Point on Diameter

3drp Pole

Page 7: Moose Habitat Surveyor Final Presentation

3drp Pole

0-1 meter

1-2 meters

2-3 meters

CYG

Random 3D Point

Legend

Page 8: Moose Habitat Surveyor Final Presentation

1 Map Base 3D Point2 Map Tip 3D Point3 Measure Base Diameter

CYG1

2

3

Page 9: Moose Habitat Surveyor Final Presentation

Features

• GUI Application– 3d Renderer– Model view– Data view of instance objects– Menus for

• Collaboration: Import/Export• Persistence: Save/Load

• Hardware– 3d Radio Pen (3drp)– Calipers

Page 10: Moose Habitat Surveyor Final Presentation

Architecture

• MVC– Model is well defined– Controller manipulates model

• Win32 Application

– Views render model• 3d Panel to show plant patches• TreeView control to show the model hierarchy• DataGrid control to show instance variables of

model components

Page 11: Moose Habitat Surveyor Final Presentation

Design

• Façade Pattern (FieldTrip)– Wraps Model class hierarchy– Methods with integers

• One Waywp = ft.getWp(wp_idx);pp = wp.getPp(pp_idx);cyg = pp.getCyg(cyg_idx);cyg.setCygBase(base3d)

• Façade Wayft.cygSetBase( wp_idx, pp_idx, cyg_Idx, base3d )

Page 12: Moose Habitat Surveyor Final Presentation

Design (con’t)

• Façade– Advantages

• Simple and fast to implement because you can use protected variables instead of set/get

• Less function calls to manipulate model• Model innards can be changed without affecting

interface

– Disadvantages• Not great OO design• Model components not very reusable

Page 13: Moose Habitat Surveyor Final Presentation

Design (con’t)

• Bridge– Data inputs should be able to use ink,

keyboard, or attached hardware– Provides flexibility in the field

Page 14: Moose Habitat Surveyor Final Presentation

Win32 Application

Viewmenus, folding tree,

directx picturebox, buttons, text boxes, property sheets,

dialogues, wizards, icons

ControllerEvent driven routines that

manipulate the model

Model

WaypointFieldTrip

1 *

PlantPatch

1 *

CurrentYearsGrowth

1 9

3DRP

LaserRangeFinder

Calipers

+getDistance()

Long2dMeasure

+grab3dSample()

3dMapper

+getDistance()

Short2dMeasurer

11

1

11

1Short2dTextBox

3dTextControl

Long2dTextBox

Page 15: Moose Habitat Surveyor Final Presentation

Expertise

• Chris– Built 3D meshes because of architectural

background– PlantPatch Model component– DataGrid GUI View Component

• Max– C++ string parser research– Waypoint Model component– TreeView GUI View component

Page 16: Moose Habitat Surveyor Final Presentation

Expertise (con’t)

• Jim– Project Lead– .NET C++ research– CurrentYearGrowth Model component– 3D PictureBox GUI View component– Secretarial slave (coffee, lunch, notes etc.)

Page 17: Moose Habitat Surveyor Final Presentation

Finished(?) Product

• We didn’t know until 5 minutes ago what exactly we were going to show you all

• Here it is…– Jim: Meshes– Chris: DataGrid– Max: TreeView from model file

Page 18: Moose Habitat Surveyor Final Presentation

Lessons Learned: Facts

• 50 files (70 expected)– 5 megs of source– 2500 Lines of code (3500 expected)– 85 pages of docs (120 expected)– 4 APIs (3drp, DirectX, TabletPC, .NET)

• 103 CVS commits– 51 CVS commits for Model.h

• 489 Total person hours (519 expected)– First 6 Weeks

• 3 hours of meeting time per week• 2 hours of research/design/writing time per week

– Last 8 Weeks• 10 hours of group time per week• 4-8 hours of code time per week

Page 19: Moose Habitat Surveyor Final Presentation

Lessons: Things we did right

• CVS is good, viewcvs makes it better, statcvs makes it even better

• C++ or not, Visual Studio is sweet

• Consistent meeting agendas and minutes increased traceability

• Good division of labor

• Long 8 hour work together meetings

• Code walk throughs

Page 20: Moose Habitat Surveyor Final Presentation

Lessons: Things that sucked

• Too many new technologies (Cray quote)• Lack of experience in C++ and C++ .NET especially• No client buy in. Should have had a contract • Prototype earlier, especially with new technologies• Specify expected application behavior better in scenarios• Old Libs and new libs (VC2003 vs. VC6)• Develop project schedule earlier and revise continually• Probably won’t achieve acceptance of original

requirements

Page 21: Moose Habitat Surveyor Final Presentation

Conclusions

We should have majored in

English

Just kidding…

Page 22: Moose Habitat Surveyor Final Presentation

Conclusions (for real)

• Software engineering is challenging

• 3 members does not equal 3 times the effort of a single member

• Good planning can save time and effort downstream

• Discipline is more important than genius

• Conservative is better than exciting

• Communication is the most important

Page 23: Moose Habitat Surveyor Final Presentation

THE END