Using UML for C programming

2019-02-19 13:45发布

问题:

I'm developing an embedded software based on standard specification. The software is big and I need a design of my software before start coding. the UML is an object-oriented language and could be a solution but I don't know how to use it for C softwares.

are there any document which help to use UML for C programming ? or are there another design language for c softwares ?

回答1:

Yes, you can, mostly because of two reasons:

  • You can actually do Object Oriented Programming with C (although it is tedious and not completely advisable), there a few books on the subject that you can read.
  • You can still use class diagrams to model data structures and static methods. But UML is not just about class diagrams: you also have state diagrams, interaction diagrams, use case diagrams... And they are useful for structured programming too.


回答2:

Well we use Enterprise Architect to model our embedded software although we stop short of generating the code. EA can generate C code as well although we use C++ code because it feels more natural combined with UML. You can try it out and see if it fits your needs, it is not unforgivingly expensive either. It can also reverse engineer your C code so that may be a help.



回答3:

I have two products in mind that could help you:

  • LieberLieber Software Embedded Extension, which is based on EA and gives you an idea about UML and C or

  • Eclipse Papyrus, which supports UML and SysML



回答4:

I am not an expert for embedded software but have you look to https://www.polarsys.org/ ? "PolarSys is an Eclipse Industry Working Group created by large industry players and by tools providers to collaborate on the creation and support of Open Source tools for the development of embedded systems."

It is a platform based on Eclipse dedicated to embedded software. It use Papyrus for UML/SysML modeling and implement MARTE profil. "Papyrus is the PolarSys solution for SysML and UML modeling. It relies on the underlying Eclipse platform and on other Polarsys and Eclipse-based offerings to fulfill lifecycle integration needs, such as a C/C++ "



标签: c uml modeling