二、 软件设计阶段
概述
软件需求分析完成后,根据需求规格说明书编写设计文档,软件设计总体分为两部分:概要设计和详细设计,此阶段的主要任务就是将需求规格说明文档转换为软件设计文档,将需求阶段提出的问题,一一解释,形成详细设计文档,并根据功能要求,定制相应数据结构、各种流程图等,为下一步编码做准备。
主要工作
- 编写概要设计
- 编写详细设计
常见的问题
- 缺少设计模板,模板作为开发规范的一种,有利于以后的开发、维护工作。也是对软件规范化的一种基本要求。
- 外界或内部因素干扰,很多软件公司都没有专门的设计人员,一般由资深开发人员兼任,包括一些大型软件公司也存在这种情况,设计和开发没有一定的界线,设计过程中有很多其它工作要做,往往打乱计划,不能按时按预期目标完成设计。
- 设计人员与研发人员缺少沟通,有时设计人员太过理想化,导致设计出的产品开发语言无法实现或实现起来比较困难,而且严重影响产品的性能和效率,使开发任务无法按时完成。
- 设计文档不详细,有些需求表达不清楚,这个问题估计大部分软件公司都存在,造成这种现象的原因往往是设计和编码人员是同一人,最终代码都是自己写,所以有些东西自己清楚就可以,就懒的写出来了,这样会给以后的维护工作带来困难,工作交接时就显而易见。
- 对总体流程的把握程度不够,目前软件一般都是分模块化设计,各模块之间关系非常紧密,各业务流程之间也是紧密相联,所以在设计某一个功能或某一个模块时要综合考滤,不仅考滤功能,也要考滤与其它业务模块的接口问题。
- 数据结构的定制,数据结构是整个软件系统的骨骼,所有业务的处理都围绕数据结构进行,数据结构合不合理对软件以后的维护和可扩展起重要的作用,所以定制数据结构也要综合全面考滤,对于核心的表要加强评审。
- 设计文档评审的重要性,评审工作是编码前的最后一关,但往往都忽略了这一点的重要性,做产品不全是研发部门的责任,与每个人都紧密相关,评审一般都存在这样的问题:新产品设计期间,大家都关注的比较少,只是几个写设计的人员在忙,等到评审的时候临时召集大家会议交流,大部分还是凭经验,有些深层的东西还是无法评论,导致新产品出来后无法达到预期目标,所以这段期间的交流非常重要,将设计的思想灌输到每个参与者中,达到信息共享的目的。
- 信息共享度比较差,也是一个比较重要的问题,这一点在整个软件周期的每个阶段都很重要,尤其是设计阶段,设计阶段是整个系统框架的搭建时期,与开发、维护及实施人员以后的工作都密切相关,最重要的就是考滤全面,如能及时达到信息共享,就会从各方面收集好的建议或意见,但现实中却存在很多问题,设计人员闷头做设计,很少与外界沟通,信息达不到共享,使开发人员编码时无法完全理解需求、使维护人员在后续的维护中比较吃力、使实施人员在与客户交流中遇到障碍等等。
- 等等