2010-03-10 77 views
0

我最近成为了一个复杂的嵌入式项目团队的一员,为此我将开发一个部分。对于我的职责部分,只有旧的代码和没有太多的文档。了解软件系统

我热衷于一个良好的开端,但害羞和害怕出现愚蠢使得难以提出问题。如何提问?

我想问你们用什么技术来理解一个项目?我的意思是有很多技术细节,人们必须记住并保持上下文才能进行设计。你阅读代码并得到一些事实,但如何前进? 例如,您阅读代码和文档并获得一些事实A和事实B。如何得出适当的结论X,您可能需要也可能不需要考虑事实C和D?

回答

0

阅读代码是通过编写文档来平衡的。

编写替换件需要的文档。想象一个比你更少知道的人。为那个人解释。

如果您无法向替换者解释某些内容,请提问。

当您有完整的描述时,您将“知道”该系统。

而且您将制作完整的文档。

1

如果没有足够的文档并且代码记录不完整且编写不当,代码读取可能会特别困难。我想现在最好的办法是找到代码的入口点,并慢慢理解它的流程以及它使用的数据。我会继续关注的

  1. 结构 - 是否有任何分区的实体/系统?代码中的哪些地方(以及如何)彼此沟通?

  2. 数据 - 使用什么样的结构来保存全局数据?数据如何被访问和保存?

  3. 如果你在做C或C++,找出如何处理内存和C++(以及其他相关的非托管内存OOP语言,我猜),对象所有权如何包含也很重要。

  4. 由于它是一个嵌入式项目,有没有使用非标准的代码或编码结构?

0

你没有提到存在哪种测试。如果有测试用例,修改它们并跟踪这将如何影响最终结果。

0

您可能想看看图表,它可以给出系统逻辑结构的全貌,例如,在OOP系统中查看类图会有很大的帮助。通过查看大型复杂应用程序的设计图,您可以清楚地了解系统内部模块的组织方式,并以此方式确定特定代码段的功能是否更容易完成。在没有图表的情况下,最好的办法是从应用程序的入口点开始,例如main(),并在绘制时从字面上开始(字面上在纸上绘制或写下)自己关于系统的结论(这样你可以拥有自己的文档)并询问你的同事是否正确。

0

我的经验是,最好从某种任务开始 - 一个错误修复或其他小改变。这将为您的学习提供重点。我发现很难通过活页夹阅读或者通过源代码或文档的页面筛选,而无法应用它。

如果您有一个沙盒,您可以在不改变代码基础的情况下进行更改,那可能会更有帮助。