The July / August 2006 issue of Embedded Systems Engineering magazine has a lot of coverage on Modelling and Code Generation for Embedded Systems. In the editor’s words “Code Generation may not produce the quality of code that can be written by the very best programmer, but the best tools produce competent code that does the job, and they produce it quickly.” Six articles, primarily written by vendor representatives, look at different aspects of the topic:
“SysML hits the home straight” gives a short overview of the SysML modelling language – an extended subset of UML that includes special support for requirements traceability and Blocks – essentially a general purpose way of modelling system hierarchies. Worth a read if you just want a flavour of what SysML is and if you’re convinced that Visual modelling languages are the way to go.
“Modelling in Eclipse” is promisingly titled and begins with a brief description of the Eclipse development framework but the focus of the article is on Executable and Translatable UML (xtUML) a subset of UML with a defined execution semantics, that can be translated into an implemetation, rather than a general survey of the various modelling options available for Eclipse.
“Generating full code with DSM” makes a good argument for Domain-Specific Modelling languages to support code generation. The idea behind domain-specific languages is to allow you, the developer, to control what code gets generated when and to do so by allowing you to create a little (or big in some cases) language that is best suited to capturing your design intent. This approach should give you more confidence in the generated code than that generated using a black-box generator approach.
“Developing platform-independent embedded applications” makes a case for Platform Independent Modelling as the basis for Code Generation. This is the approach advocated by the OMG’s MDA initiative which I’ve talked about before.
“Systems & software modelling for safety critical environments” argues that modelling is attractive in settings where time-to-market is critical and development cycles are short but notes problems of determination and ambiguity in model-based approaches. SCADE, a domain-specific language with roots in the aeronautics industry, is introduced as a tool which has been built with these problems in mind.
The final article, “In-depth: System modelling and verification“, looks at these important topics and how they are being addressed by tool vendors.
All in all an interesting issue.