The Unified Modeling Language (UML) and Model-Driven Development (MDD) are rapidly becoming very hot topics and many companies are realizing the advantages made available by these technologies of better, standardized communication (UML) and the ability to reduce development time while producing higher quality designs by finding errors earlier in the process.
The Object Oriented (OO) and C++ embedded community have rapidly adopted these technologies, but the spread into the C developer community has not been as fast. Up to now, the two main reasons that C Developers are reluctant to adopt UML were the unfamiliarity with OO constructs and the lack of ability to efficiently reuse legacy code. These challenges are being overcome through the introduction of natural C concepts such as files, functions and variables into the modeling language that enable the developer to think and work with the concepts that they are used to. Producing code structures the way C Developers always have makes it more intuitive and lowers the risk of change.
In addition, developers can now integrate their existing code with the model by visualizing the external library owitr legacy code as part of a UML diagram without changing it, allowing them the advantages of graphical modeling while maintaining the full integrity of their legacy code. By being able to model using the same concepts they do today while being able to leverage the benefits of reusing code they have already written enables embedded C developers to gain the benefits of faster time to market and higher quality products that UML based MDD provides.