SlideShare a Scribd company logo
1 of 22
Milestone 1 ReviewMilestone 2 Planning Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii
Milestone 1 Review
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
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.
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
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.
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
Issues you reported Problem: Testing with/without other components Solution: Make system configurable to support testing both in isolation and with other components.
Issues you reported Problem: Console output is a mess. Solution: Invest time into making useful logging output.
Issues you reported Problem: Too many if statements when parsing the XML. Solution: Use XPath.
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.
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!
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.
Issues you reported Problem: Simulation values not realistic. Solution: Fix that during Milestone 2.
Milestone 2 Planning
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
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
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.
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
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
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
Schedule No programming until next week. Front-End team: Read Wicket in Action. See ProjectBrowser screencast.

More Related Content

What's hot

Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Andreas Grabner
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
Application compatibility final
Application compatibility finalApplication compatibility final
Application compatibility finalHarold Wong
 
An Introduction To Software Development - Final Review
An Introduction To Software Development - Final ReviewAn Introduction To Software Development - Final Review
An Introduction To Software Development - Final ReviewBlue Elephant Consulting
 
Justin Ison
Justin IsonJustin Ison
Justin IsonCodeFest
 
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanSustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanQA or the Highway
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Trisha Gee
 
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»GoQA
 
Yelp Tech Talks: Mobile Testing 1, 2, 3
Yelp Tech Talks: Mobile Testing 1, 2, 3Yelp Tech Talks: Mobile Testing 1, 2, 3
Yelp Tech Talks: Mobile Testing 1, 2, 3Yelp Engineering
 
Continuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestContinuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestShawn Jones
 
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechTest Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechQA InfoTech
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzQA or the Highway
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackJAXLondon_Conference
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentShawn Jones
 
Continuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueContinuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueTechWell
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated TestsTrisha Gee
 

What's hot (20)

Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Application compatibility final
Application compatibility finalApplication compatibility final
Application compatibility final
 
An Introduction To Software Development - Final Review
An Introduction To Software Development - Final ReviewAn Introduction To Software Development - Final Review
An Introduction To Software Development - Final Review
 
Tdd
TddTdd
Tdd
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanSustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey Shannahan
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?
 
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
 
Yelp Tech Talks: Mobile Testing 1, 2, 3
Yelp Tech Talks: Mobile Testing 1, 2, 3Yelp Tech Talks: Mobile Testing 1, 2, 3
Yelp Tech Talks: Mobile Testing 1, 2, 3
 
Continuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestContinuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonest
 
Chapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CIChapter 3 Reducing Risks Using CI
Chapter 3 Reducing Risks Using CI
 
Humans by the hundred
Humans by the hundredHumans by the hundred
Humans by the hundred
 
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTechTest Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
Test Automation - Insights Into Frameworks by Anup Patnaik, QA InfoTech
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
Using Extended Events
Using Extended EventsUsing Extended Events
Using Extended Events
 
Continuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueContinuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the Rescue
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated Tests
 

Viewers also liked

Structure system analysis and design method -SSADM
Structure system analysis and design method -SSADMStructure system analysis and design method -SSADM
Structure system analysis and design method -SSADMFLYMAN TECHNOLOGY LIMITED
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesRandy Connolly
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologieselvinefendi
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introductionDr. Loganathan R
 
Planning Poker estimating technique
Planning Poker estimating techniquePlanning Poker estimating technique
Planning Poker estimating techniqueSuhail Jamaldeen
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesNesrine Shokry
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologiesguy_davis
 
Scrum Software Development Methodology
Scrum Software Development MethodologyScrum Software Development Methodology
Scrum Software Development MethodologySuhail Jamaldeen
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile MethodologyHaresh Karkar
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development processRiant Soft
 

Viewers also liked (11)

Structure system analysis and design method -SSADM
Structure system analysis and design method -SSADMStructure system analysis and design method -SSADM
Structure system analysis and design method -SSADM
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development Methodologies
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introduction
 
Planning Poker estimating technique
Planning Poker estimating techniquePlanning Poker estimating technique
Planning Poker estimating technique
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Scrum Software Development Methodology
Scrum Software Development MethodologyScrum Software Development Methodology
Scrum Software Development Methodology
 
Overview of Agile Methodology
Overview of Agile MethodologyOverview of Agile Methodology
Overview of Agile Methodology
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development process
 

Similar to iHale Milestone 1 Feedback

Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programsgreenwop
 
Developers Border Line: Unit Testing
Developers Border Line: Unit TestingDevelopers Border Line: Unit Testing
Developers Border Line: Unit TestingSikandar Ahmed
 
Top-10-Java-Performance-Problems.pdf
Top-10-Java-Performance-Problems.pdfTop-10-Java-Performance-Problems.pdf
Top-10-Java-Performance-Problems.pdfKiranChinnagangannag
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Applitools
 
Reporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons LearnedReporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons LearnedPeter Sabev
 
Agile analysis development
Agile analysis developmentAgile analysis development
Agile analysis developmentsetitesuk
 
Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questionsBABAR MANZAR
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presentedVijayan Reddy
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's viewLaurynas Biveinis
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web ApplicationMichael Choi
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads ConferenceIndicThreads
 
Usability Test Results Xtext New Project Wizard
Usability Test Results Xtext New Project WizardUsability Test Results Xtext New Project Wizard
Usability Test Results Xtext New Project WizardSandra Schering
 
Gatling - Bordeaux JUG
Gatling - Bordeaux JUGGatling - Bordeaux JUG
Gatling - Bordeaux JUGslandelle
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmerLeylimYaln
 

Similar to iHale Milestone 1 Feedback (20)

Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
 
Developers Border Line: Unit Testing
Developers Border Line: Unit TestingDevelopers Border Line: Unit Testing
Developers Border Line: Unit Testing
 
Top-10-Java-Performance-Problems.pdf
Top-10-Java-Performance-Problems.pdfTop-10-Java-Performance-Problems.pdf
Top-10-Java-Performance-Problems.pdf
 
01.intro
01.intro01.intro
01.intro
 
midterm_fa08.pdf
midterm_fa08.pdfmidterm_fa08.pdf
midterm_fa08.pdf
 
Sporar
SporarSporar
Sporar
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
Reporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons LearnedReporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons Learned
 
Agile analysis development
Agile analysis developmentAgile analysis development
Agile analysis development
 
midterm_fa07.pdf
midterm_fa07.pdfmidterm_fa07.pdf
midterm_fa07.pdf
 
Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questions
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's view
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads Conference
 
Usability Test Results Xtext New Project Wizard
Usability Test Results Xtext New Project WizardUsability Test Results Xtext New Project Wizard
Usability Test Results Xtext New Project Wizard
 
Why test with flex unit
Why test with flex unitWhy test with flex unit
Why test with flex unit
 
Resume
ResumeResume
Resume
 
Gatling - Bordeaux JUG
Gatling - Bordeaux JUGGatling - Bordeaux JUG
Gatling - Bordeaux JUG
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmer
 

More from Philip Johnson

Kukui Cup 2012 Energy Data
Kukui Cup 2012 Energy DataKukui Cup 2012 Energy Data
Kukui Cup 2012 Energy DataPhilip Johnson
 
Introduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart GridIntroduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart GridPhilip Johnson
 
Kukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February MeetingKukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February MeetingPhilip Johnson
 
How to plan a Kukui Cup
How to plan a Kukui CupHow to plan a Kukui Cup
How to plan a Kukui CupPhilip Johnson
 
Honors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-JohnsonHonors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-JohnsonPhilip Johnson
 
Introduction to Issue Driven Project Management
Introduction to Issue Driven Project ManagementIntroduction to Issue Driven Project Management
Introduction to Issue Driven Project ManagementPhilip Johnson
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integrationPhilip Johnson
 
Introduction to WattDepot
Introduction to WattDepotIntroduction to WattDepot
Introduction to WattDepotPhilip Johnson
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingPhilip Johnson
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementPhilip Johnson
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testingPhilip Johnson
 
Introduction to automated quality assurance
Introduction to automated quality assuranceIntroduction to automated quality assurance
Introduction to automated quality assurancePhilip Johnson
 
Introduction to Software Build Technology
Introduction to Software Build TechnologyIntroduction to Software Build Technology
Introduction to Software Build TechnologyPhilip Johnson
 
Introduction to Software Review
Introduction to Software ReviewIntroduction to Software Review
Introduction to Software ReviewPhilip Johnson
 
Introduction to Robocode
Introduction to RobocodeIntroduction to Robocode
Introduction to RobocodePhilip Johnson
 
Interactive Development Environments
Interactive Development EnvironmentsInteractive Development Environments
Interactive Development EnvironmentsPhilip Johnson
 
Introduction to Intermediate Java
Introduction to Intermediate JavaIntroduction to Intermediate Java
Introduction to Intermediate JavaPhilip Johnson
 
iHale Milestone 2 Kickoff
iHale Milestone 2 KickoffiHale Milestone 2 Kickoff
iHale Milestone 2 KickoffPhilip Johnson
 

More from Philip Johnson (20)

Kukui Cup 2012 Energy Data
Kukui Cup 2012 Energy DataKukui Cup 2012 Energy Data
Kukui Cup 2012 Energy Data
 
Introduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart GridIntroduction to ICS 691: Software Engineering for the Smart Grid
Introduction to ICS 691: Software Engineering for the Smart Grid
 
Kukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February MeetingKukui Cup 2012 Organizing Committee February Meeting
Kukui Cup 2012 Organizing Committee February Meeting
 
How to plan a Kukui Cup
How to plan a Kukui CupHow to plan a Kukui Cup
How to plan a Kukui Cup
 
Honors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-JohnsonHonors thesis overview: Katie Amberg-Johnson
Honors thesis overview: Katie Amberg-Johnson
 
Introduction to Issue Driven Project Management
Introduction to Issue Driven Project ManagementIntroduction to Issue Driven Project Management
Introduction to Issue Driven Project Management
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integration
 
Introduction to WattDepot
Introduction to WattDepotIntroduction to WattDepot
Introduction to WattDepot
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project Hosting
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
 
Introduction to automated quality assurance
Introduction to automated quality assuranceIntroduction to automated quality assurance
Introduction to automated quality assurance
 
Introduction to Software Build Technology
Introduction to Software Build TechnologyIntroduction to Software Build Technology
Introduction to Software Build Technology
 
Introduction to Software Review
Introduction to Software ReviewIntroduction to Software Review
Introduction to Software Review
 
Introduction to Robocode
Introduction to RobocodeIntroduction to Robocode
Introduction to Robocode
 
Codings Standards
Codings StandardsCodings Standards
Codings Standards
 
Interactive Development Environments
Interactive Development EnvironmentsInteractive Development Environments
Interactive Development Environments
 
Introduction to Intermediate Java
Introduction to Intermediate JavaIntroduction to Intermediate Java
Introduction to Intermediate Java
 
Professional Persona
Professional PersonaProfessional Persona
Professional Persona
 
iHale Milestone 2 Kickoff
iHale Milestone 2 KickoffiHale Milestone 2 Kickoff
iHale Milestone 2 Kickoff
 

Recently uploaded

Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...M56BOOKSTORE PRODUCT/SERVICE
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfadityarao40181
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 

Recently uploaded (20)

Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdf
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 

iHale Milestone 1 Feedback

  • 1. Milestone 1 ReviewMilestone 2 Planning Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii
  • 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.
  • 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.