2010-11-15 50 views
0

我不知道当您开始研究现有系统但对您而言是新系统时,您寻找什么样的东西?假设系统非常大(无论对你来说意味着什么)。当您尝试了解新软件时寻找的东西

一些中确定的事情是:

  1. 哪里是一个特定的子程序或程序调用?
  2. 什么是特定函数的参数,结果和谓词?
  3. 控制流程如何到达特定位置?
  4. 哪里是一个特定的变量集,使用或查询?
  5. 声明特定变量在哪里?
  6. 访问特定数据对象,即创建,读取,更新或删除的地方在哪里?
  7. 特定模块的输入和输出是什么?

但是,如果你寻找一些更具体的还是请与我们分享:)

我的东西特别感兴趣,可以在动态分析中提取任何上述问题对你特别重要/执行。

回答

1

我喜欢用“用例”的方法:

  1. 首先,我问自己,“这是什么软件的目的是什么?”我试图找出用户将如何与应用程序交互;
  2. 一旦我有了一些“用例”,我试图了解哪些对象更加涉及以及它们如何与其他对象交互。

一旦我这样做了,我画了一个UML类型的图表,描述了我刚才了解到的进一步参考。会发生什么事以后要看我被分配,即修改代码的任务,注释代码等

1

有什么动机我有学习新系统的问题:

  1. 错误修复/次要增强 - 在这种情况下,我可能只关注执行需要修改的特定功能的那部分系统。这是一种打破巨大系统的方式,但也是一种确定问题是否可以解决的方法,或者是我必须向我们正在使用的软件的现成公司提供的方法,例如, CRM,CMS或ERP系统可以是定制的现成系统,因此它有很多部分。

  2. 项目工作 - 这将是另一种情况,我可能会尝试从30000英尺左右的角度构建自己的视图,以了解什么是高级组件以及系统的哪些区域执行项目影响。这方面的一个例子就是我加入一家公司,从现有的代码库开始工作,但我没有像以前的案例那样有小的焦点。部分观点是在命名约定,项目结构等方面寻找代码中的任何模式,因为一旦我开始更改系统中的某些代码,这可能很有用。我可能会对系统进行一些追踪,并试图了解代码中哪些是丑陋的部分。我的意思是那些类似kludge的部分,可能会有一些意大利面代码,因为这是在第一次写入时就冲上去的,现在正在重新修改。

在我看来,另一种方式来查看这是无论我是在第二种情况下它希望要花费几天或几周包裹我的头周围的系统状或这应该是一个案件的问题只需要几个小时,乐观地说,就是让我的基础做出必要的改变。

相关问题