如何做好软件系统设计阶段质量保障

 

  设计是用户需求到编码实现的必经阶段,软件项目在设计阶段的禀赋决定了软件项目的资质。好的软件设计不是软件项目成功的唯一条件,但是没有好的设计软件项目肯定无法做好。

  一、软件设计的重要性体现在以下几个方面:

  1、软件设计在整个软件项目的建设中起着承上启下的重要作用。

  从整个软件项目开发阶段来看,软件项目可以分为需求、设计、编码、验证四个阶段。设计承接需求分析,基于准确的需求分析,对项目目标进行结构化搭建。设计阶段产生的设计说明书以及设计规范是编码阶段的作业指导,也是测试人员开发测试用例的指导书。

  2、软件设计是对软件项目质量进行保障的关键步骤。

   软件项目的质量与需求分析、设计、编码、验证段这四个阶段的质量之间的关系,可以用C语言表达为:最终的软件质量 = 需求分析质量 && 设计质量 && 编码质量 && 验证质量,这种“与”的关系表明任何一个阶段出现质量纰漏,软件项目的最终质量都无法保障。

  3、设计阶段提供的软件表示,使软件项目质量的评价成为可能。

   反映软件设计质量的要素有:准确性、稳健性、安全性、通信有效性、处理有效性、可操作性、完备性、一致性、可追踪性、可见性、可扩充性、复用性、模块 性、清晰性、自描述性、简单性、结构性、硬件系统无关性、软件系统无关性、文档完备性等。通过这些考核要素对设计阶段质量进行控制,从而达到从项目前端控 制软件质量的效果。同时该阶段的设计规范也是进行软件质量评价的参照标准与基本要求。

  因此,想做好整个软件项目的质量保障,必须充分重视设计阶段的质量保障工作。山东省软件评测中心作为国内最早一批获得国家实验室认可并取得政府授权的中立的第三方机构,在十余年的软件项目质量服务过程中发现:

  二、设计阶段经常出现的质量问题从大的方面看有以下几种原因:

  1、需求分析阶段工作不充分

   好的软件设计必然基于准确的需求分析,离开正确的需求分析,软件设计就是做得再好,在源头上也是错误的,更无任何意义,有时甚至是南辕北辙。有些软件项 目因为工期紧张或乙方软件企业管理不规范,甲方用户人员技术受限或配合不到位或承建方需求分析人员业务、技术经验不足等这样那样的原因,需求调研没有做 透,更有甚者基本的业务逻辑还没有完全理清,就匆匆开始需求分析然后又囫囵吞枣的进行自我想象中的架构设计,结果可想而知。

  2、设计不充分

   有许多软件企业不重视设计阶段的工作,或者略掉设计直接进行编码。这样必然把许多的问题遗留给编码阶段,等写了一部分代码后再后头看,错了,返工……另 外,设计人员由于技术欠缺或经验不足,或者对业务理解不够深入,未能充分考虑后期需求变动对设计的影响也是造成设计不充分的一类重要原因。

  设计不充分往往导致频繁变更与诸多性能、安全方面的漏洞。在软件项目里,越是在项目前期发现问题,解决成本越低。据相关机构统计,在设计阶段发现偏差比在需求分析阶段发现并修正要高出5 倍,在编码阶段觉察偏差则会提高到10倍,而如果延续到单元测试系统测试阶段发现设计缺陷修正成本则会提高到20倍。另外,设计人员由于技术欠缺或经验不足,或者对业务理解不够深入,未能充分考虑后期需求变动对设计的影响也是造成设计不充分的一类重要原因。

  3、过度设计

   与设计不充分相对应的一种情况是设计过度,过度设计一般是由于设计人员在做项目分析设计时,过分的考虑潜在的、未来的以及准备扩展等因素,过度的抽象, 过多思考封装、分离解耦,导致太多颗粒单位,太多插件等等,给设计资源造成不必要的浪费,并且可能导致原本可以简单实现的逻辑变复杂,造成系统整体性能的 下降与维护成本的上升等等,以至于影响到用户体验或者简直没法用。

  上述情况都会造成软件设计质量的下降,那么我们应该如何做好设计阶段的质量保障工作?

  三、如何才能做好软件项目设计阶段的质量保障

  1、思想上重视

  充分认识设计阶段的重要性,从思想上强调设计阶段质量保障工作的必要性与重要性。关于软件设计的重要性前文已从几个方面作了总结,不再赘述。项目团队成员与甲方都要充分理解并一致认同设计规范与设计评审等质量管理措施对整个项目的意义与重要性。

  2、选用合适的设计思想、设计方法

  设计开始,在充分了解需求与项目背景的前提下,结合项目情况采用恰当的设计思想与设计方法,从设计的指导思想与方法上避免设计阶段的质量瑕疵。 我们在做软件设计时还要根据项目的具体情况与应用场景选用合适的设计思想作指导,选用合适的建模方法帮我们尽快理清系统的业务逻辑并理出思路。

  从方法学的角度来讲,软件的设计与开发从最初的机器语言-汇编语言发展到面向过程的结构化设计方法,到现在应用较多的面向对象、面向组件发展到面向服务,每一步都体现了不断抽象、更加贴近业务实务的发展趋势。

  不管采用什么样的设计方法进行架构设计,设计都需要以充分满足项目需求为目的,任何分析与设计方法只有针对具体问题才有实际意义。另一方面要考虑的是,采用的方法要侧重满足项目或产品的质量需求,也就是非功能性需求。确保设计阶段的质量无忧。

  3、项目管理上避免

  项目管理是贯穿整个项目生命周期的,80%的软件项目质量问题是由项目管理造成的。软件设计阶段作为软件项目的一个重要环节,要做好质量保障自 然离不开好的项目管理。从设计团队组建到角色分工与权责确定,到设计规范的制定与流程梳理,所有这些工作都需要一个好的团队负责人去把控。设计团队负责人 还要重视设计评审,通过设计评审不断发现问题,逐步完善细化设计架构与详细设计说明书,作为后期代码实现与测试用例编写的指导。要重视项目经理的作用,项 目经理的职责是进行沟通,促进沟通并建立沟通的渠道。只有通过沟通才能在项目成员间建立起认同与理解,从而将设计思路有效实现。

  4、引入专业的第三方质量保障服务机构指导

  一般的项目建设,乙方自己充当质量保障的角色,部分软件企业为了降低成本,尽可能的减少质量保障环节的资源支出,致使设计质量无法保障,即使有 部分软件企业视质量为生命,建立了良好的质量管理体系,但是囿于精力所限或赶工期或质量保障经验上的限制,设计质量也是不能令人满意。而从甲方看,一般囿 于人员、技术、精力的限制,甲方很难有精力或技术能力去对项目的质量进行深入的关注。更何况软件本身并不可见,充满复杂的逻辑关系,模块之间的耦合关联度 不易把握。第三方质量保障服务机构靠技术与服务来赢得客户信任,因而更加重视项目的质量与最终用户体验。从而会更加专业的对待项目过程中的质量管理。

  综上,算是抛砖引玉,欢迎探讨!

 

转载:http://www.blogjava.net/qileilove/archive/2012/04/13/374037.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件系统的开发通常分为fbs三个阶段:功能设计阶段(Function Design Stage),编码阶段(Building Stage)和系统测试阶段(System Stage)。 在功能设计阶段,开发人员将根据用户需求和功能要求来设计软件系统的各个模块和功能。这个阶段需要与用户充分沟通,明确系统的功能和性能要求,进行系统的概要设计和详细设计。开发团队还需要制定开发计划,明确需求分析的工作内容和时间。在这个阶段,需要绘制流程图、数据流图、结构图等相关图表,以便确定系统的结构和组织方式。功能设计阶段的目标是明确软件系统的需求和功能,为后续的编码和测试提供参考依据。 编码阶段是根据功能设计阶段的结果进行具体的编码实现工作。开发人员根据详细设计文档,使用编程语言编写代码,实现各个模块的功能。在编码过程中,开发人员需要遵循编程规范,保证代码的可读性和可维护性。同时,还需要进行代码审查和测试,确保代码的质量和功能的正确性。编码阶段的目标是完成软件系统的实现,为系统测试做准备。 系统测试阶段是对已完成的软件系统进行功能、性能、安全等方面的验证和测试。测试人员根据测试计划和测试用例,对软件系统的各个功能模块进行测试,并记录测试结果和异常情况。测试人员还可以使用自动化测试工具进行一些重复性的测试任务。在系统测试阶段,还需要进行性能测试、兼容性测试和安全测试等,确保软件系统的稳定性和可靠性。系统测试阶段的目标是发现和修复软件系统中存在的问题和缺陷,确保软件系统质量和可用性。 总之,fbs三个阶段是软件系统开发中非常重要的阶段,它们相互衔接、互为依赖,共同保证软件系统的功能和质量

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值