2017-2-14
根据需求,进行设计。设计的成果是系统概要设计和详细设计文档。
设计文档包含的内容:
一、总体设计
总体设计定义系统采用的开发工具和开发平台,需要采购的外部组件,采用的技术标准。系统的模块划分,功能清单,系统内部个功能之间、系统与外部系统之间的接口方式。
总体设计的目的是从较高的、全局的层面给系统做个定义、视图给高层领导、项目经理一个较为全面的系统视图,便于了解系统的范围,采用的技术,系统的组成,以及各组成单元之间的关系。
总体设计也是每个开发人员首先要仔细阅读的设计文档。
总体设计文档,需要由项目的架构师进行设计,要求架构师对项目的需求范围有清晰的了解,并能对系统进行适当的划分,划分为合适的模块和功能,另外,系统架构师对接口技术,公司或者市场上流行的技术架构有较深入的了解,以便进行决策采用什么技术或者平台来开发。
要保证总体设计能覆盖所有的需求,包括功能需求,界面需求,技术需求,性能需求,预算需求,时间进度需求等等。
在对技术进行选型时,系统架构师要与项目管理人员密切沟通,了解项目成员组成,项目成员的技术背景和项目背景,了解公司技术标准、开发平台的现状和规划蓝图,以便找出最适合当前项目的平台和技术,既可以满足用户功能需求,又能在要求的时间和成本内完成项目。也就是在 需求,成本,时间三者之间做好权衡(项目开发金三角)。
总体设计文档,可以一个项目一份。或者比较大的项目,每个模块也有自己独立的总体设计。
总之设计文档也是金字塔级别的,树形结构,逐步细化的一个结构。
二、详细设计
详细设计是开发人员的输入文档,用来指导开发人员开展编码工作。
详细设计文档,针对每个功能点或者说每个特性,具体定义其实现方式。
详细设计至少应该包括:
1,每个功能的处理流程图
2,如果有业务流程,还要包括业务流程的说明,流程图,每个环节的岗位,每个环节的处理内容。
3,界面原型
4,每个功能点(按钮或者菜单)的流程和业务逻辑,
5,数据结构。
详细设计包括:
1,前台部分和服务器部分,
2,以及前后台通讯的方式(一般前后台通讯的方式,在总体设计中已经设计,或者由采用的开发平台来决定)、数据格式等。
3,用到的全局变量或者全局参数。
应当给每个功能以唯一编码。
另外,在详细设计中,还要注明本功能与其他功能的影响关系,这样通过建立功能之间的关系图,可以知道,修改某个功能的实现,会影响到哪个或者哪几个功能。
设计工作要引起大家的足够重视,根据以往的开发经验,大家对这块重视程度不够,在设计阶段花费的时间比较少,往往在还没有进行仔细设计时,就匆忙进入开发编码,导致因为设计不足,考虑不周,返工比较严重,回过头来看,花费的时间一点也不少。根据经验估计,设计阶段,要花费整个开发阶段的30%-60%的工作量。
三、设计评审
系统架构师或者设计人员编写完设计时,需要对设计进行评审。
1,评审的时机
设计完成以后,或者分模块进行评审。
2,评审的目的
(1)确保设计满足用户的需求。是否完整,是否正确。
(2)符合国家法律法规,行业标准,本单位内部开发标准
(3)设计中的设计到的已有组件是否存在版权问题
(4)对存在的问题进行讨论,并给出解决方案。
(5)文档格式是否符合本企业或者甲方要求的文档标准。
3,评审人
(1)公司内部比较资深的设计人员(外部人员)
(2)甲方业务人员???
(3)项目团队核心人员
(4)项目经理
四、文档的组织
1,文档不建议写在同一个文档中,按照模块功能分开独立的文档分别来写。这种有点是显而易见的,方便维护,没有修改冲突。
2,文件使用统一的命名方式,最后使用模块名进行区分
3,流程图和数据库结构可以使用独立的文档
4,要确保文档与代码的统一,尤其是比较大型,参与者比较多,时间周期比较长的项目。也就是通常说的先有文档,再进行编码的模式。
以上开发过程,以及开发过程中对文档的要求是一个通用原则,需要哪些文档,详细到什么程度,包括哪些内容,要是项目规模、成员数量,成员的层次来定。比如一个2.3个人的项目,就没必要拘泥于以上的要求,甚至可以没有文档就可以。但是越大型的项目,对文档的要求也就越高。