软件质量 毕业论文.doc

上传人:小小飞 文档编号:3973654 上传时间:2019-10-11 格式:DOC 页数:6 大小:252.02KB
返回 下载 相关 举报
软件质量 毕业论文.doc_第1页
第1页 / 共6页
软件质量 毕业论文.doc_第2页
第2页 / 共6页
软件质量 毕业论文.doc_第3页
第3页 / 共6页
软件质量 毕业论文.doc_第4页
第4页 / 共6页
软件质量 毕业论文.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《软件质量 毕业论文.doc》由会员分享,可在线阅读,更多相关《软件质量 毕业论文.doc(6页珍藏版)》请在三一文库上搜索。

1、 本科毕业论文 论文题目:软件质量学生姓名: 学 号:1105290233专 业:软件工程班 级:软件1102级指导教师: 完成日期: 2013 年 8月 25 日软件质量1、 软件质量的定义12、 做好软件质量保证43、 大型软件开发过程的质量管理体系84、 参考文献9内 容 摘 要 本课题总共分为三大部分。而三个部分都是围绕软件质量展开的。第一部分是软件质量的定义。而第二部分主要介绍的是软件质量保证。第三部分着重于大型软件开发过程的质量管理体系。这个这个课题概括的来说是对软件质量的深入理解和掌握。相信对于想在软件从事行业的同学来说一定有所裨益。关键词: 软件质量 软件质量保证 质量管理体系

2、序 言许多IT项目开发的系统应用在生死攸关的场合。例如,1981年,由计算机程序改变而导致的1/67的时间偏差,使航天飞机上的5台计算机不能同步运行,这个错误导致了航天飞机发射失败。1986年,1台Therac25机器泄露致命剂量的辐射,致使两名医院病人死亡。造成惨剧的原因是一个软件出现了问题,导致这台机器忽略了数据校验。这些惨痛的教训说明,在软件开发项目中认真抓好质量管理,并加强有关软件项目质量管理的研究是摆在我们面前的重要课题。一软件质量的定义 概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标

3、准、以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。1.性能(Performance)是指系统的响应能力,即要经过多长时间才能对某个事件作出响应,或者在某段时间内系统所能处理的事件个数;2.可用性(Availability)是指系统能够正常运行的时间比例;3.可靠性(Reliability)是指系统在应用或者错误面前,在意外或者错误

4、使用的情况下维持软件系统功能特性的能力;4.健壮性(Robustness)是指在处理或者环境中系统能够承受的压力或者变更能力;5.安全性(Security)是指系统向合法用户提供服务的同事能够阻止非授权用户使用的企图或者拒绝服务的能力;6.可修改性(Modification)是指能够快速地以较高的性能价格比对系统进行变更的能力;7.可变性(Changeability)是指体系结构扩充或者变更成为新体系结构的能力;8.易用性(Usability)是衡量用户使用软件产品完成指定任务的难易程度;9.可测试性(Testability)是指软件发现故障并隔离定位其故障的能力特性,以及在一定的时间或者成本

5、前提下进行测试设计、测试执行能力;10.功能性(Function ability)是指系统所能完成所期望工作的能力;11.互操作性(Inter-Operation)是指系统与外界或系统与系统之间的相互作用能力。二如何做好软件质量保证 软件质量是贯穿软件生存期的一个极为重要的问题,是软件开发过程中所使用的各种开发技术和验证方法的最终体现。因此在软件生存期中要特别重视质量的保证,以生产出高质量的软件产品。软件质量保证的目标是开发出可接受的软件产品。这里所谓的“可接受”应是用户理解意义上的可接受,或者说应达到用户提出的质量要求。所以软件质量保证的任务自然就是保证软件质量。软件质量保证是提高预防、检查

6、与改进来保证软件质量,是软件生存周期的管理以及验证软件是否满足规定的质量和用户的需求。软件质量保证是由各项任务构成,这些任务的参与者有两种人:软件开发人员和软件质量保证人员。前者负责技术工作,后者负责质量保证的计划、监督、记录、分析及报告工作。软件开发人员通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来保证软件产品的质量。软件质量保证人员则辅助软件开发组得到质量的最终产品。所以软件开发人员和软件质量保证人员都是保证软件质量的重要组成部分。 如果将一个软件生产类比于一个工厂的生产。那么生产线就是过程,产品按照生产线的规定过程进行生产。软件质量保证体系SQA的职责就是保证

7、过程的执行,也就是保证生产线的正常执行。所以我们可以总结出软件质量保证体系SQA的主要职责有以下三点:(1)向管理者提供正确的信息,以使软件开发正确地执行;(2)收集质量数据,确定和管理风险,促进和协助流程改进;(3)充当测试工作的监督者,测试工作是否按照既定的流程(测试计划、测试案例、测试执行)进行。 软件质量保证的主要内容包括:保障制度体系、促使过程改进、指导项目实施、评审项目活动、审核工作产品、协助问题解决、提供决策参考和进行缺陷预防。目前我们的软件质量保证体系是杂乱无章,有时甚至是混乱的,几乎没有定义过程的规则和步骤。软件保证工作完全依赖个人努力和杰出的专业人才,取决于超常的管理人员和

8、杰出有效的软件开发人员。具体的表现和成果都源于或者决定于个人的能力和他们先前的经验、知识以及他们的进取心和积极程度。一旦遇到软件质量危机就放弃原计划过程,反复编码和测试。这是非常危险的,直接阻碍了软件质量保证的有效进行。为了保证软件质量,我们需进行有条理有目的的软件质量保证工作。科学的软件质量保证过程一般包含以下几项活动: (1)首先,建立SQA组;(2)其次,选择和确定SQA活动,即选择SQA组所要进行的质量保证活动,这些SQA活动将作为SQA计划的输入;(3)然后,制定和维护SQA计划,这个计划明确了SQA活动与整个软件开发生命周期中各个阶段的关系;(4)执行SQA计划、对相关人员进行培训

9、、选择与整个软件工程环境相适应的质量保证工具;(5)最终,不断完善质量保证活动中存在的不足,改进项目的质量保证过程。其中软件测试与软件维护是整个软件质量保证体系中最为重要的两个组成部分。软件测试的目标是确保创建的测试计划能够满足所有系统规格说明书的要求;确保经过测试和返工后软件与规格说明书保持一致。软件测试是软件质量保证工作中不可或缺的重要活动,软件测试与软件质量保证是软件质量工程中两个不同的层面工作。软件测试是对过程的产物开发出的软件进行剖析,找出软件运行时出现的问题,记录出错数据,从而达到保证软件质量的目的。可以说软件测试是软件质量保证的最关键的一项措施。建立独立的软件测试,选择好的测试方

10、案,不但能有效地控制软件的风险、提高软件的质量,而且能有效地降低软件的质量成本。 软件维护的目标是确保对已建立的变更控制过程进行检测,包括将变更集成到软件的产品版本中的过程;确保对代码的修改遵循编码标准,并且要对其进行评审,不要破坏整个代码结构。软件运行过程中难免出现问题,这不能完全归咎于软件质量,维护也是保证软件质量的一项措施。为了保证软件质量,我们需要对软件进行维护,在维护过程中发现不足,不断完善软件。软件质量的衡量标准是可以准时地交付给用户,所耗费的成本不超出预算,但最重要的还是确保软件能够正常地运行,所以软件的质量保证工作尤为重要。三大型软件开发过程的质量管理体系(1) 软件产品质量的

11、特点:按照ISO 9126的定义,软件的质量通常可以从以下六个方面去衡量(定义)功用性(Functionality),即软件是否满足了客户功能要求;可靠性(Reliability),即软件是否能够-直在-个稳定的状态上满足可用性;可用性(Usability),即衡量用户能够使用软件需要多大的努力;效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源;可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力;可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中。可见,同其它产品相比,软件产品的质量有其明显的特殊性。第

12、一,很难制定具体的、数量化的产品质量标准,所以没有相应的国际标推、家标准或行业标淮。对软件产品而言,无法制定诸如合格率、一次通过 率、PPM、寿命之类的质量目标。每千行的缺陷数量是通用的度量方法,但缺陷的等级、种类、性质、影响不同,不能说每千行缺陷数量小的软件,一 定比该数量大的软件质量更好。至于软件的可扩充性、可维护性、可靠性等,也很难量化,不好衡量。软件质量指标的量化手段需要在实践中不断总结。第二,软件产品质量没有绝对的合格不合格界限,软件不可能做到零缺陷,对软件的测试不可能穷尽所有情况,有缺陷的软件仍然可以使用。软件产品的不完善可通过维护和升级问题来解决。第三,软件产品之间很难进行横向的

13、质量对比,很难说这个产品比那个产品好多少。不同软件之间的质量也无法直接比较,所以没有什么国际领先、国内领先的提法。第四,满足了用户需求的软件质量,就是好的软件质量。如果软件在技术上很先进,界面很漂亮,功能也很多,但不是用户所需要的,仍不能算软件质量好。客户的要求需双方确认,而且这种需求一开始可能是不完整、不明确的,随着开发的进行不断调整。第五,软件的类型不同,软件质量的衡量标准的侧重点也不同。例如,对于实时系统而言,效率(Efficiency)会是衡量软件质量的首要要素,对于一些需要软件使用者(用户)与软件本身进行大量交互的系统,对可用性(Usability)就提出了较高的要求。(2) 软件产

14、品质量管理的特点:1软件质量管理应该贯穿软件开发的全过程,而不仅仅是软件本身,软件质量不仅仅是一些测试数据、统计数据、客户满意度调查回函等等,衡量一个软件质量的好坏,应该首先考虑完成该软件生产的整个过程是否达到了一定质量要 求。在软件开发实践中,软件质量控制可以依靠流程管理(如缺陷处理过程、开发文档控制管理、发布过程等),严格按软件工程执行,来保证质量。例如:通过从用户功能确认书到软件详细设计过程的过程定义、控制和不断改善,确保软件的功用性;通过测试部门的系统测试、回归测试过程的定义、执行和不断改善,确保软件的可靠性和可用性;通过测试部门的性能测试,确保软件的效率;通过软件架构的设计过程及开发

15、中代码、文档的实现过程,确保软件的可维护性; 通过引入适当的编程方法、编程工具和设计思路,确保软件的可移植性等等。2 对开发文档的评审是产品检验的重要方式。由于软件是在计算机上执行的代码,离开软件的安装、使用说明文档等则寸步难行,所以开发过程中的很多文档资料也作为产品的组成部分,需要像对产品一样进行检验,而对文档资料的评审就构成了产品检验的重要方式。3 运用技术手段保证质量。利用多种工具软件进行质量保证的各种工作,如用CVS软件进行配置管理和文档管理、用MR软件进行变更控制、用RATIONAL ROSE软件进行软件开发等。采用先进的系统分析方法和软件设计方法(OOA、OOD、软件复用等)来促进

16、软件质量的提高。4 应用质量管理思想满足顾客需要缺陷预防。一 分析过去遇到过的缺陷并采用响应的措施以避免这些类型的缺陷以后再次出现。一 规划缺陷预防活动。一 找出并确定引起缺陷的通常原因。一 对引起缺陷的通常原因划分优先级并系统地消除。紧紧扣住用户需求。用 户分为两种顾客(Customer)和使用者(User)。前者是付钱的,而后者才是使用者。两者的要求有时是不同的。所以两方面的要求都要满足。 采用快速原型法,尽快演示(Demo)给用户并及时获取用户的反馈,根据用户的反馈不断修改软件,而不是全部完工后再最后交给用户。否则,要改的地方可 能很多。甚至推翻重来。充分设计之后再编码,防止因考虑不周而

17、返工。牢牢控制对缺陷的修改,要用专门的软件,记录和跟踪软件缺陷的修复。缺陷跟踪记录包括:发现人、缺陷描述、修复人、修复记录、确认人、确认结论,通过后才关闭该记录。充分进行软件的系统测试,软件编码、单元测试、集成测试后,还要进行充分的系统测试、回归测试,待软件稳定、不再出现新的缺陷后,再考虑软件出厂。 恰当掌握软件的放行标淮并不是零缺陷的软件才是质量高的软件,软件零缺陷几乎是不可能的,对遗留的缺陷要充分进行分析,只要能满足用户需求,软件遗留的缺陷可以在今后升级中解决。大型软件开发的质量管理体系:所谓大型软件开发,通常指那些开发过程资源耗较大、开发时间跨度长、技术复杂的软件开发过程。例如集中告警监

18、控软件NetGuard在开发过 程中,需要30到40名软件工程师花费半年左右的时间;技术上,NetGuard与其它多达20多家的电信设备提供商的系统的接口进行互联,并且,作 为告警集中监控系统,实时性要求很高。大型软件开发流程可采用螺旋式增量开发方式,示意如下:图中各阶段的输出点也是质量控制点,有相应的输出文档和软件代码,均需要得到QM的确认。除了上述7个阶段外,还有项目管理(PM)、变更控制、需求控制、文档控制、用户满意度管理等贯穿整个流程。软件企业实施ISO 9001,以保证软件产品的质量,总经理应亲自抓质量体系。总经理要制定企业的质量方针和质量目标、配备足够的人力、物力资源,明确各岗位的

19、质量职责,并保证质量体系的运行。1质量管理部门的职责。由于软件的专业性和复杂性,质量管理可实行检、监、控三分离的职责设置:质量检验部门是系统测试部,负责软件质量的检验(功能、性能测试、回 归测试等)b质量管理部的角色和功能定位为:在管理者代表的领导下,独立:扩企业的运行之外、规划、监督、指导和改进公司质量体系的运行,检查开发结 果是否符合规定,可以更全面、客观、公正地观察企业的运际而各部门经理推动该部门的质量管理工作,负行政责任。质量管理部的具体职能是:制定质量管理工作计划;对各部门的质量管理工作提出建议指导跟踪、内审、分析质量体系的运行;控制软件和开发文档的版本;确认软件产品的测试结果;组织

20、质量体系的改进。根据能力成熟度模型(Capability Maturity Model,简称CMM),质量管理部可开展三个小组的话动、即SEPG(软件工程过程小组)、SCM(软件配置管理小组)、SQA(软件质量保证小 组)。这些小组的成员都是兼职的,是各部门的资深开发人员。在质量管理部的领导下,这些小组可以把CMM的原则运用到公司开发流程的改进中。例如分析质量 体系各种过程的运行数据,提出对过程的改进方案。质量管理部对产品质量进行确认。虽然对软件产品的测试、检验是由专门的部门完成的,但质量管理部要对其进行确认,例如采购的验收、软件的测试等是否按程序文件的规定完成并达到规定的质量要求,开发文档的

21、编写是否符合规定等。质量管理部的一项重要工作,是控制软件和开发文档的版本。软件产品的版本非常复杂,相应的开发文档数量多、版本也很复杂,如果软件或文档的版本搞错了,会给使用带来麻烦,所以版本控制是软件产品质量的重要部分。对顾客满意程度进行搜集、分析和评价是质量管理部的另一项重要工作。以顾客为关注焦点是ISO9000质量管理体系的八项原则之一,公司对顾客的服务 的部门有市场营销部、产品开发部、工程部等,而对顾客服务的效果、顾客满意程度的调查、搜集、分析和评价,则应由质量管理部进行(正如运动员不能同时又是 裁判一样)。 基于IS09001标准和CMM原则的开发流程管理。基于ISO9001标淮,并吸收

22、CMM的原则,制定的程序文件和指导书,以及记录这些流程操作的记录表格,应涵盖合同评审、采购、项目管理、软件开发、变 更控制、设计评审、文档控制、测试控制、不合格品控制、现场安装、售后服务、技术支持、培训管理等软件开发的全过程,保证质量体系有效性的管理评审、内 审、文件记录控制、纠正预防措施控制等程序文件,应为各项操作提供科学合理的指导,以此构成完整严密的质量保证体系。对于部分模块外包给其它公司开发,公司应首先严格审核承包商的资格,包括人员、设备、资质、以往业绩、管理水平等,与其签订外包合同后,则对承包商进行相同软件的开发过程监控和验收。 软件开发同样应建立严密的售后服务方面的流程,如技术支持流

23、程、现场技术支持流程、用户本地化技术支持流程、用户走访流程、用户满意调查等,为用户提供全方位的、周到的服务,真正体现ISO9001让顾客满意的精神。结论 我们做测试的最终目的都是保证质量,那么什么样的质量才算我们的目标,或者说我们要达到什么样的质量保证才算达标?有没有这样一个指标去衡量呢?软件质量的三个层次:a. 符合需求规格;b. 符合用户显示需求;c. 符合用户实际需求。ISO9000 软件质量管理体系CMM(Capabillty Maturity Moelel)软件质量成熟度模型六西格马管理法软件质量模型(6大特性27子特性)1.ISO9000 软件质量管理体系ISO9000:2000版

24、标准ISO9000:制定管理理念和原则ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一进补充。(核心)ISO9004:是组织进行持续改进的指南标准。八项质量管理原则:一以顾客为中心:组织依存于其顾客,因此,组织应理解顾客当前的和未来的需求,满足顾客要求并争取赶超顾客期望。二领导作用:领导者将本组织的宗旨方向和内部环境编统一起来,并创造使员工能够充参与实现组织目标的环境。三全员参与:各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组织带来最大的收益。四过程方法: 将相关的资源和活动作为过程进行管理,可以更高效地得到期望的结果。 五管理系统方法:针对

25、设定的目标,识别理解并管理一个由相互关联的过程的过程所组成的体系,有助于提高组织的有效性和效率。六持续改进:持续改进是组织的一个永恒的目标。七基于事实的决策方法:对数据和信息的逻辑分析或直觉判断是有效决策的基础。八互利的供方关系:通过互利的关系,增强组织及其供方创造价值的能力。参 考 文 献1蔡启先CC2004计算科学教程体系分析与思考J高等工程教育研究,2006(5):87892李红卫,徐亚平在计算机科学与技术专业中增设嵌入式软件专业方向的探讨J计算机教育,2007(4)35373申华嵌入式系统工程专业课程体系建设与实践J武汉职业技术学院学报,2006(7):67694康一梅嵌入式软件工程人才系统化教育探索C第三届全国高等院校嵌入式系统教学研讨会论文集北京:清华大学出版社5Barry W.Boehm软件工程技术丛书M机械工业出版社2004 (7)6柳翔.嵌入式软件工程人才培养的探索与实践J计算机教育,2006(4)7清华大学出版社和中国计算机学会计算机科学技术百科全书M清华大学出版社,2003(8)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1