6 Links to Internet of Things, Tools, Source Control and testing

As with most things software, source control is critically important.  First of all, do you start with UML in your design environment, what source control do you use?  Or do you go straight to code and get the source code straightened out later?  What if you are using the Arduino IDE?  Can you use Visual Studio?

Ok, first off, you need to get started somehow.  If you are strictly an Apple or Linux user, please continue to read as Source Control at Microsoft supports any developer using the Visual Studio Online.  If you are a Windows developer, well, you know the drill, you can use Eclipse, Visual Studio, and so forth to do your work, Windows is pretty open to anyone, and Microsoft has well integrated tools.

  1. For Arduino builders:
    • Visual Micro is an excellent tool,  which can be found at: https://visualmicro.codeplex.com/ and this tool programs the Arduino better than the Arduino IDE from Arduino.cc.  And I mean the actual programming of the device, not the code, the code is the same..
    • How will this help you?  
      • I use Visual Micro as I can also easily use the Visual Studio Online tools for source control, project tracking, collaboration and to some degree testing, although the Arduino technology does suffer from the difficulty of test planning and implementation of testing with large scale or even small scale applications.  There are solutions for the testing by adding headers that you might find out on the web.
    • What does this have to do with the Internet of Things?
      • It’s a tool that is integrated with the Visual Studio tool/IDE
  2. Testing, Project management and source control  using Visual Studio Online:
    • This is more complex, but the process does cover what a test plan is and how to implement it.  There are other links that you might want to review as well, you will see them at the link shown above.
    • How will this help you?  
      • This will show you the items that you might use later in your work, if you wait to see what the end goal is, you might lose your way, testing is very important for software.
    • What does this do with the Internet of Things?
      • Since sensors will likely be built once dropped into an environment by the hundreds, they will be expensive to upgrade, so testing in the sensor as well as the tools to read your sensors will need to be tested as the environment changes.
  3. N-Unit Test:
    • This certainly could have been read first and shows how to implement NUnit test using Visual Studio
    • How will this help you?
      • You gain terms and the web site is used in many classes in college when they briefly cover N-Unit tests
    • What does this have to do with the Internet of Things? 
      • This will show you how to test your UI or data analysis tools that you will use to get money to survive from once your Internet of Things is implemented and shipped.  Once those sensors are in place, you either have to make more sensors, a good thing, or you make your money off of the data analysis and use of the sensor data.
  4. Agile Planning & https://bit.ly/videoagile
    • Software development is expen$ive, people who haven’t studied software development will need to understand what you are doing in a structured manner.  Software developers will need to know what has priority, money people need to know how much more money is needed to finish the job.  Everyone needs a way to discuss what is going on with the project.
    • How will this help you?
      • If you are creating sensors, sensors will usually live in a greater ecology of software, the use of Agile software or similar will be used by most management, these are sometimes “tool chains”.  This is the Microsoft approach and is highly integrated with the development tool.  Not everyone likes that, they have other tools that they might use that are open source or from other companies, but knowing how one Agile Planning system works will help you in understanding how other systems work without doing the full integration.
    • What does this have to do with the Internet of Things? 
      • Sensors usually don’t exist without support or requirements for storage, data presentation and calculations.
  5. Using Git with Visual Studio 2013 Jump Start:
    • Which source control do you pick? How to use GIT with Visual Studio and other cool stuff which also works for Arduino development
    • How will this help you?
      • Again creating sensors is not going to vary a great deal, you might need to sense a magnetic field, motion, light, temperature, voltage, humidity, etc.  For instance if you are creating sensors to measure the production of beer, then temperature and humidity are going to be a big deal.  But if you are testing the Theory of Relativity using the Lorentz Transforms, then you will need to be able to test magnetic fields and do some interesting calculations.
    • What does this have to do with the Internet of Things?
      • Sensors for a particular technology don’t vary much.  For example, the Linear Variable Displacement Transducers (LVDTs) were the major sensor used in complex aircraft to determine surface movements like the ailerons and can measure movements as small as a few micrometers (or millionth of an inch for the US).  The LVDTs can be used directly with instrumentation with no computation system.  The point here is that LVDTs have been used for decades with little or no modifications, and your successful sensors will do the same.  Git or other version control will make you more efficient and better paid (not to mention better looking).
  6. Arduino N-Unit Testing:
    • The library for n-unit testing, the Arduino.h can be downloaded from the link.  This is a way for you do some simple testing for you sensors.
    • How will this help you? 
      • As the Internet of Things becomes more interesting to the world at large as the number of sensors increases, be able to test software prior to shipping is important, using n-unit test helps you use tools and practices from other technologies with the Arduino devices.
    • What does this have to do with the Internet of Things?
      • When you do design and implement the design of sensors, you will need to have repeatability of your code.  It is important to practice testing in all of your code development, along with all of the complexity of your software development, here is another one.  Write some code, then write some test code.