Integration and Final Testing Stage
The fourth and final design phase is the Integration and Final Testing Stage. This stage comprises of taking all of the smaller subsystems developed in phase three and integrating them into the final product to be delivered to the customer. The primary challenge of this phase is taking all of the individual, working components of the project and unifying them into one cohesive project, wherein all of the parts harmoniously work and interact with one another. Once all of the project's components have been integrated, a series of full scale testing occurs to ensure that the final product is working as intended. The final project is dealt with and resolved, as bugs arise. Once the the product passes a series of full scale testing and debugging, it is deemed suitable for the client and delivered.
Activities
- Integrated motion controls and graphical displays
- Developed mobile application to track accelerometer data
- Developed mobile application to track GPS location data
- Developed method to display data from mobile applications into the Unity project
- Prepared final presentation for Northern Arizona University UGRADS
- Developed poster for Northern Arizona University UGRADS symposium
Milestones
- Completed all motion integrated graphing controls. This includes:
- Scaling the Y-axis
- Scaling the X-axis
- Increasing/Decreasing the number of tick marks on each axis
- Toggling the grid marks on the graph on or off
- Resetting the graph to its original configuration
- Developed a mobile application to track accelerometer data
- The user is able to adjust the sensitivity of the accelerometer, as well as the sampling frequency
- The user sees the accelerometer as a ball that rolls around the screen, based on how the user tilts their phone
- Developed a method to track the above mentioned accelerometer data
- Users may choose to view:
- The accelerometer's X data over time
- The accelerometer's Y data over time
- The ball's traveled path (Y data vs X data)
- All above mentioned motion controls may be utilized on the presented graph
- Users may choose to view:
- Developed a mobile application to track GPS location data
- The user's latitude, longitude, and altitude is tracked every twenty seconds
- Developed a method to track the above mentioned GPS location data
- The user may choose to view:
- The user's altitude over time
- The user's traveled path (longitude vs. latitude)
- All above mentioned motion controls may be utilized on the presented graph
- The user may choose to view:
- Created two critical Northern Arizona University capstone deliverables:
- The final UGRADS presentation
- A poster for Northern Arizona University's UGRADS symposium
Tools
This stage utilized all tools that had previous been employed by the project. Specifically, it utilized Microsoft Office Tools (Word and PowerPoint for documentation and presentations), Google Services (Gmail and Google Drive for communication and collaboration), the Microsoft Kinect SDK (for motion tracking and gesture control), Unity Engine in C# (for creating the virtual environment), a Microsoft Kinect, an Oculus Rift Development Kit 2 Virtual Reality Headset, and a Computer. In addition to these, a Unity asset, Graph Maker by publisher Stuart S., was utilized for the in-project display of graphs and data.
This stage utilized all tools that had previous been employed by the project. Specifically, it utilized Microsoft Office Tools (Word and PowerPoint for documentation and presentations), Google Services (Gmail and Google Drive for communication and collaboration), the Microsoft Kinect SDK (for motion tracking and gesture control), Unity Engine in C# (for creating the virtual environment), a Microsoft Kinect, an Oculus Rift Development Kit 2 Virtual Reality Headset, and a Computer. In addition to these, a Unity asset, Graph Maker by publisher Stuart S., was utilized for the in-project display of graphs and data.
Design Decisions
As this is the fourth and final stage of the design process (the period of subsystem integration and full scale testing), this stage saw no design decisions being made. Essentially, the project is so late in its development period that there were no necessary design decisions that had to be made.
As this is the fourth and final stage of the design process (the period of subsystem integration and full scale testing), this stage saw no design decisions being made. Essentially, the project is so late in its development period that there were no necessary design decisions that had to be made.
Design Work
As with the previous "Design Decisions" section, the project was so far along in development that no simulations, analysis, or additional builds occurred that were not present, previously. Essentially, this stage was simply a matter of combining two separate components into one, full scale, functioning project.
As with the previous "Design Decisions" section, the project was so far along in development that no simulations, analysis, or additional builds occurred that were not present, previously. Essentially, this stage was simply a matter of combining two separate components into one, full scale, functioning project.
Testing
Due to the nature of this project, testing is done by broadly categorizing the tests into classifications before performing them. Whereas some projects may have incredibly specific tests (voltage measurement test, stress and strain test, etc.), because this project is heavily software oriented, with loosely defined outcomes, it is necessary to develop tests based on larger categorizations, as opposed to more specific details.
Motion Tracking and Graph Integration – John Miscevich
Perhaps one of the most substantive aspects of the project, the ability to use physical motions to manipulate graphical representations of data is absolutely critical, and will comprise of a majority of the project’s testing. As with all testing in a software based project, the sub tests of the integration testing were a continuous trial and error cycle of coding, running, and recoding. Testing was be done by coding various physical motions and manipulating the graph to match those motions. Some criteria examined during testing were: how intuitive is the physical motion, does the motion make sense paired with the action it is supposed to perform, does the physical motion alter the graph in the way that it is supposed to, is the gesture easily detectable to the Microsoft Kinect, among many more considerations. Once this vigorous cycle of testing was complete, the project was able to perform its desired function of modifying graphs via physical gestures.
Data Import Testing – Liam Burke
Once the graphs were able to be modified via physical controls, one of the more final steps of the project was ensuring that any desired data set can be imported into the project. Without the ability to import custom data, the project would have served little to no use. Thus, a mobile application was developed that would track the accelerometer data. A small ball would roll around the screen, in a path that was easily memorable and then that path was attempted to be pulled up in the graphing program. If the graph matched (or closely matched) the path that the ball took in the mobile app, it was known that the data import was successful. If the graph did not resemble the path traveled by the ball, it was known that the test was not successful, and the code was debugged before progressing onto the next stage.
Final, Full Scale Testing – John Miscevich
This final stage of testing was the full implementation of the entire project. It was a top down run of the project, beginning from the very first scene all the way through to the end. During this stage, both team members essentially tried to make the program crash in any way possible, so that they may resolve the issues they find. Any time a new problem was discovered, it was dealt with and retested. If no issues were found, it was deemed a successful run through. This stage of testing even included third party testers, so there was an outside perspective as to the layout and functionality of the program. The third party users were then prompted as to their general opinion of the program and possible critiques. The team will then took these suggestions into consideration and decide whether or not to implement them or not.
Due to the nature of this project, testing is done by broadly categorizing the tests into classifications before performing them. Whereas some projects may have incredibly specific tests (voltage measurement test, stress and strain test, etc.), because this project is heavily software oriented, with loosely defined outcomes, it is necessary to develop tests based on larger categorizations, as opposed to more specific details.
Motion Tracking and Graph Integration – John Miscevich
Perhaps one of the most substantive aspects of the project, the ability to use physical motions to manipulate graphical representations of data is absolutely critical, and will comprise of a majority of the project’s testing. As with all testing in a software based project, the sub tests of the integration testing were a continuous trial and error cycle of coding, running, and recoding. Testing was be done by coding various physical motions and manipulating the graph to match those motions. Some criteria examined during testing were: how intuitive is the physical motion, does the motion make sense paired with the action it is supposed to perform, does the physical motion alter the graph in the way that it is supposed to, is the gesture easily detectable to the Microsoft Kinect, among many more considerations. Once this vigorous cycle of testing was complete, the project was able to perform its desired function of modifying graphs via physical gestures.
Data Import Testing – Liam Burke
Once the graphs were able to be modified via physical controls, one of the more final steps of the project was ensuring that any desired data set can be imported into the project. Without the ability to import custom data, the project would have served little to no use. Thus, a mobile application was developed that would track the accelerometer data. A small ball would roll around the screen, in a path that was easily memorable and then that path was attempted to be pulled up in the graphing program. If the graph matched (or closely matched) the path that the ball took in the mobile app, it was known that the data import was successful. If the graph did not resemble the path traveled by the ball, it was known that the test was not successful, and the code was debugged before progressing onto the next stage.
Final, Full Scale Testing – John Miscevich
This final stage of testing was the full implementation of the entire project. It was a top down run of the project, beginning from the very first scene all the way through to the end. During this stage, both team members essentially tried to make the program crash in any way possible, so that they may resolve the issues they find. Any time a new problem was discovered, it was dealt with and retested. If no issues were found, it was deemed a successful run through. This stage of testing even included third party testers, so there was an outside perspective as to the layout and functionality of the program. The third party users were then prompted as to their general opinion of the program and possible critiques. The team will then took these suggestions into consideration and decide whether or not to implement them or not.
Challenges
In general, this phase of the project was not too challenging. Fortunately, the motion controls and the virtual world seemed to integrate together rather seamlessly. Although there were the traditional minor bugs and issues with the project here and there, there were no large, blaring, substantial issues or challenges that could not be overcome. Overall, this entire phase of the design process (and thus the entire project) proved to be successful.
In general, this phase of the project was not too challenging. Fortunately, the motion controls and the virtual world seemed to integrate together rather seamlessly. Although there were the traditional minor bugs and issues with the project here and there, there were no large, blaring, substantial issues or challenges that could not be overcome. Overall, this entire phase of the design process (and thus the entire project) proved to be successful.