UML Class Diagrams from C++ Code

翻译 2012年03月28日 10:00:29

I needed a UML class diagram of the classes I use in the implementation ofCScout refactoring browser.I drew the last such diagram on paper about four years ago, so it wasdefinitely out of date.I always say that whenever possible documentation should be automaticallygenerated from the code, so I decided to automate the task.

An appropriate tool for this job is UMLGraph.Unfortunately for the task at hand,its input is following the Java syntax.Getting the appropriate data from the C++ code, didn't require more than10 minutes of work.In this particular C++ code I only used single inheritance, and the subclass andsuperclass always appeared on the same line.Taking advantage of these two facts I could simply locate the linescontaining public :,and convert them into a corresponding Java class definition.Thus

class Mysql: public Sql {
        // ...
would become
class Mysql extends Sql {}

The following pipeline was enough to take inheritance specificationsfrom the C++ code and transform them into UMLGraph's Java syntax.

grep -h ":.*public" *.h |
sed 's/class //;s/://;s/public //;s/{//;s/  */ /g' |
awk '{print "class " $1 " extends " $2 " {}"}'
Here is a part of the final result.
UML class diagram

【UML】构件图Component diagram(实现图)

  • sds15732622190
  • sds15732622190
  • 2015年10月11日 17:17
  • 2400

UML总结—包图(Package Diagram)

一、什么是包 在面向对象的软件开发过程中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,包含的类是成百上千的,再加上其间“阡陌纵横”的关联关系,多重性等,必然大大超出了人们可以处理的...
  • ggibenben1314
  • ggibenben1314
  • 2013年02月18日 20:34
  • 12822

《火球——UML大战需求分析》(第1章 大话UML)——1.3 行为型的UML(Behavior Diagram)

UML图分结构型和行为型两种图,这次将为你分享行为型(Behavior Diagram)的UML图,让你在15分钟内就可以对活动图(Activity Diagram)、状态机图(State Machi...
  • u010825142
  • u010825142
  • 2013年09月02日 16:02
  • 3013

UML Class Diagrams

  • 2012年02月29日 13:50
  • 30KB
  • 下载

Working with UML class diagrams in PyCharm

Why UML? It can be really handy to have a schematical view of an application’s class hierarchy. P...
  • ywcpig
  • ywcpig
  • 2016年06月24日 15:15
  • 773

Sinking events from managed code in unmanaged C++

Download source code - 7.89 KB Introduction As time goes by, some parts of the big project I am ...
  • quxiao2002
  • quxiao2002
  • 2012年01月31日 16:29
  • 518

How to make a callback to C# from C/C++ code

  • johnnyelf83
  • johnnyelf83
  • 2013年06月30日 08:18
  • 1225

UML---Component diagrams

构件图(Component diagrams)是面向对象系统的物理方面建模时使用的两种图之一,另一种是配置图。构件图描述了软件组件以及组件之间的关系,组件本身是代码的物理模块,构件图显示了代码的结构。...
  • linxi1209163com
  • linxi1209163com
  • 2014年03月23日 15:10
  • 939

UML实战之Use Case Diagrams

在实战之前我们先得搞清楚一个很重要的问题:何谓用例图?它有何用?        首先我们来解决什么是用例图的问题,所谓用例图是用来描述用户的需求,从用户的角度描述系统的功能,并指出功能的执行者,强调...
  • u010929604
  • u010929604
  • 2014年02月28日 21:14
  • 2251

UML---sequence Diagrams

时序图(sequence diagrams)描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。时序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换。也...
  • linxi1209163com
  • linxi1209163com
  • 2014年03月23日 11:52
  • 1108
您举报文章:UML Class Diagrams from C++ Code