做好软件项目设计四步法

来源:互联网 发布:2神淘宝外设店 编辑:程序博客网 时间:2024/05/13 16:54
软件设计是软件工程里由需求到实现的必经途径,是将客户需求转化为编码的重要衔接过程。有统计数据显示,软件质量80%是由需求分析与设计决定的。曾有人形象的比喻设计阶段就是搭建骨架,原本预设目标是搭建人类,结果不小心搭建成了喜羊羊或灰太狼,那后期无论如何努力恐怕也很难将其还原以人类了,该阶段的工作可谓是失之毫厘,谬以千里。事实上该阶段的工作就好比玩多米诺,需要不断地寻找时间、质量、成本三者之间的平衡点。

  软件设计阶段的质量对整个软件项目的质量起着统领与指导作用, 山东省软件评测中心作为国内最早一批获得国家实验室认可并取得政府授权的中立的第三方机构,凭籍多年的行业积累与项目经验,对如何做好软件项目设计有着自己的视角:

  一、首先要确定设计规范

  没有规矩,不成方圆。软件项目设计阶段首先要确定设计规范,也就是项目组成员在围绕项目设计展开工作过程中所必须遵守的规则与章程。软件设计要遵循一定的设计规范,即项目组在设计时应当共同遵守的标准。一方面规范软件项目的设计流程与细节,提高设计过程的能见度,便于设计过程的控制与管理,从而提高软件项目质量。另一方面便于项目组内部以及项目组人员对外的交流、协作,同时作为工作成果的原始积累,也便于同类项目的复用与评比。设计规范通常要对以下内容进行约束:

  1、阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的目标及实现的优先级。

  2、根据设计目标与项目环境选取适宜的开发模型。在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。必需认识需求易变性,采用适当的开发模型,保证软件产品满足用户需求。

  3、根据设计目标确定最合适的设计方法。在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件设计的目标。

  4、规定设计文档的编制标准。

  5、规定编码的信息形式和对外接口规约。

  6、确定命名规范。

  7、确定构件重用策略。

  8、面向模块(部件或构件)进行设计。

  9、确定代码编写规范。

  二、做好设计阶段的项目管理,明确岗位职责,凝聚团体智慧

  一个成功的软件项目,从设计阶段就开始展现其灵魂的魅力,它充满生机与活力,可以持续为用户创造价值!

  软件的灵魂来自哪里?它是由其设计人员和整个团队所赋予的,一个没有理想和目标的团队永远做不出具有生命和活力的项目。软件设计的成功源自设计团队集体智慧的迸发,在此过程中系统架构师或设计人员可以针对自己的设计思想提出关于项目管理的解决方案或建议,充分调动团队成员的积极性,从而保障自己的设计方案顺利落地。另一方面,设计阶段的项目管理直接影响各类资源的有效利用,影响到产生符合设计目标的设计方案及项目组工作效率的提高等问题。只有在设计阶段施以有效的项目管理,才能产生高品质的设计方案。项目管理的首要工作是在做好沟通协调的基础上做到人尽其才,才尽其用。下面是软件项目设计阶段角色与职责分配,仅供参考:

三、做好资源支持与后勤保障

  任何一个项目都是基于一定的现实环境产生、发展,因此软件设计的进展也必然依赖外部环境的支撑与保障。小的方面看,工欲善其事,必先利其器。软件设计同样离不开工具、环境支撑,比如设计会需要UML。设计团队要做好环境与工具的准备,可以进一步理解为要做好软硬件环境、工具、技术力量与人才的储备。同时,由于新工具、新技术的不断出现,项目设计团队应当有意愿去寻找和运用新的工具以简化流程进来提高效率,比如可以借助一些开源工具帮助提高软件质量和开发效率。这一点反过来也会为团队营造创新与成长的文化氛围。大的方面看,项目经理至高层级领导要为整个设计团队营造利于设计工作稳步推进的外部资源支持与后勤保障工作。

  四、做好设计评审工作

  1、评审的重要性与评审的七个方面

  软件设计文档,是项目设计团队根据需求文档描述的项目功能而做的项目设计文档,描述了项目功能实现的技术细节。它也是软件项目实现的最终方案,直接用于指导编码人员进行编码实现,所以其质量决定着软件的质量。同时,测试人员要根据这份文档进行测试用例的设计、产出。可以说,这份文档是整个软件项目后续工作的作业指导书。对于这样一份重量级的文档,我们该如何评审或者说我们的评审重点在哪里?我们可以从以下七个方面进行评审:

  第一:设计方案正确性、先进性、可行性;

  第二:系统组成、系统要求及接口协调的合理性;

  第三:软件实现的功能是否覆盖了产品需求文档中要求的功能;

  第四:功能的实现中,是否考虑到了所有可能的分支情况,以及这些分支情况的处理是否合理,和设计要求是否一致;

  第五:对于功能模块的输入参数、输出参数的定义是否明确;

  第六:系统性能、可靠性、安全性要求是否合理;

  第七:文档的描述是否清晰、明确。

  通过对软件设计文档的评审,一方面,整个项目团队的设计、开发、测试人员可以再一次确认对软件功能的理解一致,并确认一些细节分支情况的处理。另一方面在做软件设计时,也会遗漏一些因素的考虑,评审就是大家来共同检查这些遗漏因素,从而有效的保证软件的质量,所以软件设计的评审对保证软件项目质量至关重要。

  2、评审小组成员组成情况:评审小组一般由主审人、评审专家、用户代表、相关领导和部门管理人员、质量保障人员组成。主审人是技术评审的指挥人员,负责评审活动的组织、结论、书面报告和问题跟踪。评审专家应由满足要求的技术人员担任,负责向评审组成员提出自己的评审意见和建议。

  3、评审工作的关闭

  为保障评审效果,必须对评审意见进行处理,处理完毕后,关闭该次设计评审工作。我们可以参照以下五点来判断评审工作是否可以关闭。

  ⑴评审期间提出的所有问题是否都已解决。

  ⑵相关文档中的所有更改是否都已正确完成。

  ⑶修订过的文档是否进行了拼写检查。

  ⑷所有标识为TBD(待确定)的问题是否已全部解决, 或者是否已对每个TBD问题解决过程、解决计划的目标日期和责任人等形成了相关文档。

  ⑸设计文档是否正式进入配置库。

  综上,算是抛砖引玉。