软件设计阶段应该设计到什么程度

项目的需求算是过了评审了,现在开始要进入设计阶段。

但现在有个很现实的问题,设计在一般项目开发中应该做到什么程度?

或者说项目设计阶段应该做哪些事情?完成哪些输出物,就我知道的是概要设计文档,详细设计文档,还有源代码(详细到函数还是要更详细?)

谢谢!

需求要分析,要看到模型 才能进入设计,四色原型是很好的一个方法.

banq前辈能否讲得具体点?刚刚工作,菜鸟一个,谢谢,呵呵:)

建议你看看敏捷开发方面的书。应用项目基本上都是最初对需求朦朦胧胧,开发中不断变换。如果你非要走瀑布,那么实际上没法干下去。需求总是不断在变。你必须迭代式开发。每次都选出目前最重要的功能,估算出大概一个迭代周期的功能后就开始针对这些功能进行开发。每次迭代就是一个小瀑布。设计我的建议就是理清基本的思路,在纸上画出一个小功能需要哪些类和哪些方法,然后就开始根据这个编写单元测试。如果发现单元测试很难写,那么肯定设计有问题,马上反过来修改设计。等你单元测试完了,就开始编码。单元测试都通过了,开始重构。重构同时也是对设计的一个调整。设计只要能让大家明白大致应该如何实现就是了。非要写一大堆乱七八糟的文档,除了忽悠人用,一点实际用处也没有。
这里特别说单元测试。如果一个设计单元测试很好用,那么肯定比较好。我在开发我的开源框架“仓库猫”中,单元测试帮了我很大忙。最初我设计了一些华而不实的设计模式,有些方法被写成了静态,造成难以测试,我立马就改了。现在发布的0.1版整个框架只有5个类。各个分工明晰,虽然没有使用什么高深的设计模式,但是我觉得解耦到这个程度就很好。我这个框架是作为一个组件给别人调用的。我自己在内部搞一大堆设计模式和接口,我解耦给谁去。
[该贴被wlmouse于2009-03-30 23:47修改过]