软件项目中的软件质量管理摘要软件项目的质量管理指的是保证项目满足其目标要求所需要的过程,它包括编制质量计划、质量控制、质量保证等过程。
软件的质量是软件开发各个阶段质量的综合反映,每个环节都可能带来产品的质量问题,因此软件的质量管理贯穿了整个软件开发周期。
软件项目的质量管理,不仅确保项目最终交付的产品满足质量要求,而且要保证项目实施过程中阶段性成果的质量,也就是保证软件需求说明、设计和代码的质量,包括各种项目文档的质量。
关键词质量管理,质量计划,质量控制,质量保证Software quality in software project managementAbstract Quality management in software project refers to the process to ensure the project meets its objectives and requirements , which includes the preparation of quality planning, quality control, quality assurance and other processes. Software quality at all stages of software development is a comprehensive reflection of the quality of each link may bring product quality problems, the quality of software management throughout the entire software development cycle. Quality management of software projects, not only to ensure the project's final delivery of products to meet the quality requirements, but also to ensure the quality of the process of the initial results of the implementation of the project is to ensure that the software requirements specification, design, and quality of the code, including the quality of project documentation.Keywords Quality management, quality planning, quality control, quality assurance1 前言随着越来越现代化的发展,提起如今的IT项目,软件工程倍受人们关注。
而软件的质量更是众人关注的焦点,因为目前还没有一套完善的评估标准。
甚至有人提出,现在的软件开发根本提不上是“工程”,因为它太稚嫩了,还没有一套成熟的标准来比照;因而软件项目极易出现失败或失误。
大量实践证明,软件工程项目的成败,通常是因为管理问题(协同工作的能力),而不是技术上的问题。
要想做一盘“完美”的软件大餐,质量管理的作用是不言而喻的。
2 项目中质量管理的原则在软件项目实施中,由于进度和成本两大因素的影响,它的质量管理与产品开发有着很大的差别。
因此,在项目实施中做好质量管理工作应该坚持自己的原则。
5.1想法落实到行动中软件质量管理的重要性已经逐渐被国内的IT企业认可,但是要落实到具体的项目实施工作中,并通过它提高软件质量,还有一段很长的路要走。
因为几乎所有的软件公司都灌输着“进度高于一切”的思想,只要是为了赶进度和发布产品,所有影响进度的工作都可以忽略。
因此,把想法落实到实际工作中是做好软件质量管理的第一原则。
5.2提高质量,尊重客户可以说,目前很多公司都有“愚弄客户”的嫌疑,不管是有心的还是无意的。
很多公司实施项目时只要能拿到“钱”就达到目的了,因此也就不在乎是否掩盖缺陷和敷衍客户。
至于后果,那是以后的事情了。
在软件产业发达的今天,已经是客户的买方市场,客户永远会选择质量和服务都表现良好的产品来满足自己的需求。
因此,我们应该尊重客户,把客户放在“上帝”的位置上,认证做好质量。
5.3建立规范的质量保证体系在没有开发规范的前提下,软件团队是不能开发出高质量软件的。
因此软件团队一定要建立规范的质量保证体系,同时把规范体系逐步落实到工作中。
如果急功近利,不但会做很多浪费人力和物力的无效工作,还会给客户留下不好的印象。
5.4项目实施中的技术评审很多软件项目由于性能等诸多原因最后导致失败,实际上都是由于设计阶段技术评审做的不够。
一味地节省时间、关键工作仅由某几个人执行、整个项目的成败依赖于某些“个人英雄”等做法是十分错误的,重要的技术评审工作是不可以忽略的。
技术评审可以把一些软件缺陷消灭在代码开发之前,尤其是一些架构方面的缺陷。
在项目实施中,为了节省时间应该优先对一些重要环节进行技术评审,这些环节主要有:项目计划、软件架构设计、数据库逻辑设计、系统概要设计等。
如果时间和资源允许,可以考虑适当增加评审内容。
5.5项目实施中的过程检查项目经常延期是中国软件企业实施很多项目时候的特点,因此项目实施中的过程检查重点是“进度检查”。
在实际工作中,很多项目都是启动一段时间后就开始不停地加班,使整个团队处于疲惫状态,导致工作效率低下,最后把项目计划丢在一边。
对于这种情况,比较好的做法是不断地检查项目计划与实际进度是否存在偏差,如果存在偏差则找出问题的根源,然后消除引起问题的因素,例如可以调整进度安排或者增加人力投入,这样就避免了问题不断放大。
版本检查在项目实施中也需要特别注意,因为版本混乱会带来很大麻烦,尤其进行测试的时候。
此外,项目实施时候也应该注意文档检查,尤其是一些关键文档的质量,例如接口文档、用户手册等。
5.6项目实施中的软件测试项目实施相关的全部质量管理工作中,软件测试的工作量最大。
由于很多项目在实施中非常不规范,因此软件测试一定要把好关。
软件测试应该重点做好测试用例设计、功能测试、性能测试、缺陷管理等工作。
●测试用例设计:虽然项目实施中没有太多时间来设计测试用例,但是这个环节是必不可少的。
项目实施中设计测试用例应该根据进度安排,优先设计核心应用模块或核心业务相关的测试用例。
设计测试用例的时候可以不设计的特别完善,基本目标是列出测试重点,对测试执行起良好地指导作用,这个时候的测试用例更像是“测试大纲”。
●功能测试:软件首先应该从功能上满足用户需求,因此功能测试是质量管理工作中的重中之重。
功能测试在产品试运行前一定要开展好,否则将会发生“让用户来执行测试”的情况,后果非常严重。
●性能测试:性能测试是经常容易被忽略的测试。
在实施项目过程中,应该充分考虑软件地性能,运行较慢的软件仍然不会为用户所接受。
性能测试可以根据用户对软件的性能需求来开展,通常系统软件和银行、电信等特殊行业应用软件对性能要求较高,应该尽早进行,这样更易于早解决问题。
●缺陷管理:缺陷跟踪与管理工作也经常被忽略,很多问题会被遗忘,直到客户再次发现。
建议测试人员在项目实施中仍然采用一些工具进行缺陷管理与跟踪,保证任何缺陷都得到妥善的处理。
此外,对于一些项目,如果实在没有测试人员,可以考虑让开发人员互相进行测试,这样也可以发现很多缺陷。
项目实施中的质量管理工作是非常复杂的,存在很多不可以控制的因素,例如没有质量人员、测试环境不具备等。
因此,项目实施中的质量管理原则应该是“最大限度地去提高质量”。
只有这样,才能更好地利用现有资源尽可能地提高质量。
3 软件项目质量管理主要存在的问题3.1缺乏软件质量意识缺乏软件质量意识,信息化建设中软件质量问题未被完全重视。
无形的软件产品较有形产品隐蔽,软件质量的检查要求一定的知识基础,对软件进行全面的检测、评估需要系统的方法和相关的标准以及评价体系,这样造成了软件质量意识的淡化。
同时,在项目交付后,软件质量缺乏科学的量化指标。
3.2 追求项目进度追求项目进度,从而忽视了软件质量和软件过程控制。
较之国外长期的信息化的实施过程,我国信息化起步晚,底子薄,信息化过程积累的经验相对较少,尚未形成规范的标准和对应的体系,项目实施中不能形成有效的开发组织计划,文档控制和管理不规范,阶段性测试不深入等质量控制问题大量存在。
3.3软件技术处于发展过程软件技术处于发展过程,质量管理体系滞后。
在开发过程中,对软件的发展高于软件质量的要求。
软件开发是高智力的创造性活动,更强调过程的创新和合作。
3.4缺乏有效质量控制体系信息化过程的流动模式是:需求、调研、选型、招标、开发、测试、上线、维护。
该模式的一个环节的质量问题是通过软件生产企业对产品的负责而受到一定的控制,但是大多数质量控制活动仅限软件测试,未对信息化过程的各个阶段质量进行控制。
4.软件项目质量管理方法论项目质量管理的主要方法包括:确定管理计划、定义合适的软件、确定软件需求、迭代开发、代码走样、软件评审、软件测试几个方面【2】。
4.1确定软件管理计划计算机软件是计算机得以运行的重要保证,它是计算机顺利运行的基础。
在进行软件开发前。
需要有一个软件质量保证计划,用于规划运行计算机软件的运行,设施的调适,并对可能出现的事情进行事先预防。
软件质量管理的内容一般包括:计划实行目的;软件质量管理的相关理论分析和参考文献作保障;在软件质量管理时,组织的领导,以及组织实施任务的责任;软件质量管理的执行标准和约定,用以规范软件执行;计算机软件执行过程中,需要对软件进行详细的审计,以保证计算机软件的规范性;对于计算机软件的实施,要进行软件验证和确认评审,以确认软件能够有效的起效益,特别是对软件的各项功能进行调适,以确认其适应性;要正确运用各项工具、技术和方法,来规范计算机软件操作控制;要记录、收集计算机软件维护时的数据,收集第一手资料,为日后的做准备;要加强员工的风险管理培训意识,提高操作的可行性,保障计算机软件能够持续有效的运行,提高组织效率。
4.2定义合适的软件过程软件过程是一个为建造高质量软件所需完成的任务的框架,即形成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。
在以计算机网络为基础的现代社会信息化背景下过程管理作为现代企业管理的先进思想和有效工具,随着外部环境与组织模式的变化而变化。
因此作为一个好的软件项目过程,必须针对企业和项目的实际情况,确定软件项目运作流程,定义软件功能及相关性能明确各阶段的进入条件和退出条件进行有效的过程控制与管理,在提高软件开发的效率和项目的成功率的基础上进一步保证所开发软件的质量。