ihale milestone 1 feedback

22
1) Milestone 1 Review Milestone 2 Planning Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii

Upload: philip-johnson

Post on 06-Dec-2014

626 views

Category:

Education


1 download

DESCRIPTION

Feedback on iHale Milestone 1

TRANSCRIPT

Page 1: iHale Milestone 1 Feedback

(1)

Milestone 1 Review

Milestone 2 Planning

Philip JohnsonCollaborative Software Development Laboratory

Information and Computer SciencesUniversity of Hawaii

Page 2: iHale Milestone 1 Feedback

(2)

Milestone 1 Review

Page 3: iHale Milestone 1 Feedback

(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

Page 4: iHale Milestone 1 Feedback

(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.

Page 5: iHale Milestone 1 Feedback

(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

Page 6: iHale Milestone 1 Feedback

(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.

Page 7: iHale Milestone 1 Feedback

(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

Page 8: iHale Milestone 1 Feedback

(8)

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

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

Page 9: iHale Milestone 1 Feedback

(9)

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

Solution:•Invest time into making useful logging output.

Page 10: iHale Milestone 1 Feedback

(10)

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

Solution:•Use XPath.

Page 11: iHale Milestone 1 Feedback

(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.

Page 12: iHale Milestone 1 Feedback

(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!

Page 13: iHale Milestone 1 Feedback

(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.

Page 14: iHale Milestone 1 Feedback

(14)

Issues you reported Problem:•Simulation values not realistic.

Solution:•Fix that during Milestone 2.

Page 15: iHale Milestone 1 Feedback

(15)

Milestone 2 Planning

Page 16: iHale Milestone 1 Feedback

(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

Page 17: iHale Milestone 1 Feedback

(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

Page 18: iHale Milestone 1 Feedback

(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.

Page 19: iHale Milestone 1 Feedback

(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

Page 20: iHale Milestone 1 Feedback

(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

Page 21: iHale Milestone 1 Feedback

(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

Page 22: iHale Milestone 1 Feedback

(22)

Schedule No programming until next week.

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