AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:245658
用户头像

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

关注

评论

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

以联接,育栋梁:解码校园中的星河AI网络

脑极体

AI

《Operating System Concepts》阅读笔记:p471-p472

codists

操作系统

腾讯面经,有点难度~

王中阳Go

Go 腾讯 面经

淘宝天猫宝贝详情页面商品评论采集接口全解析

tbapi

淘宝商品评论接口 淘宝API 淘宝评论接口

智能制造:关于专精特新的解读

积木链小链

数字化 智能制造

无刷电机工厂生产管理MES系统解决方案

万界星空科技

无刷电机 mes 制造业工厂 电机行业 电机MES

AI赋能时尚零售功能篇:全渠道全流程商品管理数字化

第七在线

BOE(京东方)携前沿显示技术亮相ICDT 2025 “绿色+科技”引领产业持续向新

爱极客侠

以太坊兼容智能合约即将登陆 Kusama!Polkadot 迎来智能合约新时代

One Block Community

智能合约 polkadot web3

人工智能丨2025年,测试从业者应如何拥抱智能体(AI Agent)?

测试人

蚂蚁集团在加速互联网和金融服务创新上的实践——平台工程解决方案

蚂蚁开源

蚂蚁集团 kusionstack 蚂蚁开源

AI 真的懂你问的问题吗?

Immerse

深入探索ArkUI中的@LocalBuilder装饰器:构建高效可维护的UI组件

李游Leo

HarmonyOS HarmonyOS NEXT

【IoTDB 线上小课 13】包教包会的 IoTDB 安装教程来啦!

Apache IoTDB

DeepSeek将如何改变我们的日常生活和工作?

天津汇柏科技有限公司

AI 人工智能 DeepSeek

AI口语练习APP的性能测试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

项目运维服务质量管理制度,运维过程管理文档

金陵老街

软件运维 运维制度 运维过程管理

巧用输出变量,提升Dolphinscheduler工作流灵活性和可维护性

白鲸开源

开源 大数据任务调度 Apache DolphinScheduler

BOE(京东方)携前沿显示技术亮相ICDT 2025 “绿色+科技”引领产业持续向新

科技热闻

企业AI数智化创新峰会在河北石家庄成功举办!

用友智能财务

AI 财务 会计

黑龙江网络安全等级测评,2025年最新等保规定速查!

黑龙江陆陆信息测评部

创意高清LED显示屏:车展现场互动的强大引擎

Dylan

科技 LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

深入解析淘宝天猫宝贝详情页面优惠券数据采集接口

代码忍者

淘宝API接口

90%企业踩坑的数据管道管理问题,4大技术方案实现效率翻倍!

白鲸开源

开源 技术方案 Apache DolphinScheduler

CST软件如何理解远场的坐标、分量和极化

思茂信息

cst电磁仿真 CST软件 CST Studio Suite

深入理解 Bitmap 索引:原理、场景与应用案例

镜舟科技

数据分析 OLAP 分析型数据库 StarRocks Bitmap 索引

AI Agent赛道:昙花一现还是生态革命?6大咖拆解泡沫与未来

TechubNews

AI Agents 币圈不设防

What's new in dubbo-go v3.3.0

apache/dubbo-go

dubbo dubbo-go dubbogo Dubbo3

中昊芯英作为浙江民营经济高质量发展代表企业,接受30余家媒体集体探访

科技热闻

人工智能丨测试人必看!MCP协议如何让测试工具“智商”翻倍?

测试人

人工智能

淘宝天猫宝贝详情优惠券数据采集接口:深入探究与实践

tbapi

淘宝API 淘宝优惠券接口 淘宝商品优惠券接口 天猫优惠券接口

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