2009-04-28 87 views
4

我遇到了Lattix,通过调查代码来分析体系结构。它支持C/C++,Java,.Net等。可以定义某些规则来维护定义的体系结构。该工具可以在构建时标记任何违规行为。Lattix体系结构分析工具

有没有人使用过这个或任何其他类似的工具?我看到了这个工具在开发中的一些好处,但不确定这种工具是否必须具备?

回答

0

NDepend是一个非常完整的工具来分析.Net程序的软件架构。这种工具非常便于跟踪依赖关系并衡量各种代码度量。

1

我们同时使用Lattix和NDepends来跟踪我们的程序集的依赖关系。

这两种工具都支持通过依赖关系结构矩阵(DSM)静态可视化程序集和类之间的依赖关系。 DSM使您能够显示应用程序的体系结构。例如,如果您使用分层,则应在DSM中可见。循环依赖关系也将在DSM中可见。

一个不错的实用介绍可以在OOPSLA05-dsm.pdf

NDepends找到专门针对.Net和具有Visual Studio集成。 Lattix还能够为其他语言创建DSM。两者都支持构建集成,允许您在构建中创建规则以防止错误的依赖关系。

只需尝试这两种工具,看看生成的DSM是否是您所期望的。检查循环依赖关系,看看是否有无效的依赖关系。例如,直接使用数据访问层而不是使用业务层的用户界面。

+0

更多依赖结构矩阵使用这里http://www.ndepend.com/Doc_Matrix.aspx发现设计模式 – 2010-10-18 17:48:52

0

嗯,这个工具看起来很膨胀,很好,并且在展示时工作得很好。
之后,好吧,所有那些从C++开始进行反向工程的工具(根据我的经验,很少有Rational Rose,StarUML,Sparx(更好的版本),理解)......都陷入困境。
我可以看到为什么 - C++中的代码比C#更复杂,次序更少,链接到库,模块和COM等等。
在我们的实际项目中(基于Understanding数据库),逆向工程被立即冻结并完全冻结(我的意思是硬重置冻结)。
可能我们需要在WS或服务器上运行它。
可能是理解错误。
重置后,它的矩阵在〜200个模块以下打开时变得非常慢。那么,我从来没有说过我们的项目开发得很好,对。我们希望研究它以使其更好。 我仍然认为它可以在长期内非常有帮助(如果贵公司同意支付连续重新工作的支票),但所有这些工具最好从头开始并始终持续使用。 NB我们尝试将它与bsc(Microsoft数据库)结合使用,但它也失败了。

0

我已经使用Lattix来主要分析C++,.NET,Java和Fortran代码。这对于新的应用程序开发和改进现有软件的体系结构都很有帮助。该工具支持直接导入.NET dll,Java类或jar文件以及SQL连接。如果您正在查看C++或Fortran,则需要像Klockwork,Understanding或Clang这样的解析器。您可以使用每个软件构建对您的Lattix项目进行持续更新 - 这将确保您拥有更新的DSM,以持续监控您的软件架构。这可以让你知道你的软件随着时间的推移如何变化,以及代码是否违反了你在设计开始时设置的规则,或者是否需要修改任何规则等。为了查看现有软件,该工具可以快速分解系统,并确定哪里存在周期性依赖关系。存在用于基于与其他子系统(例如类)的接近度来对系统进行分区的算法或基于依赖性模式对子系统进行分组的算法。如果您希望改进现有软件的体系结构并使其成为模块化,这会很有帮助。

有上kb.lattix.com丰富的信息 - 只需注册阅读文章。另外,我认为他们提供了一个评估版本,您可以查看该工具是否对您有用。