我通过研究代码来分析架构时遇到了Lattix。它支持 C/C++、Java、.Net 等。可以定义一定的规则来维护定义的架构。该工具可以在构建时标记任何违规行为。
有人用过这个或任何其他类似的工具吗?我在开发中看到了这个工具的一些好处,但不确定是否必须拥有这种工具?
我通过研究代码来分析架构时遇到了Lattix。它支持 C/C++、Java、.Net 等。可以定义一定的规则来维护定义的架构。该工具可以在构建时标记任何违规行为。
有人用过这个或任何其他类似的工具吗?我在开发中看到了这个工具的一些好处,但不确定是否必须拥有这种工具?
我们使用 Lattix 和 NDepends 来跟踪程序集的依赖关系。
这两种工具都支持通过依赖结构矩阵 (DSM) 来静态可视化程序集和类之间的依赖关系。DSM 使您能够展示应用程序的架构。例如,如果您使用分层,这应该在 DSM 中可见。循环依赖也将在 DSM 中可见。
在OOPSLA05-dsm.pdf中可以找到一个很好的实用介绍
NDepends 专门针对 .Net 并具有 Visual Studio 集成。Lattix 还能够为其他语言创建 DSM。两者都支持构建集成,它允许您在构建中创建规则以防止不正确的依赖关系。
只需尝试这两种工具,看看生成的 DSM 是否符合您的预期。检查循环依赖,看看是否有无效的依赖。例如,直接使用数据访问层而不是使用业务层的用户界面。
好吧,该工具看起来又大又好,并且在呈现时效果很好。
在那之后,所有那些从 C++ 进行逆向工程的工具(根据我对 Rational Rose、StarUML、Sparx(更好的一个)、Understand 的几个版本的经验)都遇到了麻烦。
我明白了原因——C++ 中的代码比 C# 更复杂且顺序更少,具有库、模块和 COM 的链接等等。
在我们的实际项目中,它的(基于理解数据库)逆向工程被立即完全冻结(我的意思是硬重置冻结)。
可能我们需要在 WS 或服务器上运行它。
可能是理解的错。
重置后,当它的矩阵在下面打开约 200 个模块时,它变得非常慢。好吧,我从来没有说过我们的项目开发得很好,对吧。我们希望对其进行研究以使其变得更好。我仍然相信从长远来看它会非常有帮助(如果您的公司同意为持续返工支付支票),但作为所有这些工具,最好从头开始并一直持续使用它。注意我们尝试将它与 bsc(Microsoft 数据库)一起使用,但它也失败了。
NDepend是一个非常完整的工具,用于分析 .Net 程序的软件架构。这种工具非常方便跟踪依赖关系和测量各种代码指标。
我使用 Lattix 主要分析 C++、.NET、Java 和 Fortran 代码。它有助于新应用程序的开发和改进现有软件的架构。该工具支持直接导入 .NET dll、Java 类或 jar 文件以及 SQL 连接。如果您正在查看 C++ 或 Fortran,则需要像 Klockwork、Understand 或 Clang 这样的解析器。可以为您的 Lattix 项目设置每次软件构建的持续更新 - 这将确保您拥有更新的 DSM 以持续监控您的软件架构。这可以让您知道您的软件如何随时间变化,以及是否有任何代码违反了您在设计开始时设置的规则,或者是否需要修改任何规则等。查看现有软件,该工具可以为您快速分解系统并确定存在周期性依赖关系的位置。有一些算法可以根据与其他子系统(例如类)的接近程度来划分系统,或者根据依赖模式对子系统进行分组。如果您希望改进现有软件的架构并使其模块化,这将很有帮助。
kb.lattix.com 上有大量信息 - 只需注册即可阅读文章。另外,我认为他们提供了一个评估版本,您可以探索它以查看该工具是否对您有用。