又画UML

时隔一年,UML的撞墙魔咒还阴魂不散。

今晚跟阿毛一起画了一晚的UML,从用例图到类图再到时序图,linux下的dia好像不是很好用,阿毛的键盘也不是很好用,最主要的是,我不会画。

一年前那个印度佬的UML选修课真是一个痛苦的经历,印度口音跟全英文ppt,胡乱做了几次作业,都不知是怎么拿到80分的,结果是,我还没学会UML。

今晚一边翻着《UML精粹》,一边画图,想到一句话:书到用时方恨少。还有一个想法,就是要学JAVA。

C++跟JAVA这两个语言都想学,但一直停留在C的阶段,打算从JAVA入手,然后再转向C++。

因为看到C++,我很难不跟C联系起来,但我知道,这两者从思想上是有很大不同的,要先学会纯面向对象的方法,JAVA是一个很好的选择。

地铁志愿者又可以报名,据说一天一百块,我不知道为什么志愿者会有钱的,而且比派传单的要好很多,宿舍两个没有找实习的舍友都报名了,还琢磨着赚了一千多块后要怎么花,虽然我也很想赚点钱,但马上就大四了,那一个月的志愿者工作说白了只是体力活,一点技术含量都没有,我不能为了那些钱而浪费那么多的时间,要看的书还有很多呢。

早点睡觉,明天继续画图。

### 使用Python绘制UML图的库方法 #### pygraphviz 库 在 Python 中,`pygraphviz` 是一个用于创建操作图形的强大工具。该库可以用来绘制 UML 类图其他类型的图表。通过定义节点边的关系,能够直观地表示类之间的关系[^1]。 ```python import pygraphviz as pgv G = pgv.AGraph(directed=True) # 添加类作为节点 G.add_node('ClassA', label='Class A') G.add_node('ClassB', label='Class B') # 定义继承或关联关系 G.add_edge('ClassA', 'ClassB', label='inherits from') G.draw('class_diagram.png', prog='dot') # 绘制并保存图像文件 ``` #### Pyreverse 工具 对于已经存在的 Python 项目,可以直接利用 `Pyreverse` 来分析源码结构,并生成相应的 UML 图形。此工具属于 Pylint 的一部分,依赖于 Graphviz 进行可视化输出[^2]。 命令行使用方式如下所示: ```bash pylint --output-format=html --reports=no myproject/ ``` 这会扫描指定目录下的所有 .py 文件,并基于这些代码构建出完整的 UML 类图。 #### 自定义封装库 为了简化绘图过程并提高效率,有人选择了对原始的 Graphviz API 做进一步抽象处理,编写了一套易于使用的接口层。这种方式不仅提高了代码重用率,还增强了最终成果的表现力[^3]。 #### pycallgraph 其他工具 除了上述提到的技术栈之外,还有专门针对函数调用链路跟踪设计的产品——比如 `pycallgraph` ——它可以捕捉程序运行期间发生的实际交互情况,进而形成动态的行为模型;另外像 `pyan`, `gprof2dot`, 或者 `code2flow` 则更适合做静态分析工作,在不需要执行目标应用的前提下就能得到详尽的结果报告[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值