By Stephen J Mellor
Executable UML models allow the designer to verify the design before any code is written. A translation phase, using a set of rules, builds a system in a strict and repeatable manner. The engineer has full control over these rules to enable generation of the most appropriate code for a particular architecture. Rather than bit-fiddling with the generated code, a more structured and repeatable process is now used. If there is a problem with the behavior of the application, then the model is changed accordingly, and if there is a problem with the performance of the code, then the rules are adjusted. This separation of the application (using the design tool and verify tool) from the architecture (processing the design rules)
results in a more maintainable and efficient system.
Using UML in Embedded Systems
There are many ways in which the UML can be said to be used. Most people use UML informally. That is, they sketch out a few diagrams on the proverbial beer mat and discuss their abstractions with their peers (sic). From there, coding proceeds directly. Martin Fowler’s book, UML Distilled, takes this point of view.
Others use UML as a blueprint that specifies software structure. There is an intended near one-to-one correspondence between the UML diagrams and the code. A tool can generate code frames from these models, and the developer fills in the rest using the models as a guide. Note that if the developer finds a better solution while coding, the model will no longer reflect the code. Users of this approach must have a detailed understanding of their code structure and the corresponding elements in UML. They’ll find UML in a Nutshell useful in this (though the authors do not explicitly promote this approach.).
Executable UML models allow the designer to verify the design before any code is written. A translation phase, using a set of rules, builds a system in a strict and repeatable manner. The engineer has full control over these rules to enable generation of the most appropriate code for a particular architecture. Rather than bit-fiddling with the generated code, a more structured and repeatable process is now used. If there is a problem with the behavior of the application, then the model is changed accordingly, and if there is a problem with the performance of the code, then the rules are adjusted. This separation of the application (using the design tool and verify tool) from the architecture (processing the design rules)
results in a more maintainable and efficient system.
Using UML in Embedded Systems
There are many ways in which the UML can be said to be used. Most people use UML informally. That is, they sketch out a few diagrams on the proverbial beer mat and discuss their abstractions with their peers (sic). From there, coding proceeds directly. Martin Fowler’s book, UML Distilled, takes this point of view.
Others use UML as a blueprint that specifies software structure. There is an intended near one-to-one correspondence between the UML diagrams and the code. A tool can generate code frames from these models, and the developer fills in the rest using the models as a guide. Note that if the developer finds a better solution while coding, the model will no longer reflect the code. Users of this approach must have a detailed understanding of their code structure and the corresponding elements in UML. They’ll find UML in a Nutshell useful in this (though the authors do not explicitly promote this approach.).