如何具体获取设计文档?

时间:2009-03-30 18:20:24

标签: c++

我正在为安全子系统创建一个设计文档,用C ++编写。我已经为主要用例创建了一个类图和序列图。我还为每个类指定了公共属性,关联和方法。但是,我还没有将方法定义深入到C ++级别。由于我是C ++的新手,和其他开发人员一样,我想知道它是否有意义继续并指定到这个级别。思考?

编辑:哇 - 完全反对,一致。我正在考虑,例如,关于指定const与非const,传递引用,处理默认构造函数和赋值等的整个业务。我相信到目前为止,详细说明这个细节是非常有帮助的。我肯定已经清楚地知道系统将如何工作。也许如果我只是做一些方法,作为一个例子,在深入研究代码之前?

7 个答案:

答案 0 :(得分:5)

我会说这完全没有意义,而且你已经走得太远了。如果您不熟悉C ++,那么您无法为C ++项目编写详细的设计文档。我建议你尝试实现你在C ++中已有的东西,通过不可避免的错误(比如公共属性)学习,然后再回过头来修改它。

答案 1 :(得分:5)

我不建议进入这个级别,但是你又已经超越了我在设计规范中的位置。我个人的感觉是,在开发代码时,如果你发现代码如何工作是错误的,那么预先在详细设计中投入大量精力就会被浪费掉。我会坚持使用高级设计,并考虑使用TDD(测试驱动开发)来指导低级设计和实现。

答案 2 :(得分:4)

由于你是新手,因此深入了解 可能是有道理的。

原因:你仍然在弄清楚语言以及最佳结构。这意味着您最初会犯错,并且您需要在不经常更新文档的情况下纠正错误。

答案 3 :(得分:3)

这实际上取决于设计文档的目标对象。如果是非技术性的老板,那么你对自己拥有的东西很好。

如果是给自己的,那么你正在使用该工具来帮助你,所以你决定了。我在创建项目时创建方法级设计文档,但它处于较高级别,因此我可以弄清楚各个类的功能应该是什么。我发现在不同的语言中,类的主要功能与我们正在使用的编程语言几乎没有关系。由于选择的语言,当然所需的一些内部细节和功能会有所不同,但这些是在设计阶段我不打扰的实施细节。

这当然有助于我知道,例如,授权类可能具有将User对象作为参数的身份验证功能。在设计过程中我并不在乎我可能需要一个内部字符串md5函数包装器来完成某些特定的目标。我在编码时发现了这一点。

初始设计的目标是组织起来,这样你就可以在清晰和深谋远虑的情况下取得进步,而不是撕掉并重新实现相同的功能4次,因为你因为没有计划而忘记了一些情景。

编辑:我在PHP中工作很多,我实际上使用PhpDoc来完成一些设计文档,只需编写没有实现的方法签名,然后详细描述方法应该在方法头中做什么评论。这可以帮助将来使用我的类的任何人,因为设计是文档。如果我在编码时需要进行一些更改,我也可以更改文档。

我在php4中工作很多,所以我没有使用接口。在php5中,我创建了接口,然后在其他地方实现它。

答案 4 :(得分:2)

指定代码实际应如何组合的最佳方式是代码。设计文档适用于其他不易在代码中表达的内容。您应该使用它来描述程序填充的实际需求,它与用户的交互方式,硬件和操作系统方面的约束条件。当然,在设计文档中描述应用程序的整体架构,但是,例如,实际上应该在暴露API的代码中描述API。

答案 5 :(得分:0)

你已经对文档部分已经足够了。由于您仍然是C ++的初学者,当您理解该语言时,您可能希望更改程序的结构。然后你必须在文档中进行更改。我建议你已经对文档走得太远了。无需深入研究

答案 6 :(得分:0)

就像其他人一样,你已经走过了你需要去设计的地方。您是否对从该设计派生的简单真/假语句级别有一套良好的要求?你可以整天设计,但是如果你没有要求简单说出你要做什么,那么你的设计有多好并不重要。