写点什么

IntelliJ IDEA 的 DSM 工具使架构可视化

  • 2008-02-20
  • 本文字数:812 字

    阅读完需:约 3 分钟

优良架构的一个重要特点就是通过组件分层使模块间的依赖流畅贯穿于整个架构。如何描述和维护组件间的依赖是一个常见却又很难解决的工作。UML 包图(package diagram)提供了描述这种依赖的方法,但是创建包图往往很耗费时间,甚至在反向工程时,获得一个直观的设计也需要很长的时间。此外,UML 也不能有效地进行修正,用它来维护大型且复杂的系统的依赖图,投资回报率往往很小。

依赖结构矩阵(Dependency Structure Matrices, DSM ),这一较新技术的出现填补了这个空白。DSM 是一个矩阵,其中每行是一个模块,列则在另一维度上显示一组同样的模块。每个单元格表示两个模块之间的交集,以及它们之间依赖的数目。不需要任何更多的信息,一个人通过典型的例子就能迅速且直观地看到漂亮的DSM 可视化图。

分层系统的DSM

严格分层系统的DSM

匆匆一瞥之后我们接着来看,每行代表分层架构中的一个包。这些行依次从1 到5 进行编号。列也依次编号为1 至5,分别表示与行同样的模块。在严格分层系统中,application 只依赖于model(37 次),model 只依赖于domain,等等。在分层系统中,上层(比如application)可以依赖于其下任何一层(比如util)。有了这种可视化图,只要代码编写违反了规则,可视化图就会立即反映出来。任何出现在右上方的依赖都表明违反了架构的意图。

IntelliJ 已经在新版本“Magnificent 7”中引入了新的 DSM 工具。不用考虑代码基线(codebase)的分层,不用手动整理 UML 图,IntelliJ 会自动从一个已存在的工程生成 DSM。像其它 DSM 工具一样,IntelliJ 能自动调整节点,使依赖显示在左下方。DSM 是交互式的,可以下钻到类级别:

在这个例子中,IntelliJ 的 DSM 工具表明,ReferenceStrength 在架构中,被其下层使用了 4 次。将 DSM 工具集成到 IDE 中非常方便。IDEA 能非常容易地显示出代码基线中的 4 次引用,使问题容易地被修复。在这种情况下,可以使用 IntelliJ 的重构工具把 ReferenceStrength 移到一个更高层次的包中。

2008-02-20 00:245312
用户头像

发布了 151 篇内容, 共 62.9 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

文心智能体平台已汇聚15万企业,智能体分发量上涨16倍

Geek_2d6073

不是领导时该如何管理员工

易成研发中心

团队管理 项目管理

上千人挑战,用通义灵码从 0 开始打造一款 App 爆火 | 第二课:搭建本机服务

阿里云云效

阿里云 云原生

得物新一代可观测性架构:海量数据下的存算分离设计与实践

得物技术

软件开发进度频频拖延,项目进度问题如何解决

爱吃小舅的鱼

项目进度

云计算以及人工智能将为全球国内生产总值贡献数万亿美元

财见

Aeron 框架初探

FunTester

Lazada商品评论列表的开发应用与收益

科普小能手

API API 接口 lazada商品评价接口 lazada API接口 lazada

如何成为一名“Java调优大神”?

了不起的程序猿

Java 面试 性能优化 架构师 jvm调优

百度商业系统升级为“百度伴飞” :用生成式AI重构营销场域、经营、连接

Geek_2d6073

热忱如初,逐"智"前行 | 正雅齿科嘉兴智能生产基地落成投产

财见

THE发布首届2025年跨学科科学排名

财见

9款在线编辑甘特图的网站,助你高效管理项目进度

爱吃小舅的鱼

甘特图

Fish Speech 1.5 发布,TTS-Arena 排名开源第一;DeepMind Genie 2,一键生成无限虚拟世界

声网

NocoBase 1.4.0 正式版发布

NocoBase

开源 低代码 零代码 无代码 版本更新

a16z丨2025 Web3 趋势预测:这些 Big Idea 或大有可为

TechubNews

B站,助力品牌与新一代年轻人共舞

财见

AI招聘API:2024年国内外顶级平台的智能化解决方案

幂简集成

招聘 API AI招聘

ETL是什么?浅谈ETL对数据仓库的重要性

RestCloud

数据仓库 ETL 数据集成 企业数字化

上千人挑战,用通义灵码从 0 开始打造一款 App 爆火 | 第二课:搭建本机服务

阿里巴巴云原生

阿里云 云原生 通义灵码

除了Excel,哪些工具能快速绘制甘特图?6款推荐

爱吃小舅的鱼

甘特图

生成式AI重构营销 超7成客户使用百度AI营销服务

Geek_2d6073

HR Path通过收购Pay Human Group扩大全球版图

财见

团队管理中如何做好目标管理

易成研发中心

团队管理 目标管理

DSP 的 CV 算子调用

地平线开发者

算法 自动驾驶; 算法工具链 地平线征程5

质控经理如何掌握项目进度、项目成本

爱吃小舅的鱼

项目进度 项目成本

联想按下“AI加速键”!目标:与5000万中小企业共创

脑极体

AI

支持Teams Phone的microsoft Office 365版本

cts喜友科技

通讯 云通讯

黑芝麻智能端到端算法参考模型公布,一文了解技术亮点

财见

秒懂Requests响应时间获取技巧!

LLLibra146

Python 代码技巧 requests

HarmonyOS 5.0应用开发——UIAbility跳转

高心星

arkui ArkTS 鸿蒙Next HarmonyOS NEXT

IntelliJ IDEA的DSM工具使架构可视化_架构_Michael Bushe_InfoQ精选文章