详细设计可以说是软件开发必不可少的关键环节。对于详细设计来说,设计文档的撰写是必不可少的。中培教育《详细设计与系统架构最佳实践》培训专家张老师指出,一份详细设计的文档应该做到内容详细、思路清晰、描述清楚。而详细设计除了对设计文档有较高要求之外,还应该具备以下几个方面的前提条件。
1)应针对全部需求(包括功能性和非功能性的需求),系统需要有整体上的考虑,也就是前文提到的架构设计。
详细设计需要考虑类、类的内部细节、类之间接口等,这些是需要符合系统的总体架构和分层架构的。
2)应有数据库设计。
如果没有数据库设计,建筑在数据库之上的代码是很难写的。当然如果你是用“由中间到上下”的设计方法的话(什么是“由中间到上下”?请参考前面的文章),数据库设计没有,只要有中间层的建模的话,表现层和逻辑层的代码还是可以写的,但数据库操作层的代码还是依赖于数据库设计的。
3)部分情况下,还应该有部分或全部的用户体验设计(用户体验设计下一篇会分享)。
用户体验设计主要考虑的是软件的表现层,最能充分体验“由顶而下”的设计思路,将会直接影响具体的代码实现。
一般情况下我们应该在架构设计和数据库设计的基础上进行详细设计,否则很可能会让我们仅仅关注了局部的问题,而没有抓住其他更加重要的问题和全局的问题。如果没有架构设计和数据库设计,直接详细设计是不是一定不可行呢?有以下的一些特殊情况(不限于此噢):
1)如果果你的情况是在原有系统上升级改造,系统原有的架构和数据库设计基本不变,那么直接进行详细设计是合适的做法;
2)有时候有些局部问题虽然很“局部”但又相当特殊或重要,哪怕没有来得及完成架构设计和数据库设计,也可以先进行详细设计的。