有哪些开源工具可以检查软件架构的稳健性?

时间:2011-10-14 14:18:06

标签: c# .net architecture

我认为这是一个棘手的问题,但我想验证我的软件架构是否足够强大。

我计划在我的代码上执行这些工具:

但我想要一些工具来检查(其中包括):

  • 程序集的'依赖关系
  • 之间的关系
  • 我的对象之间过于强烈的耦合
  • 等等。

总之,我想要开源工具来突出我项目的任何建筑故障。

我理解最好的工具是经验丰富的建筑师,但即使是最好的木匠也需要一把好的锤子;)

3 个答案:

答案 0 :(得分:6)

如果您有高级版本,内置的Visual Studio工具很好。

您还可以查看nDepend,这是一个进行静态分析的工具,并指出系统中具有大量依赖关系或耦合的区域,以及许多其他功能。 nDepend是一种商业产品,但拥有免费的学术许可,如果您从事开源开发,则可以免费使用 - 因此这可能符合您的标准,也可能不符合您的标准。

请注意,所有这些工具都有学习曲线,而且您可能不会拥有"银弹"它可以准确地告诉您系统上要更改的内容,但它们对提高性能和可维护性以及降低风险非常有用。

答案 1 :(得分:4)

我认为你对这些工具要求太多了。软件架构很像建筑物的架构,没有正确的方法(可能有错误的方法),并且要求工具测量这几乎是不可能的。

有大量工具可以测量较小的方面(注释,命名约定,性能等),但是您找不到可以告诉您是否已正确构建解决方案的工具。

答案 2 :(得分:1)

到目前为止,您列举的工具是静态代码分析工具,可以帮助可视化一些新兴的架构模式,但不能做更多的事情。它们非常适合帮助减少开发人员错误,证明程序的正确性(在某种程度上),并梳理出难闻的气味和良好实践。

然而,这些无法衡量的架构有很多方面。可伸缩性,性能,部署占用空间,正常运行时间,运行时特性等。

其中许多工具对业务环境一无所知。这更像是衡量成功的标准。