`
nything
  • 浏览: 141501 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

大型软件开发过程的质量管理体系

    博客分类:
  • OTS
阅读更多

    一、软件产品质量的特点

    按照ISO 9126的定义,软件的质量通常可以从以下六个方面去衡量(定义)

    ·功用性(Functionality),即软件是否满足了客户功能要求;

    ·可靠性(Reliability),即软件是否能够-直在-个稳定的状态上满足可用性;

    ·可用性(Usability),即衡量用户能够使用软件需要多大的努力;

    ·效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源;

    ·可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力;

    ·可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中。

    可见,同其它产品相比,软件产品的质量有其明显的特殊性。

    第一,很难制定具体的、数量化的产品质量标准,所以没有相应的国际标推、国家标准或行业标淮。对软件产品而言,无法制定诸如"合格率"、"一次通过率"、"PPM"、"寿命"之类的质量目标。每千行的缺陷数量是通用的度量方法,但缺陷的等级、种类、性质、影响不同,不能说每千行缺陷数量小的软件,一定比该数量大的软件质量更好。至于软件的可扩充性、可维护性、可靠性等,也很难量化,不好衡量。软件质量指标的量化手段需要在实践中不断总结。

    第二,软件产品质量没有绝对的合格/不合格界限,软件不可能做到"零缺陷",对软件的测试不可能穷尽所有情况,有缺陷的软件仍然可以使用。软件产品的不完善可通过维护和升级问题来解决。

    第三,软件产品之间很难进行横向的质量对比,很难说这个产品比那个产品好多少。不同软件之间的质量也无法直接比较,所以没有什么"国际领先"、"国内领先"的提法。

    第四,满足了用户需求的软件质量,就是好的软件质量。如果软件在技术上很先进,界面很漂亮,功能也很多,但不是用户所需要的,仍不能算软件质量好。客户的要求需双方确认,而且这种需求一开始可能是不完整、不明确的,随着开发的进行不断调整。

    第五,软件的类型不同,软件质量的衡量标准的侧重点也不同。例如,对于实时系统而言,效率(Efficiency)会是衡量软件质量的首要要素,对于一些需要软件使用者(用户)与软件本身进行大量交互的系统,对可用性(Usability)就提出了较高的要求。

    二、软件产品质量管理的特点

    1.软件质量管理应该贯穿软件开发的全过程,而不仅仅是软件本身

    软件质量不仅仅是一些测试数据、统计数据、客户满意度调查回函等等,衡量一个软件质量的好坏,应该首先考虑完成该软件生产的整个过程是否达到了一定质量要求。在软件开发实践中,软件质量控制可以依靠流程管理(如缺陷处理过程、开发文档控制管理、发布过程等),严格按软件工程执行,来保证质量。例如:

    ·通过从"用户功能确认书"到"软件详细设计"过程的过程定义、控制和不断改善,确保软件的"功用性";

    ·通过测试部门的"系统测试"、"回归测试"过程的定义、执行和不断改善,确保软件的"可靠性"和"可用性";

    ·通过测试部门的"性能测试",确保软件的"效率";

    ·通过软件架构的设计过程及开发中代码、文档的实现过程,确保软件的"可维护性";

    ·通过引入适当的编程方法、编程工具和设计思路,确保软件的"可移植性"等等。

    2 .对开发文档的评审是产品检验的重要方式

    由于软件是在计算机上执行的代码,离开软件的安装、使用说明文档等则寸步难行,所以开发过程中的很多文档资料也作为产品的组成部分,需要像对产品一样进行检验,而对文档资料的评审就构成了产品检验的重要方式。

    3 .运用技术手段保证质量

    利用多种工具软件进行质量保证的各种工作,如用CVS软件进行配置管理和文档管理、用MR软件进行变更控制、用RATIONAL ROSE软件进行软件开发等。采用先进的系统分析方法和软件设计方法(OOA、OOD、软件复用等)来促进软件质量的提高。

<!-- 内容导航 -->

    4 .应用质量管理思想满足顾客需要

    ·缺陷预防

    一 分析过去遇到过的缺陷并采用响应的措施以避免这些类型的缺陷以后再次出现。

    一 规划缺陷预防活动。

    一 找出并确定引起缺陷的通常原因。

    一 对引起缺陷的通常原因划分优先级并系统地消除。

    ·紧紧扣住用户需求

    用户分为两种顾客(Customer)和使用者(User)。前者是付钱的,而后者才是使用者。两者的要求有时是不同的。所以两方面的要求都要满足。 ·采用快速原型法,尽快演示(Demo)给用户并及时获取用户的反馈,根据用户的反馈不断修改软件,而不是全部完工后再最后交给用户。否则,要改的地方可能很多。甚至推翻重来。

    ·充分设计之后再编码,防止因考虑不周而返工。

    ·牢牢控制对缺陷的修改

    要用专门的软件,记录和跟踪软件缺陷的修复。缺陷跟踪记录包括:发现人、缺陷描述、修复人、修复记录、确认人、确认结论,通过后才关闭该记录。

    ·充分进行软件的系统测试

    软件编码、单元测试、集成测试后,还要进行充分的系统测试、回归测试,待软件稳定、不再出现新的缺陷后,再考虑软件出厂。

    · 恰当掌握软件的放行标淮

    并不是零缺陷的软件才是质量高的软件,软件零缺陷几乎是不可能的,对遗留的缺陷要充分进行分析,只要能满足用户需求,软件遗留的缺陷可以在今后升级中解决。

    三、大型软件开发的质量管理体系

    所谓"大型软件开发",通常指那些开发过程资源消耗较大、开发时间跨度长、技术复杂的软件开发过程。例如"集中告警监控软件"NetGuard"在开发过程中,需要30到40名软件工程师花费半年左右的时间;技术上,"NetGuard"与其它多达20多家的电信设备提供商的系统的接口进行互联,并且,作为告警集中监控系统,实时性要求很高。大型软件开发流程可采用螺旋式增量开发方式,示意如下:

大型软件开发过程的质量管理体系
 

    图中各阶段的输出点也是质量控制点,有相应的输出文档和软件代码,均需要得到QM的确认。

    除了上述7个阶段外,还有项目管理(PM)、变更控制、需求控制、文档控制、用户满意度管理等贯穿整个流程。

    软件企业实施ISO 9001,以保证软件产品的质量,总经理应亲自抓质量体系。总经理要制定企业的质量方针和质量目标、配备足够的人力、物力资源,明确各岗位的质量职责,并保证质量体系的运行。

    1.质量管理部门的职责

    由于软件的专业性和复杂性,质量管理可实行"检、监、控"三分离的职责设置:"质量检验"部门是"系统测试部",负责软件质量的检验(功能、性能测试、回归测试等)b"质量管理部"的角色和功能定位为:在管理者代表的领导下,独立:扩企业的运行之外、规划、监督、指导和改进公司质量体系的运行,检查开发结果是否符合规定,可以更全面、客观、公正地观察企业的运际而各部门经理推动该部门的质量管理工作,负行政责任。

    质量管理部的具体职能是:制定质量管理工作计划;对各部门的质量管理工作提出建议指导跟踪、内审、分析质量体系的运行;控制软件和开发文档的版本;确认软件产品的测试结果;组织质量体系的改进。

    根据能力成熟度模型(Capability Maturity Model,简称CMM),质量管理部可开展三个小组的话动、即SEPG(软件工程过程小组)、SCM(软件配置管理小组)、SQA(软件质量保证小组)。这些小组的成员都是兼职的,是各部门的资深开发人员。在质量管理部的领导下,这些小组可以把CMM的原则运用到公司开发流程的改进中。例如分析质量体系各种过程的运行数据,提出对过程的改进方案。

    质量管理部对产品质量进行确认。虽然对软件产品的测试、检验是由专门的部门完成的,但质量管理部要对其进行确认,例如采购的验收、软件的测试等是否按程序文件的规定完成并达到规定的质量要求,开发文档的编写是否符合规定等。

    质量管理部的一项重要工作,是控制软件和开发文档的版本。软件产品的版本非常复杂,相应的开发文档数量多、版本也很复杂,如果软件或文档的版本搞错了,会给使用带来麻烦,所以版本控制是软件产品质量的重要部分。

    对顾客满意程度进行搜集、分析和评价是质量管理部的另一项重要工作。"以顾客为关注焦点"是ISO9000质量管理体系的八项原则之一,公司对顾客的服务的部门有市场营销部、产品开发部、工程部等,而对顾客服务的效果、顾客满意程度的调查、搜集、分析和评价,则应由质量管理部进行(正如运动员不能同时又是裁判一样)。

    2.基于IS09001标准和CMM原则的开发流程管理

    基于ISO9001标淮,并吸收CMM的原则,制定的程序文件和指导书,以及记录这些流程操作的记录表格,应涵盖合同评审、采购、项目管理、软件开发、变更控制、设计评审、文档控制、测试控制、不合格品控制、现场安装、售后服务、技术支持、培训管理等软件开发的全过程,保证质量体系有效性的管理评审、内审、文件/记录控制、纠正/预防措施控制等程序文件,应为各项操作提供科学合理的指导,以此构成完整严密的质量保证体系。

    对于部分模块外包给其它公司开发,公司应首先严格审核承包商的资格,包括人员、设备、资质、以往业绩、管理水平等,与其签订外包合同后,则对承包商进行相同软件的开发过程监控和验收。

    软件开发同样应建立严密的售后服务方面的流程,如技术支持流程、现场技术支持流程、用户本地化技术支持流程、用户走访流程、用户满意调查等,为用户提供全方位的、周到的服务,真正体现ISO9001"让顾客满意"的精神。

分享到:
评论

相关推荐

    大型软件开发过程的质量管理体系.pdf

    大型软件开发过程的质量管理体系.pdf

    大型软件开发过程的质量管理体系汇编.pdf

    大型软件开发过程的质量管理体系汇编.pdf

    基于CMMI的软件质量保证

    软件的质量保证是软件业最...最后得出通过过程改进达到管理提高的目的,最终使得软件质量 有所保证,结果减低企业的工程成本。该方法不仅适用于规模较大的组织和较大型的项目,而且也可以广泛应用于相当 多的小型组织

    软件项目管理师大全(大纲+论文格式+经典案例)

    中国大型建设项目的质量管理和项目管理 380 中小型软件开发项目管理 382 防止软件工程项目范围蔓延的七个步骤 384 某企业IT项目范围管理综述 386 如何做好范围管理? 387 项目范围管理 388 项目范围管理是项目成败的...

    项目管理论文

    项目管理体系:战略好还要管理好 112 项目管理要突出解决好四个问题 113 项目管理业绩为上 115 项目管理应树立的理念 117 项目管理中问题与对策探讨 118 应用P3E进行IT项目管理初探 120 影响项目的因素及经验...

    信息系统项目管理师论文指南加范文30篇

    软件开发项目管理的简单方法 72 软件企业如何面对项目管理 73 软件外包项目管理3点体会 75 软件项目成功的要素 75 软件项目管理的成功原则 78 软件项目管理原则谈 80 软件项目管理中的一些误区 83 软件项目失败因素...

    信息系统项目管理师 论文 信息系统项目管理师范文

    中国大型建设项目的质量管理和项目管理 380 中小型软件开发项目管理 382 防止软件工程项目范围蔓延的七个步骤 384 某企业IT项目范围管理综述 386 如何做好范围管理? 387 项目范围管理 388 项目范围管理是项目成败的...

    计量管理软件

    耐特信计量管理体系版是以测量管理体系认证内容为开发依据,采用先进的平台式开发和大型数据库技术,协助企业快速完成测量管理体系的组织、策划、计划、实施、控制和评价等管理活动,为企业提高产品质量、提高经济...

    软件工程知识点

    在基于软件工程的软件开发过程中,编码往往只是一项语言转译工作,即把详细设计中的算法描述语言转译成某种适当的高级程序设计语言或汇编语言。 为了方便程序调试,针对基本模块的单元测试也往往和编码结合在一起...

    软件测试技术与实践培训班

    熟练使用 robot, loadruuner, jmeter等测试测试工具模,熟悉 RUP,CMM软件工程管理规范和 ISO9000质量管理体系。 王斌 IBM自动化测试专家、多年的软件开发和测试经验,高级软件开发工程师和高级测试工程师;精通 ...

    嵌入式系统/ARM技术中的基于构件的软件版本管理系统研究

    1 引言  配置管理系统[ 3, 9]是软件...在大型软件开发中,系统往往包含较多文件,这使得传统方式版本管理的工作量很大,而且不易于描述文件间内在的组合关系。目前,基于构件的软件开发方法已成为发展趋势[ 7, 8] .

    [详细完整版]26软件工程.doc

    软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率。 衡量软件的常用六个指标:功能性,可靠性,易变性,效率,可维护性,可移植性。 统一过程描述软件的生存期,它用二维图来描述:横...

    测试覆盖率

     凭着对软件测试行业的深刻理解,武友文意识到要解决国内软件应用滞后于硬件的问题,就必须提高国内软件的质量,而要提高软件质量,就必须加强软件开发过程中的测试力量,而独立的第三方测试机构正是一个市场空白点...

    基于构件的软件版本管理系统研究

    1 引言  配置管理系统[ 3, 9]...在大型软件开发中,系统往往包含较多文件,这使得传统方式版本管理的工作量很大,而且不易于描述文件间内在的组合关系。目前,基于构件的软件开发方法已成为发展趋势[ 7, 8] .构件作为

    软件工程—实践者的研究方法

    ·软件开发中可以应用什么过程模型? ·线性过程和迭代过程有何区别? ·它们的优点和缺点是什么? ·在软件工程中可以建议什么更高级的过程模型? 一旦回答了这些问题,读者就能够更好地理解本书其余部分给出的工程...

    世创星级酒店管理软件

    世创星级酒店管理系统是根据酒店管理软件的市场需求而有针对性的开发的一套酒店管理软件,它做到治安管理功能与酒店内部管理功能有效的统一,避免了同一批业务需要在不同软件上重复输入的麻烦,能有效的提高内部管理...

    从Test everything到Automate Everything——第五届中国软件工程大会

    段念致力于软件测试的技术和管理研究,擅长软件测试管理、软件性能测试、单元测试、测试自动化体系和开源测试工具应用,对在企业中应用敏捷开发、快速测试等轻量级过程、提升组织的质量保证能力和建立有效的自动化...

Global site tag (gtag.js) - Google Analytics