Software Source Code Review Expert

Software Source Code Review

A software source code review expert typically engages in three different types of litigation. The first is litigation involving intellectual property cases, the second is in products liability cases, and finally in contracts disputes. In intellectual property cases the software source code review can help determine whether or not a system or device is practicing claimed elements of a patent. Also in intellectual property cases, the software source code review expert can determine whether software source code has been copied or stolen. In products liability cases the software source code review expert can determine whether or not software source code has been copied or stolen. In contracts disputes the software source code review can help determine whether or not the terms of a contract have been breached.

For code that controls machines and devices we can generally divide the software into embedded software and automation software. As the name implies embedded systems have computing elements completely embedded in the device, typically with no interface that would usually be associated with a computer. A modern drilling tool is a good example of an embedded device where the software is downloaded into the tool. A digital camera is another example of a device with embedded software. The computing languages C, C++, VHDL and sometimes assembly language are often found in embedded systems.

The software found in automation systems further subdivides into higher-level software that choreographs general activities in the factory and lower-level software the controls the activities of individual machines. The higher level software is often called factory automation software or Supervisory Control And Data Acquisition (SCADA) software and it typically runs on a personal computer or server. The computing languages C, C++ and sometimes Visual Basic are often found in factory automation and SCADA systems. When browsers are employed as a user interface in these systems, we might find many other computing languages including HTML, XML, Java Script, ASP, and ASP.net.

The lower-level source code that controls the activities of individual machines sometimes runs on a personal computer, but much more often it will run on a Programmable Logic Controller, or PLC. A PLC contains computing elements very much like the desktop computer you use every day. It is "hardened" for the factory environment but has a microprocessor, non-volatile memory and perhaps network connections. The parts of the PLC that are quite different from the typical desktop computer are the input and output modules. These modules allow the PLC to communicate with the machine. The PLC is programmed with software source code, but the languages used are typically specialized for use with PLCs. These software languages are the five IEC standard programming languages: structured text, function block diagram, ladder diagram, instruction list and sequential function chart.

I have extensive experience with all of the software source code languages discussed above for programming machines and can support your litigation efforts in that regards as a software source code review expert. My qualifications include peer-reviewed publications and over thirty years of engineering experience with software, robotics, instrumentation, medical devices, computer-controlled machines and factory automation. 

I accept a small number of litigation support engagements to complement my regular employment as a professional engineer designing machine control software.


Learn about Software, Robotics and Computer Controlled Machines

Manufacturing Software Robot & Machine Kinematics Motion Control
Process Control Machine Control Software Medical Robotics
Instrumentation Factory Automation Electro-Mechanical Engineering
Robotics Software Industrial Accidents Automatic Guided Vehicle
Programmable Logic Controller Machine Safety Automatic Test Equipment
Machine Control Ladder Logic Software

© copyright SafeMachines, PLLC all rights reserved