Automation and Robotics Expert Witness
Expert Witness Curriculum Vitae Fee Schedule Resources
Dr. Hooper provides litigation support as an expert witness. Machine software and control software are in his primary area of specialization. Please see our home page for more information.

 

Machine Software

You probably have an intuitive understanding of what software is. The word processing program you use is software and so is the email program. The operating system (likely Windows, but maybe Macintosh OS) of your computer is software. Your computer behaves differently depending on what software is running. Software is written in a language. Common software languages include Java, C, Fortran and Visual Basic.

The term software as used to describe computer programs dates back to the 1950's and first appeared in an article by Princeton University statistics professor John W. Tukey in the 1958 January American Mathematical Monthly. They called it software to differentiate it from hardware. Software was written in a language and could be easily changed. Change around the words on the page and you change the software. You could change the machine software ten times a day. Machine hardware, on the other hand, involved wires, solder and the like. Changing machine hardware meant new wires, new circuit boards and waiting days if not weeks. In 1958 software must have seemed like the miracle solution.

Fast forward almost fifty years and many engineers and computer scientists (including myself) have come to believe that software's ease of change may have been more of a curse than a blessing. Easy changes led to lazy design. The attitude of many programmers was (and with some still is), "I'll just whip something out and if it does not work I'll change it." This has led to very many machine software systems that are extremely fragile in the face of changes. Even very small changes can have unpredictable side-effects. In some industries it is not uncommon for hardware engineers to design around existing machine software so that they do not need to change the 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 software project management should follow one of the accepted project management strategies, again producing the proper artifacts.

 
Learn about Computers, Machines and Robotics
Robots and Robotics Robot Kinematics 3D Animation
Programmable Logic Controller Machine Software Product Liability
Process Control Factory Automation Motion Control
Instrumentation Industrial Accidents Electrical Engineer
Computer Controlled Machines Machine Safety Machine Accident

 
richard.hooper@safemachines.com Austin, Texas (512) 699-6487