Embedded UML Target Debugger
Even software modeled in UML isn’t always free from errors. Therefore, debugging remains one of the key tasks in software development. In the context of so-called embedded systems, the hardware used is often proprietary, and some of the errors probably occur only when the software is executed on this hardware. In addition, many embedded systems have to manage limited hardware resources (e.g. memory). When debugging with conventional CASE tools, it is possible to execute the code generated from the model and to animate the model simultaneously. The program behavior can thus be monitored at model level. To this end, run-time information has to be generated on the target system and transmitted to the development PC which is usually handled through so-called code instrumentation. However, there is a major disadvantage to this approach. The code to be executed is unnecessarily loaded with overhead which considerably slows down the actual run-time. A debugging solution is now available that is compatible with Embedded UML Studio™ and based on a monitor like conventional embedded high-level language debuggers. It offers the benefit of real-time debugging with minimum overhead at UML model level.
UML Target Debugging
One advantage of MDD (Model Driven Development) is that models can be tested and debugged at an early stage, usually based on simulation. According to experience, this method helps to identify numerous errors in early process phases. In many cases, however, errors occur later when the code generated from the model is executed on the actual hardware.
Another disadvantage of simulation is the need to provide all external interfaces required for the simulation procedure which can be quite laborious. With the UML Target Debugger™, the model can now also be executed on the actual hardware. All required run-time information is provided through a monitor at model level. Thus, animation takes place at model level in parallel to model execution.
In addition, information can be transferred from the development PC to the target system, so that UML based tests can be automated on real hardware, e.g. with TestConductor.