Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop &引用;“逆向工程”;应用程序架构_Oop_Architecture_Reverse Engineering_Conceptual - Fatal编程技术网

Oop &引用;“逆向工程”;应用程序架构

Oop &引用;“逆向工程”;应用程序架构,oop,architecture,reverse-engineering,conceptual,Oop,Architecture,Reverse Engineering,Conceptual,我继承了一个用C#/.NET2.0编写的旧应用程序。(联合国)幸运的是,没有任何文件,甚至没有评论。因此,在我根据新的需求为应用程序添加增强功能的同时,我也在构建一个关于应用程序做什么以及如何做的心智模型——换句话说,就是架构 我想知道有什么工具可以“解构”应用程序,从原始代码到更高的层次?这个应用程序在OO中并不是很重——事实上,其中一个使用的对象被称为“函数”。这主要是一堆方法——很多方法似乎都是无中生有的 我想将原始代码转换成某种需求文档,说明应用程序的功能和执行方式。最好的方法是什么?有

我继承了一个用C#/.NET2.0编写的旧应用程序。(联合国)幸运的是,没有任何文件,甚至没有评论。因此,在我根据新的需求为应用程序添加增强功能的同时,我也在构建一个关于应用程序做什么以及如何做的心智模型——换句话说,就是架构

我想知道有什么工具可以“解构”应用程序,从原始代码到更高的层次?这个应用程序在OO中并不是很重——事实上,其中一个使用的对象被称为“函数”。这主要是一堆方法——很多方法似乎都是无中生有的


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

就个人而言,我将从Robert C Martin的《敏捷》一书和Eric Evan的《领域驱动设计》一书开始。这些都是理论书,但是Bob叔叔的书特别提到了修改代码以便于管理,就像你的情况一样

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


我是一个数据库专家,所以我从一个好的ORM开始,比如实体框架或Fluent NHibernate。我更喜欢网站,所以我选择了ASP.NET的MVC2,然后开始编写这些书的所有部分,即数据存储库、拉取数据的服务和推送数据的控制。MVC很好地将数据关注点和“视图”关注点分开,它们是您的屏幕。不久,您将拥有非常干净且易于维护的软件。

如果您使用VS 2010,您可以看到一个名为:架构的菜单。使用此工具,您可以创建应用程序的依赖关系图,您可以按以下说明使用它:


您在google上搜索过从C#源代码生成UML的工具吗?不幸的是,我没有搜索过-不过这看起来很巧妙,所以在我们迁移之后,我会记住这一点。谢谢谢谢-我确实发现自己缺乏理论,所以我认为这些书会有所帮助。事实上,我一直在学习MVC 2,我被说服了,但我不会维持应用程序足够长的时间来将其转换为那种模式。一位同事也这么说。我建立了一个存储库和控制层,这样他就可以从Web表单中使用它。现在他调用单行SaveProducts(列表产品)来持久化数据,而不是循环和检查等。