“逆向工程”应用程序架构

时间:2010-11-12 04:03:33

标签: oop architecture reverse-engineering conceptual

我继承了一个用C#/ .NET 2.0编写的旧应用程序。 (联合国)幸运的是没有文件 - 甚至没有评论。因此,当我根据新要求添加应用程序的增强功能时,我还构建了应用程序的功能及其运行方式的心理模型 - 换句话说就是架构。

我想知道有什么工具可以“解构”应用程序并从原始代码转到更高级别的东西?应用程序在OO中并不是很重 - 事实上,所使用的对象之一被称为“功能”。它主要只是一堆方法 - 很多方法似乎无处不在。

我想将原始代码翻译成某种需求文档,说明应用程序的功能及其执行方式。最好的方法是什么?有没有可以帮助我的应用程序?也许我应该/不应该包含的模板?也许你推荐的书籍/网站?目标是为我和维护应用程序的未来开发人员提供文档。

2 个答案:

答案 0 :(得分:1)

就个人而言,我将从Robert C Martin的敏捷书和Eric Evan关于域驱动设计的书开始。这些是理论书籍,但是鲍勃叔叔的书专门讨论了如何修改代码以便管理,就像你的情况一样。

对软件进行分层非常重要,这样您就可以开始删除依赖项,这将使一切变得非常简单和易于维护。

我是一个数据库人,所以我开始使用像Entity Framework或Fluent NHibernate这样的优秀ORM。我更喜欢网站,所以我选择了ASP.NET的MVC 2,然后开始编写这些书的所有部分,即数据存储库,提取数据的服务和推送数据的控制。 MVC是一个非常好的数据关注分离和“查看”问题,这是你的屏幕。不久之后,您将拥有非常干净且易于维护的软件。

答案 1 :(得分:1)

如果您使用的是VS 2010,则可以看到一个名称为 Architecture 的菜单,使用此工具可以创建应用程序的依赖关系图,您可以按照下面的描述使用它: