我刚刚开始使用一个受欢迎的、文档丰富的图形引擎,并有一个月的时间来创建一些小程序并熟悉它。
图书馆很大,有些部分我还没有研究过。
由于时间紧迫,我的技术主管要求我开始设计我的软件(序列图和类图),即使是那些我还没有探索过的部分,只需要查看文档并计算出这些类的功能。
我的理解是,设计软件需要对某些东西的工作原理有很好的了解。仅仅通过查看类的文档来创建一个只对类的工作方式有一个模糊理解的设计是否有意义?难道我不应该用一个小程序来构建它的原型,到处调整它,了解它的行为,然后为它做设计吗?
发布于 2012-01-25 09:06:04
您自己的序列图和类图可能不太依赖于图形引擎的行为。在实现过程中,您可能会遇到‘我必须在initFoo()之前调用setupBar()’之类的小怪癖,但是这些细节很可能不会影响类的设计。你的技术领导现在需要你的设计,可能是因为其他人依赖它,所以我建议你创建它。
发布于 2012-01-25 11:16:31
这有一个风险:仅仅因为引擎很受欢迎,而且有很好的文档记录,这可能并不能反映现实。我最近确实使用了一个游戏引擎,它使用wiki来记录引擎是如何工作的。您发现的是没有反映最新版本、当前页面和讨论尚未实现部分的旧页面的混合。
如果让我单独根据文档来设计应用程序,我们就会做出承诺,这些东西将在数年内无法获得。
发布于 2012-01-25 13:00:41
提供设计是很重要的,因为在创建项目时需要进行一些初步的工作。我喜欢ammoQ的回答,就像他说的那样。
不过,我想补充的是,在一个理想的世界里,我们将一直有时间成为一个未知的框架或库的专家,然后我们才会致力于设计一个尚未100%被理解的软件。然而,我们并不生活在一个完美的世界。
每个设计文档都应该有一个假设部分,详细说明我们仍然有关于设计方面的每一个未知数。例如,如果库的文档声称具有A功能,但您还无法在原型中找到这一点,那么请将其称为假设,并对其进行设计。
你可能会时不时地发现,并非所有的假设都是正确的,或者你可能遗漏了一些假设。在这一点上,你将需要修改你的设计,引用失败的假设作为一个理由,以及修改未来的估计。
https://softwareengineering.stackexchange.com/questions/131711
复制相似问题