iHale Milestone 1 Feedback


Published on

Feedback on iHale Milestone 1

Published in: Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

iHale Milestone 1 Feedback

  1. 1. Milestone 1 ReviewMilestone 2 Planning<br />Philip Johnson<br />Collaborative Software Development Laboratory<br />Information and Computer Sciences<br />University of Hawaii<br />
  2. 2. Milestone 1 Review<br />
  3. 3. Overall impression<br />It works! (Kind of.)<br />20 min video of M1 released yesterday<br />Almost 50 views as of today<br />Generated lots of discussion in SD<br />Dudes, hit the "Like" button!<br />Next steps:<br />Improve quality of existing code base<br />Implement more functionality<br />Remain open to change<br />
  4. 4. Overall reactions to your projects<br />Some relatively minor problems:<br />project names, javadocs, release num<br />Some relatively major problems:<br />No package-level design<br />JUnit not running successfully<br />Low coverage, poor testing<br />Quality has been sacrificed for "getting it to work"; this has to change. <br />Also, you need to become more aware of what quality actually is.<br />
  5. 5. Issues you reported<br />Problem: <br />Strings for field names are brittle<br />"pH" vs. "PH" etc.<br />Solution: <br />use Java enumerated types mechanism<br />encode Data Dictionary as a class into API <br />
  6. 6. Issues you reported<br />Problem:<br />Listeners are not smart. They add data even if the data hasn't changed.<br />Solution:<br />Make the listeners smart. Cache the last System State entry and do comparison.<br />
  7. 7. Issues you reported<br />Problem:<br />SystemStateEntry map can generate null pointer exception if key not present.<br />Solution:<br />Some combination of:<br />Strings -> Enumerated types<br />throw Exceptions if not found<br />better default return values<br />
  8. 8. Issues you reported<br />Problem:<br />Testing with/without other components<br />Solution:<br />Make system configurable to support testing both in isolation and with other components. <br />
  9. 9. Issues you reported<br />Problem:<br />Console output is a mess.<br />Solution:<br />Invest time into making useful logging output.<br />
  10. 10. Issues you reported<br />Problem:<br />Too many if statements when parsing the XML.<br />Solution:<br />Use XPath.<br />
  11. 11. Issues you reported<br />Problem:<br />Data validity checking. User can type in anything (or devices can return anything) even if it's garbage.<br />Solution:<br />Practice defensive programming.<br />If a value is invalid, discard it but log a message regarding the invalid data.<br />
  12. 12. Issues you reported<br />Problem:<br />Programming to an API (Java or HTTP)_ is a pain. I wish we didn't have them.<br />Can't we have just one system, not 3?<br />Solution:<br />The cure is worse than the disease.<br />Establishing an API is the proven way to allow systems to scale.<br />Having 14 students work on the same system simultaneously without any APIs would be chaos.<br />That said, the current APIs are not perfect. Improve them!<br />
  13. 13. Issues you reported<br />Problem:<br />No user permissions, roles, security.<br />Solution:<br />We can implement simple roles and security later, if time permits. Lack of security will not cost the team points during the competition.<br />
  14. 14. Issues you reported<br />Problem:<br />Simulation values not realistic.<br />Solution:<br />Fix that during Milestone 2.<br />
  15. 15. Milestone 2 Planning<br />
  16. 16. M2: Three Teams, Not Six<br />Due to classmates dropping out, we will consolidate to three teams.<br />Front-End:<br />Kinsey, Hung, Hughes, Teichman, Tabucol, Leong<br />Backend:<br />Gaskell, Burgess, Cera, Ikehara<br />House Sim:<br />Ramelb, Nguyen, Lin, Dorman<br />
  17. 17. M2: Java & REST API<br />Java API:<br />I will develop a revised version of the Java API for release next Tuesday.<br />I will take into account your suggestions.<br />REST API:<br />Will be enhanced to support communication with Tablets, Kinect<br />
  18. 18. M2: Quality Assurance<br />JUnit + Jacoco:<br />More effort needs to be placed on testing going forward.<br />Logging:<br />Front-End, Back-End, Sim all need high quality, useful logging output.<br />Delete the logging you don't need!<br />Front end should display logging.<br />JavaDocs:<br />JavaDocs must be improved.<br />Error handling:<br />Check data for validity; discard and log if appropriate.<br />
  19. 19. M2: Functionality<br />Front-End:<br />Hide pages that aren't implemented.<br />Improve functionality substantially.<br />Ajax not critical, but try it if you want.<br />Learn more about wicket! <br />Read book (again).<br />See my screencast on ProjectBrowser<br />
  20. 20. M2 Functionality<br />Backend:<br />Improve structure of code.<br />Improve error handling, validity checking, logging.<br />Support new REST API additions.<br />Support "startup" data initialization in .iHale directory<br />
  21. 21. M2 Functionality<br />House simulator:<br />Clean up code.<br />Make simulation more realistic.<br />Support simulation of Kinect, Tablet REST API.<br />Support "startup" data initialization in .iHale directory<br />
  22. 22. Schedule<br />No programming until next week.<br />Front-End team:<br />Read Wicket in Action.<br />See ProjectBrowser screencast. <br />