The UML Connection: UML has tackled tough problems for years. It simulates everything from business processes to CPU/DSP environments. Major UML products like I-Logix's Rhapsody, Rational's Rose Realtime, and Telelogic's Tau take UML one step further by generating executable applications from UML specifications. This is what Bruce Powell Douglass, I-Logix's chief evangelist, calls "semantic depth." It allows applications to be tested as UML models, which can then be converted to C, C++, or Java code.
UML products can generate different code for different parts of the target hardware. This is significant because a DSP usually requires C or C++. But the bulk of an application that runs on the CPU may be running Java. There could even be device-specific features written in C or C++. Moving parts of an application from one language to another under UML is simply a matter of making a few choices. Converting source code by hand can take days or weeks.
The one caveat for DSP development with these tools is that DSP-specific frameworks aren't part of any of the products. Rather, UML models are targeted at a platform-independent model (PIM). Once a target is chosen, a platform-specific model (PSM) can be created. The tools then generate code based on the PIM-to-PSM translation.
Luckily, the time to generate the necessary PSM support is measured in weeks. Modify the hardware design, switch DSPs, or split a portion of an application across processors, and it's normally a matter of just regenerating code. Matthew Graney, director of tech marketing at Telelogic, says that this ability to partition a system in different ways has allowed developers to check out hardware designs prior to their implementation to see if they meet the application's needs.
UML may be overkill for very simple CPU/DSP applications, especially for platforms like TI's OMAP where DSP algorithms are purchased. However, UML provides significant benefits on even medium-size projects in such areas as testing and architecture management. UML product integration with development tools like CCS and MatLab make trying UML an easier choice because it works with tools that developers would have to use anyway.
UML lends itself to building and managing test cases as part of the development process. This should be done with any type of development process, but it's often lacking in conventional development environments because it can't be easily managed.
Rational's Quality Architect Realtime, part of the company's Rose Realtime product, formalizes model-oriented testing. Test Realtime works with the UML tools, bringing more conventional code analysis and testing procedures to the mix.
Choosing to go with a set of UML tools isn't a trivial issue. There are increased software and training costs, but the payoff in flexibility, application reliability, and testing typically make this a good tradeoff. Keep in mind that training is critical. UML techniques will seem foreign to most programmers and designers, yet training normally reveals the relationship to object-oriented experience that new UML users already have. Either pay for good training up front, or pay later in longer development times, as on-the-job learning is often much harder.
Mixed CPU/DSP development is becoming more mainstream. Development tools are trying to keep pace, but the hardware is still ahead of the software.
See associated figure.