对于软件工程中的详细设计:
有人认为于由没有实际编码,很多细节领悟不透。做出来的详细设计也会和代码相差很大。
另有人认为前一种说法是项目做得差的标志,因为设计文档就要引导整个软件的构架、流程、思想等,甚至包括使用的组件和实现方法。如果以文档做为基准,项目可以顺利进行。导致代码和设计文档相差太大有大体有两种可能:一是项目实现没有以设计文档为基准进行开发,二是设计文档经过评审,实现思想没有统一。
外包时:设计应该做得足够详细而且没有歧义。
1、详细设计后,对这个系统会有一个比较系统的理解,会发现需要补充调研的需求之类的。此时补充调研后调整设计的成本是比较低的。否则,等你Coding完成了,再需求变更。。。哦。。。会很痛苦的。这种情况通过好的详细设计来减少很多的。
2、项目特征中的渐进明细性,概括了项目团队会随着时间的推进,增加对项目的了解。详细设计就是提供了这么个需要。此时的需求变更很大部分是可以发现的。特别是需求比较粗的部分,可以补充调研。
维护代码的时候,如果没有详细设计而只有原代码,那么维护起来会相当费时。(理解原代码的意图?理解是对的么?)
论坛上各种说法都有,引用认为比较有道理的flyfing(江山如此多娇)评论(摘自CSDN社区):
原则上是设计的时间最长,不过国内很少能做到这一点儿。这样,在编码上消耗的时间就不少,而且由于软件设计上时间欠缺造成的设计问题,会让以后的测试困难重重,最后的重头戏反而在测试上,呵呵。
大学的时候软件工程的课没认真听,只记得老师说过编码的时间是占的比例是相当短的。只好有时间再充电找一个权威一点的说法吧。。。