Robot Raccoon image Home Git Cozmo Visual Studio VS Code Qt Python Resources About

Software Development Setup Tutorials and Tools

Some basic setup and usage info for programming tools

Generic Development Information

Information pertinent to all development goes here.

Operating System Compatibility

We have two primary types of software systems: embedded systems and user-interfacing systems. These, obviously, will have different compatibility expectations and development environments. The information below is relevant for all new development, and re-development as required for legacy systems.

Embedded Development

Each embedded system has its own development environment, and thus requirements specific to it. However, the following generic expectations are in effect:

  • Build: The final release build and flash to the embedded system must be completed on a Windows 10 machine, and the build requirements and instructions properly and completely documented and stored with the source code.
  • Developer Testing: Must use the anticipated deployment environment.
  • User Testing: Must use the anticipated deployment environment.

User Interfacing Development

User interfaces should use the standards of the intended operating system (i.e. cancel buttons to the far right on modals in Windows vs OK button on the far right in Mac)

Generic Testing Expectations

While each system is anticipated to have specific test requirements, the vast majority of software has a level of basic, low leveling testing, that should be performed by the developer prior to starting user testing.

  1. Confirm the system cleanly and safely handles sudden loss of power. (Intended primarily for embedded systems, but a good practice on computers)
  2. Confirm the system cleanly and safely handles sudden loss of network connection/external communication. (For user systems: It does not crash. For embedded systems: No runaway robots)
  3. Confirm the About text is actual informative (version number, website link, etc)
  4. Confirm that any Help button lists information that is actually helpful to the user. Either the OI, a quickstart guide, or troubleshooting information, as appropriate.
  5. Confirm there are hover tool tip descriptions to provide user clarity in the application.
  6. Confirm all user interactable objects either function correctly, are disabled, or provide clean exception handling in all possible software states.

Link Information