`
wsql
  • 浏览: 11755852 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

软件开发各阶段的质量控制

 
阅读更多
提到软件开发,我们的脑海里总是浮现出这样的情景:开发组的每一位成员都在辛苦的工作,有的加班加点,甚至通宵达旦是常有的事,虽然项目经理修改了一次又一次的进度计划,而实际的开发情况却总是很令人担忧,以至于每次向领导汇报工作的时候总是觉得以前制定的计划没有很好的完成,总是觉得人力资源不够,总是觉得我们没有太多的时间。等到代码终于开发完成了,测试进度却又非常令人担忧,每一个小BUG都要花很长的时间去查找,改了某一个小错误却又引起了很多错误,结果产品发布遥遥无期,而项目组里的每一位成员已经筋疲力尽。项目管理培训
bbs.mypm.net
  怎样摆脱这样的困境呢?为何软件开发项目管理这么困难呢?为何我们做的计划总是不能按时完成呢?为何软件开发不能像硬件开发那样可以控制呢?原因在于软件开发完全靠人的大脑思维产生出产品,而每个人的大脑思维是不一样的,因此在软件开发过程中有太多不确定的、可以变化的因素,我们怎样把握住这些变化因素呢?就像我们题目所说的一样,软件开各阶段的成果质量管理,如果我们能够很好的控制软件生命周期每一个阶段的质量,也就很好的控制了整个软件开发的整个过程。
项目管理者联盟文章
  软件产品的质量是个很大的概念,因为软件产品完全是人们大脑思维的产物,就是将大脑里无形的看不见摸不着的思维变成一个可以看到的,可以解决实际问题的一组界面或者组件。这样的一个复杂的过程,质量应该如何保证呢?有人想到了ISO9000、CMM,也有人很反对,说应该用敏捷开发。其实,不管用什么样的开发过程,关键是找到这些过程的真谛,有些人说,ISO和CMM到中国来就变了味了,为什么变味儿了呢?其实我们只学到了该做什么,却不知道怎样去做,为什么要这样做?大家都知道做软件开发需要写需求规格说明书和设计文档,为什么要写,文档的重要性有多高?没有资深开发和管理经验的人员可能很难理解其重要性,如果只是简单的形式上去写一篇这样的文档,对后面的编码和测试没有实际的指导作用,甚至起了“误导”作用,同样会引起大量返工,那么这些文档除了负担之外就没有其他用途了,要知道写这些文档是需要消耗项目组资源的(进度、成本...)。bbs.mypm.net

  很多人又想到了测试,觉得是我们测试的力度不够,所以我们产品质量不过关,其实,软件开发的质量保证从开发最初就应该开始了,如果到了测试阶段才重视就已经晚了。软件产品开发过程,不管采用瀑布式还是迭代式,都离不开需求、设计、编码、测试这几个阶段,在迭代式开发中,这几个阶段也是周期性出现的。怎样把握好每个阶段的质量,确实不是一件容易的事,本期重点介绍一下需求、设计和编码阶段的成果质量,当然以后会共享一些过程质量方面的知识。项目管理培训

  1、需求项目经理博客
项目经理博客
  我们知道人与人的交流总是会存在一些误会,同样一句话,心情不好与心情好的时候听起来的感觉可能会截然相反,正是因为人们之间存在着理解上的偏差,在描述需求的语言上就应该注意尽量避免歧义的产生。如果对UML比较熟悉的话,需求分析可以利用UML工具进行,这样可以减少一些自然语言引起的歧义,但是UML可能与用户沟通起来有一些障碍,因为并不是所有的用户都了解UML各种图形的意思。除了工具之外,我们可以从以下几个方面来保证需求描述的质量。

  1、看句子和段落是否简短,一个很长的句子,看起来会非常困难,因此无法弄懂真正的需求,另外过长的句子和段落容易让人忽视一些需求,所以如果一个句子不能完全描述清楚需求,应该将其拆分成多个小句子。2、句子是否有语法错误,还要注意标点符号,有时,标点符号点错了,就完全成了另外一个意思了。3、是否存在模糊不清的需求,出现类似于可能,大概,或者等词汇表述的需求。4、另外注意引用的术语和词汇是否前后一致。5、是否存在一些形容词、比较性词语,比如:容易的、快速的、方便的、有效的、许多、很少、简单、复杂、最新的,界面友好的,减少、扩大,不小于等等,需要将描述性词语进行量化,并且给出具体值或者范围,要不然不同的人根据不同的理解就会得出不同的结果,最终可能跟用户最初的要求有偏差,那“炒回锅肉”的事情就不可避免地会发生。blog.mypm.net

  另外保证需求质量的一个很重要的因素就是需求是否细化,如果需求不细化也会很容易造成代码的返工,于是就出现了我们的程序员尽管总是加班加点却总是不能如期的完成任务的情景。那么我们怎样才能判断需求细化的程度呢?需求细化程度确实很难把握,什么样的需求可以算是比较细了,不用再进行细化了呢?哪些需求又太粗了呢?答案是需求是否可以写出相应的测试用例,如果写不出来,就说明需求还不是很细,还需要再进行细化。
www.mypm.net
  2、设计
项目管理者联盟
  软件架构设计在软件产品开发周期中占有很重要的位置,我们开发出来的软件产品在开发伊始到产品发布会涉及到方方面面的角色,例如:用户、项目管理人员、程序员、测试员、维护人员等等。不同的角色对架构设计的要求也不相同。例如用户关心的是需求,因此我们的设计对需求的覆盖率是多少?对于程序员来说模块是否清晰,类的功能是否单一等等,对于测试人员来说系统的是系统的可测试性。对于维护人员来讲系统的扩展性、可维护性如何?一个高质量的软件架构,应该最大限度的考虑并满足不同角色的不同要求。正是因为有这些要求,我们在进行软件设计的时候,应该进行全面的考虑。一般用来衡量软件设计质量的标准可以从以下几个方面来考虑:

  1)、功能性:包括完全性、正确性、安全性、兼容性、互用性。完全性包括功能点覆盖率,重点功能点覆盖率,优先功能覆盖率。正确性包括需求一致度。安全性根据软件需求的不同有不同的安全性要求。
blog.mypm.net
  2)、效率:包括产品运行的时间效率和利用的硬件资源两方面来考虑。www.mypm.net

  3)、维护性:包括架构的可改正性,可扩充性以及可测试性。如果用户的一个很小的需求变更会引起架构设计很大的变化,那么这样的架构设计的可改正性和可扩充性就比较差。转自项目管理者联盟
项目管理培训
  4)、可移植性:包括硬件的独立性、软件独立性、可安装性、可重用性。软件设计是否模块化、每个模块的可复用性如何都是应该考虑的因素。
项目经理博客
  5)、可靠性:包括缺陷数量、容错性、可用性。
6)、使用性:包括可理解性、易学习性、可操作性、易沟通性。我们软件的最终目的是让用户来使用的,如果易用性不好,可操作性不好都会影响用户对软件的接纳程度。因此在软件的可使用性也是非常重要的。

  3、编码转自项目管理者联盟

  代码质量的一个很重要的标准就是代码的可读性及规范性,可读性不一定是简单的代码,而是容易理解的代码,因为过于复杂的代码难以测试和维护,同时出错的几率也会更高。如果一个方法内部的代码很长,而且使用了很多令人难以理解的数据集,这样就会带来代码维护的困难,因为很少有人能够有效地分析它们,因此也就是最容易出现缺陷和错误的地方。类之间的耦合度会造成类与类之间的相互关联,当一个类发生改变时会使其他的类发生意想不到的变化,一般从导入类的个数判断类之间的耦合度,如果导入类的个数很多,每一个导入类发生变化都会影响到该类本身,另外如果该类的public方法太多也会导致类之间的高耦合性增加。
项目管理者联盟文章
  也许有的程序员会认为写出可读、规范的代码会影响工作进度。的确,对于程序员个体短时间来说为代码写上注释是要花费些时间,但如今软件开发是多人协作

  周期很长的过程,写过程序的人都知道,如果自己写了不规范的代码,随着自己所写的代码越来越多,到后来需要修改某个前期写的模块时都不知道自己当初是怎么想的了,读自己的代码也需要花很长时间才读懂。况且如果随着人员的调动等其他原因,往往维护代码的程序员已不是当初写代码的人,很多情况就是读懂了一段糟糕的代码还比重新写出一段代码花费的时间还长,严重影响工作效率(有些时候还影响维护人员的心情),反过来,如果大家都讲究把代码写成规范可读的,无疑对于整个组织来说提高总体工作效率是非常有用的。

  代码质量另一个非常重要的衡量手段就是测试,通过统计测试代码所产生的缺陷情况,如严重等级分布、缺陷曲线的变化等可以从一个方面来简单地评估代码质量。
分享到:
评论

相关推荐

    软件测试与质量控制

    软件质量控制方法、软件测试原则、软件测试步骤与软件开发个阶段的关系等

    软件质量与软件开发

    1.当客户或用户在软件中发现缺陷时,这将使最佳开发策略和所花的工作量化为乌有。 2.软件测试是SDLC中的一个重要阶段,可确保软件的高效且零缺陷。...此外,它说明质量保证和质量控制的含义以及这两个活动之间的区别。

    计算机软件质量保证规范

    其中软件开发阶段一般又划分成需求分析、概要设计、详细设计、编码与单元测试、组装与系统测试以及安装与验收等六个阶段。 3.8 验证 verification 验证是指确定软件开发周期中的一个给定阶段的产品是否达到上一...

    软件开发类投标项目全套解决方案模板

    5. 计划中,在质量控制活动后应该有修改工作 171 6. 为过程改进安排时间 172 7. 管理项目的风险 172 8. 根据工作计划而不是日历来作估计 172 9. 不要为人员安排超过他们80%的时间 172 10. 记录你的估算和你是...

    软件测试在整个软件开发过程中的作用

    软件测试是对软件产品和阶段性工作成果进行质量检验,力求发现其中的各种缺陷,并督促修正缺陷,从而控制和保证软件产品的质量。所以软件测试是软件公司致力于提高软件产品质量的重要手段之一

    项目、软件开发计划模板

    2.4 软件开发计划的演进 3 3. 项目组织 3 3.1 组织结构 3 3.2 对外联系 3 4. 管理流程 3 4.1 项目估计 3 4.2 项目计划 3 4.2.1 阶段计划 3 4.2.2 迭代目标 3 4.2.3 发布版 3 4.2.4 项目时间表 3 4.2.5 项目资源分配 ...

    计算机软件设计开发控制程序.docx

    负责项目技术方案的制定,负责项目设计和开发过程中的进度、成本和质量的跟踪和控制,组织设计和开发各阶段的设计评审,负责项目相关部门工作协调及相关信息的沟通,组织编写《软件需求规格说明书》(JL730101)、...

    软件开发计划Software-Development-Plan

    4.4.4 质量控制计划 14 4.4.5 报告计划 15 4.4.6 评测计划 15 4.5 风险管理计划 15 4.6 收尾计划 15 5 技术流程计划 15 5.1 开发案例 15 5.2 方法、工具和技巧 15 5.3 基础设施计划 16 5.4 产品验收计划 17 6 支持...

    软件生命周期模型选择及WBS分解指南

    软件生命周期模型,通俗说就是,软件开发过程中所遵循的模式,即把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。 软件生命周期模型和...

    北大青鸟ACCP 6.0 软件开发初级程序员:使用Java实现面向对象编程.pdf

    不好意思,本人发的"北大青鸟ACCP 6.0 软件开发初级程序员:c#语言和数据库技术基础"和 "北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统" 文件搞反了,如果一起下载不影响的。呵呵 ACCP...

    测试过程管理及质量控制讲解视频教程

    11.测试预备管理之各阶段测试策略的制定 12.测试规划及执行、测试的配置管理以及人员的选择 13.测试准备过程之测试计划准备 14.测试准备过程之测试设计以及测试开发 15.测试执行环节管理_测试执行以及人员激励 16....

    软件开发人员薪酬设计方案.doc

    动态激励性 第三,企业在不同发展阶段和不同战略目标下应当对软件开发人员实行不同的薪酬策 略,以配合企业总体战略目标的实现,体现其动态激励性。 从企业所处发展阶段来看,在企业初创期,可以采用:低底薪+高奖金...

    软件开发人员薪酬设计方案(1).doc

    动态激励性 第三,企业在不同发展阶段和不同战略目标下应当对软件开发人员实行不同的薪酬 策略,以配合企业总体战略目标的实现,体现其动态激励性。 从企业所处发展阶段来看,在企业初创期,可以采用:低底薪+高奖金...

    软件工程与软件质量管理浅析.doc

    首先介绍软件工程的相关概念和发展分类,然后对于软件产品质量管理功能进 行说明,最后指出软件产品质量的保证一定要贯穿于整个软件产品开发的整个阶段,作 为一个系统的工程来实现。 【关键词】软件工程 软件危机 ...

    软件工程知识点.doc

    软件危机的表现:(1)软件开发进度和成本难以控制。(2)软件产品难以满足用户的 需求。(3)软件质量难以得到保证。(4)软件产品难以进行维护。(5)软件的文档资 料难以管理。(6)软件产品的生产率难以得到...

    软件项目管理质量管理-ppt

    而软件项目管理的质量管理则是在项目生命周期的各个阶段中,采取一系列的质量保证和质量控制措施来确保项目的产品或结果符合质量要求,且保证项目在满足质量目标的同时达到经济效益。 具体来说,软件项目管理的质量...

    北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统.pdf

    分维度培养:从业务理解、经验积累、规范性、质量控制、团队意识和软件生命周期六个方面进行训练。  4.分层次深入:主要分为初次使用、理解加深和灵活应用这三个层次。学员理解为更为透彻,掌握更为牢固。  逆向...

    北大青鸟软件测试教程PPt

    北大青鸟软件测试教程PPt 定义软件质量和软件质量保证 解释软件开发各个阶段 SQA 的目标 实现软件质量保证 建立质量管理体系 建立质量计划 质量保证 质量控制的输入 质量控制的手段和技巧

    软件系统项目实施方案(通用模板)

    1、项目总体实施方案 ...2.5.5软件质量控制 2.6项目协调与合作计划 2.6.1协调与合作管理方案 2.6.2协调手段 2.7配置管理 2.7.1配置管理和版本控制 2.7.2变更管理的方法 2.8文档管理 2.9人员管理 2.10保密管理

    软件开发文档模板

    项目开发当中各个阶段的文档模版 非常好用 《立项建议书》 《立项调查报告书》 《立项可行性分析报告》 《立项评审报告》 《结项申请书》 《结项评审报告》 《项目估计表》 《项目计划》 《项目计划变更控制报告》 ...

Global site tag (gtag.js) - Google Analytics