ihale milestone 1 feedback

Post on 06-Dec-2014

627 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Feedback on iHale Milestone 1

TRANSCRIPT

(1)

Milestone 1 Review

Milestone 2 Planning

Philip JohnsonCollaborative Software Development Laboratory

Information and Computer SciencesUniversity of Hawaii

(2)

Milestone 1 Review

(3)

Overall impression It works! (Kind of.)

20 min video of M1 released yesterday•Almost 50 views as of today•Generated lots of discussion in SD•Dudes, hit the "Like" button!

Next steps:•Improve quality of existing code base•Implement more functionality•Remain open to change

(4)

Overall reactions to your projects Some relatively minor problems:•project names, javadocs, release num

Some relatively major problems:•No package-level design•JUnit not running successfully•Low coverage, poor testing

Quality has been sacrificed for "getting it to work"; this has to change. •Also, you need to become more aware of what quality actually is.

(5)

Issues you reported Problem: •Strings for field names are brittle•"pH" vs. "PH" etc.

Solution: •use Java enumerated types mechanism•encode Data Dictionary as a class into API

(6)

Issues you reported Problem:•Listeners are not smart. They add data even if the data hasn't changed.

Solution:•Make the listeners smart. Cache the last System State entry and do comparison.

(7)

Issues you reported Problem:•SystemStateEntry map can generate null pointer exception if key not present.

Solution:•Some combination of:-Strings -> Enumerated types-throw Exceptions if not found-better default return values

(8)

Issues you reported Problem:•Testing with/without other components

Solution:•Make system configurable to support testing both in isolation and with other components.

(9)

Issues you reported Problem:•Console output is a mess.

Solution:•Invest time into making useful logging output.

(10)

Issues you reported Problem:•Too many if statements when parsing the XML.

Solution:•Use XPath.

(11)

Issues you reported Problem:•Data validity checking. User can type in anything (or devices can return anything) even if it's garbage.

Solution:•Practice defensive programming.•If a value is invalid, discard it but log a message regarding the invalid data.

(12)

Issues you reported Problem:•Programming to an API (Java or HTTP)_ is a pain. I wish we didn't have them.•Can't we have just one system, not 3?

Solution:•The cure is worse than the disease.-Establishing an API is the proven way to allow systems to scale.-Having 14 students work on the same system simultaneously without any APIs would be chaos.

•That said, the current APIs are not perfect. Improve them!

(13)

Issues you reported Problem:•No user permissions, roles, security.

Solution:•We can implement simple roles and security later, if time permits. Lack of security will not cost the team points during the competition.

(14)

Issues you reported Problem:•Simulation values not realistic.

Solution:•Fix that during Milestone 2.

(15)

Milestone 2 Planning

(16)

M2: Three Teams, Not Six Due to classmates dropping out, we will consolidate to three teams.

Front-End:•Kinsey, Hung, Hughes, Teichman, Tabucol, Leong

Backend:•Gaskell, Burgess, Cera, Ikehara

House Sim:•Ramelb, Nguyen, Lin, Dorman

(17)

M2: Java & REST API Java API:•I will develop a revised version of the Java API for release next Tuesday.•I will take into account your suggestions.

REST API:•Will be enhanced to support communication with Tablets, Kinect

(18)

M2: Quality Assurance JUnit + Jacoco:•More effort needs to be placed on testing going forward.

Logging:•Front-End, Back-End, Sim all need high quality, useful logging output.•Delete the logging you don't need!•Front end should display logging.

JavaDocs:•JavaDocs must be improved.

Error handling:•Check data for validity; discard and log if appropriate.

(19)

M2: Functionality Front-End:•Hide pages that aren't implemented.•Improve functionality substantially.•Ajax not critical, but try it if you want.•Learn more about wicket! -Read book (again).-See my screencast on ProjectBrowser

(20)

M2 Functionality Backend:•Improve structure of code.•Improve error handling, validity checking, logging.•Support new REST API additions.•Support "startup" data initialization in .iHale directory

(21)

M2 Functionality House simulator:•Clean up code.•Make simulation more realistic.•Support simulation of Kinect, Tablet REST API.•Support "startup" data initialization in .iHale directory

(22)

Schedule No programming until next week.

Front-End team:•Read Wicket in Action.•See ProjectBrowser screencast.

top related