- A History of Increasing Complexity
- Mechatronic System Organization
- Amplifiers and Isolation
- Scope: The Unit Machine
- Control
- Real-Time Software
- Nasty Software Properties
- Engineering Design and Computational Performance
- Control System Organization
- Software Portability
- Operator Interface
- Multicomputer Systems: Communication
- The Design and Implementation Process
1.10 Software Portability
In mechanical system control, portability has consequences both for product lifetime and for the design/development cycle. The mechanical part of the system can have a commercial lifetime of anywhere from 5 to 20 years. On the other hand, the computational technology used for its control has a lifetime of only 3 to 5 years. To remain competitive, new versions of the product need to use new computers to take advantage of ever-increasing computational capability. Doing this effectively requires software that can easily be "ported" from the original target processor to new ones.
The need for software portability seriously affects the design/implementation cycle as well. Early stages of the software tend to be simulations, done to test hypotheses and to substitute for hardware not yet built. Later stages use laboratory prototypes, then pilot prototypes, then, finally, the actual production system. If software can't easily be migrated from each step to the next in this process, the whole process can become greatly elongated as new software must be created for each step, and there are significant possibilities for introducing new bugs at each stage.
Portability is complicated by real-time constraints. If real-time software environments (such as real-time kernels, schedulers, and operating systems) are used as aids in meeting those constraints, software written for one environment can require substantial rewriting to run in another. Crossing the full spectrum from simulation to production traverses environments in which program structure itself is incompatible. The methodology proposed in this book provides a layer of abstraction one level higher than the real-time environments and thus offers a means of bypassing these incompatibility problems.