|Most people these days
have a general understanding of what software is. The spread sheet program you use is software and so is the
calendar program. The various Windows and Mac OS versions are
examples of software. Your computer behaves differently depending on what software is running.
Those little apps you have on your phone are software. Software is written in a language. Common software languages include Java, C,
C++, C# and HTML.
Robotics software and machine software also needs to be fast. A second is
a reasonable amount of time to wait for a word processing program, but a second could be forever in robotics software or machine software. The times for
robotics software or machine software are often measured in milliseconds or microseconds. The time also needs to be predictable. You know how sometimes your computer freezes for a few seconds while the operating system goes out on the internet to update something? That is unacceptable for machine software.
Properly written machine software follows clear design and development methodologies. There are a number of techniques available. At least one of them should be chosen and followed with the appropriate artifacts being generated. Similarly
machine software project management should follow one of the accepted project management strategies, again producing the proper artifacts.
Machine software runs on many
different computing platforms. Occasionally it will run on a
personal computer, but that is pretty rare. For machines running in
a manufacturing environment, it is very common for the software to
run on a programmable logic controller, or PLC. Another common place
to find machine software is in embedded systems. These devices have
specialized processors and the software is very often specialized
for the type of processor in that device. A good example of this is
the software that runs within downhole drilling tools in the oil
and gas industry.