SOFTWARE ENGINEERING IN MECHATRONICS
Software engineering is concerned with both the final mechatronic “product” and the mechatronic development process.
Two basic approaches are used with process, with many variations upon these approaches. One is called the “waterfall” method, where the process moves (falls) from one phase to another (e.g., analysis to design) with checkpoints along the way. The other method, the “spiral” approach, is often used when the requirements are not as well fixed. In this method there is prototyping, where the customers and/or systems engineers refine requirements as more information about the system becomes known.
In either approach, once the requirements for the software portion of the mechatronic system are documented, the software engineers should further partition functionality as part of software design. Metrics as to development time, development cost, memory usage, and throughput should also be projected and recorded.
Perhaps the most important part of the software design for a mechatronic system can be seen from the hierarchy Ranging from requirements at the top to hardware at the bottom, this layering serves several purposes. The most important is that it separates mechatronic functionality from implementation.
Quite simply, an upper layer should not be concerned with how a lower layer is actually performing a task. Each layer instead is directed by the layer above and receives a service or status from a layer below it. To cross more than one layer boundary is bad technique and can cause problems later in the process.
Remember that this process abstraction is quite useful, for a mechatronic system has mechanical, electrical, and software parts all in concurrent development. A change in a sensor or actuator interface should only require a change at the layer immediately above, the driver layer.
There is one last reason for using a hierarchical model such as this. In the current business climate, it is unlikely that the people working at the various layers will be collocated. Instead, it is not uncommon for development to be taking place in multiple locations in multiple countries.