- 浏览: 145468 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
去你姑:
jdk1.6呢?
file的getPath getAbsolutePath和getCanonicalPath的不同 -
iamcrzay:
lj~~
越是对钱没有要求的人,越是垃圾~~
鄙视~~ ...
周末去北京找工作 -
yyang1986321:
MySQL数据转换到Oracle中这也算?有软件可用的
周末去北京找工作 -
frank_je:
nything 写道工资没啥要求,够糊口住宿就行;出差啥的也没 ...
周末去北京找工作 -
night_stalker:
如果你用过 ruby 的 rake 或者 thor,就会发现 ...
Maven入门--概念与实例
一、软件产品质量的特点
按照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"让顾客满意"的精神。
发表评论
-
从架构差异看Web高性能开发
2009-09-13 22:09 50一般情况下,架构分两 ... -
周末去北京找工作
2009-08-01 14:24 1322诚心求职,看热闹的请闪~谢谢! java半年工作经验,主要负 ... -
80后互联网千万富翁成员名单
2009-07-23 17:15 118成功与学历、籍贯,甚 ... -
HTTP头信息
2009-07-15 18:12 2301Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下 ... -
面试时HR常问的8个问题
2009-07-14 17:01 169面试,是了解应聘 ... -
产品需求文档的十步
2009-07-14 16:11 228做好产品需求文档 ... -
需求文档写作要点
2009-07-14 16:06 158需求的写作形式一般分为两种,面向对象和面向过程。对于不同的受众 ... -
FW:求职总结(北京)
2009-07-14 14:31 213FW:求职总结(北京) 发信人: rainway(r ... -
如何在三个月掌握三年的经验?
2009-07-12 02:24 651. 职业分析;2. 编写行 ... -
AJAX 核心三部曲
2009-07-10 16:16 57<script lanuage = "java ... -
面试时最难回答的25个问题
2009-07-02 17:30 862准备是成功的一半 ... -
ExtJS 开发总结
2009-07-02 09:33 24641. ExtJS的定位是RIA,和Prototype、j ... -
JetBrains IntelliJ IDEA 8.0 序列号 注册机 keygen
2009-07-01 12:38 1384UserName: idea Serial No ... -
喜欢使用IntelliJ Idea的25个理由
2009-07-01 09:00 1047IntelliJ Idea是一个相对较新的Java ID ... -
豆瓣的架构—专访豆瓣网站的技术总监洪强宁
2009-06-30 18:41 1014“你要是愿意,就买一枝三块钱的玫瑰,送给我吧,这城市也是怪 ... -
合格java程序员学习过程
2009-06-29 15:48 779合格的程序员应具有实际开发能力的Java和J2EE。如今的IT ... -
产品经理如何正确的写产品需求文档
2009-06-29 15:34 1571通过工具—把思想有逻辑、有细节的合理的组织到一起! 互联网行 ... -
SVN与CVS比较
2009-06-29 15:28 1880SVN与CVS比较 所有的文档 ... -
10个软件架构师在2009年必须知道的话题
2009-06-29 12:47 10321. 云计算Cloud Computing。. ... -
如何自学java迅速成为java高手
2009-06-29 12:43 902很多网友咨询学习Java有没有什么捷径,我说“无他,唯 ...
相关推荐
2. CMMI模型:能力成熟度模型集成,它提供了一种渐进式的改进路径,帮助组织提升其软件开发过程的成熟度和效率。 二、质量管理过程 1. 需求管理:确保需求的清晰、完整和可实现性,通过需求分析、评审和变更控制来...
本文将探讨ISO9001质量管理体系在大型软件开发过程中的应用及其重要性,并以朗讯科技网络技术有限公司为例,展示如何通过该体系来提高软件质量。 在软件产品质量的管理上,我们首先要认识到软件产品的无形性和质量...
大型软件开发过程的质量管理体系汇编.pdf
同时,整个团队需要不断学习和借鉴最佳实践,以持续改进软件开发过程。 最后,软件开发的质量保证体系不仅是一个管理框架,更是一个文化。它要求每一个参与者都有质量意识,无论是开发人员、测试人员还是管理人员,...
一个有效的质量管理体系能够防止在软件开发过程中可能出现的各种问题,就像建筑房屋需要优质的材料和严谨的施工方法一样。以下是对这个主题的详细解释: 首先,质量管理体系包含三个核心部分:质量体系、第三方评估...
学习软件开发过程管理的原因在于,软件开发的复杂性和难度使得过程的质量直接影响到最终产品的质量和成本。 软件定义随着时间的发展而不断演变,从最初的程序概念,到包含文档的软件工程,再到涵盖数据的全面理解,...
在大型软件开发项目中,一个健全的质量管理体系涵盖了多个方面,包括但不限于以下几个核心概念: 1. 功能性(Functionality):这是衡量软件是否能够完成其预定功能的关键指标。开发团队需要依据用户功能需求进行...
实施CMMI模型需要企业进行长期投资,包括培训人员、改进流程以及建立质量管理体系。通过持续的改进和监控,企业将能够提高其软件开发流程的透明度,减少项目失败的风险,并提升最终产品的质量。
### 软件开发过程规范知识点详述 #### 一、引言 本文档旨在详细介绍一个软件开发过程规范文档中的核心知识点。此文档是关于如何规范软件开发过程的一份指导性文件,它不仅包含了技术过程的规范,还涉及了管理过程的...
一套完善的软件项目管理体系及项目管理方案,对于软件开发项目来说至关重要。本文将对软件项目管理体系及项目管理方案进行详细解析,揭示其在软件开发中所发挥的核心作用。 首先,项目管理原则是整个管理体系的指导...
- **加强质量管理**:建立健全的质量管理体系,确保每个环节都能得到有效控制。 - **提升测试水平**:引入先进的测试技术和工具,提高测试效率和准确性。 - **人才培养**:加大对软件测试人才的培养力度,提升整体...
8. **华为IPD流程**:华为的IPD流程管理体系更为具体,包括需求管理、架构设计、项目管理、质量管理等多个子流程。华为的IPD流程还特别强调了“市场驱动”和“客户满意”的原则。 9. **IPD与NPDP**:NPDP(New ...
质量管理在软件开发中扮演着至关重要的角色,特别是在大型企业如邮政公司的信息化建设中。以下是基于标题和描述中可能涉及的一些关键知识点: 1. **需求分析**:在软件开发的初期阶段,需求分析是确定项目目标和...
通过学习《统一软件开发过程之路》,开发者和项目管理人员能够掌握一套系统化的软件工程方法,提高团队的生产力和软件质量。无论是在大型企业还是小型团队,USD都能提供宝贵的指导,帮助实现软件开发的最佳实践。
认证过程涉及质量管理体系的建立、运行、监控和改进,以确保软件开发和服务的持续优化。 总之,《国家标准-软件开发规范》旨在通过标准化的开发流程,提高软件质量和开发效率,降低项目风险,同时也为ISO9001认证...
4. **质量管理体系的引入**:借鉴CMM/CMMI和GJB9001B质量管理体系,建立适应嵌入式软件开发的流程,强化过程管理和质量保证,确保产品的可靠性、稳定性和实时性。 5. **软硬件协同设计**:在开发过程中,需要同时...