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