论文部分内容阅读
【摘要】软件开发具有很强的专业性、技术性、复杂性和综合性,项目过程质量控制是影响整个软件开发效益的关键所在。文章首先对软件开发工程及常见的质量问题进行探讨,在此基础上,提出了软件开发项目过程质量控制要点。
【关键词】软件开发项目 过程质量控制 要点
过程质量控制直接影响着软件开发项目质量与效益,加强对当前软件开发项目过程质量控制,具有十分重要的意义。
1.概述
软件开发主要包括需求分析、设计、编码和系统测试及beta测试阶段。但是,在长期实践中发现,软件开发项目的成功率比较低,一般都低于30%,其中根本的原因就是软件项目过程中存在着质量问题,如计划与实际不符合,需求欠明确,设计不够合理,编程效率低,测试的严密性不够,控制变更不力,配置管理不到位等问题。文章立足软件开发项目实际,就如何做好过程质量控制与各位进行探讨。
2.软件项目开发过程质量控制要点分析
软件开发项目生命周期主要分为6个阶段,每个阶段都有不同的目的与任务,我们要按照全面质量管理的理念,将质量管理贯穿到软件开发项目的全过程中,确保软件开发成果符合质量要求。
2.1 项目规划力求科学
项目规划是对项目范围、资源、进度、成本、标准、风险等方面系统的谋划和安排,为项目组织指明努力方向和奋斗目标,并提供活动准则和资源保障。
项目规划是软件项目开发过程质量控制的首要一步,是影响后续工作质量的关键因素所在。因此,做好项目规划就是要对项目范围、项目资源、项目风险等进行全面考虑和策划,切不可生搬硬套,力求规划的全面性、科学性和合理性。
2.2 需求分析力求精准
需求分析是指软件开发人员全面理解用户需求,定义系统做什么和如何做的过程,并就软件功能与客户达成一致。包括需求的获取、分析、规格说明、评审等一系列活动。软件质量满足用户需求程度的多少,是衡量软件质量的重要指标,是决定软件项目质量的根基所在。如果在需求分析中做得不够精细准确,哪怕一丁点失误,都可能造成严重的影响和损失。因此,必须确保需求分析的精准性。需求分析就是全面深入地了解用户的各种需求,并将接收的用户需求准确地表达出来,形成标准的文档记录,这就是需求规格说明书。
合格的需求规格说明书应该着重考虑以下几个方面,一是确保需求分析的完整性。既要进行所有的功能性需求分析,也要进行非功能需求分析。作为需求分析人员,必须高度重视与用户的沟通交流,全面深入地了解业务场景、范围、逻辑及用户对软件的预期。在进行需求分析中,还要引导客户对软件的特性、规格和运行环境需求进行充分说明和确认。二是需要确保需求分析的准确性。作为需求分析人员,应尽可能保障所作的需求分析与用户期望相同。在实际操作中,如果仅仅进行一次性需求分析,是难以做到充分准确,因此,一般需要先根据初步了解将原型做出来后再与用户深入沟通交流,这样能够得到更好的效果。需求的准确性还要求在需求编写过程中要避免使用“等等”,“各种”这些泛指词汇,要明确地将所需支持的多种特性列举出来,并对范围进行清晰地界定。三是确保需求分析的一致性。要在需要逻辑、业务处理接口及顺序等方面保持一致性。四是具有可验证性。不管是功能性或非功能性需求的指标,都是可以衡量或测试的。如果需求不具备可验证性,则是不符合要求的。这些可验证性要求,各种指标不能有“国际领先”、“国内一流”等词汇,而是要进行量化描述。五是具有无歧义性。这是指需求表达必须是独一无二的、明确的,切不可产生歧义,为了消除人员本身语言组织或语言本身多义性所可能产生的歧义,可以采用UML图形语言,可以有效地消除需求的歧义性。
2.3 软件架构和设计的质量控制要点
架构设计就是对软件系统进行整体设计,在完成需求开发后,进一步就是软件架构与设计。根据不同的层次,软件设计可以分为架构、概要和详细三种设计,包括系统框架建立、接口定义、数据库设计、模块的算法和细节、界面设计等。软件设计直接关系着软件产品的结构、层次,还决定了软件产品的模块及逻辑接口的安排。在软件构建与设计时,要注重其具有可用性、健壮性、可扩展性、一致性、安全性。
可用性是指所设计的软件必须能够与基本业务需求相满足。“健壮性”就是指软件的容错及异常处理能力。在软件运行过程中,如果发生出错,可以快速地自我修复,并不能因为此种出错而影响用户正常业务的进行。“可扩展性”就是要对用户后续需求进行充分考虑,因此在设计时既要确保其具有一定的超前性,又不能太过复杂而导致设计复杂性无谓地增加。从“一致性”来看,一方面是符合需求规格,确保需求具有可追溯性,另一方面,三个不同层面设计的接口必须一致。“安全性”是充分考虑软件安全问题,从软件结构、规范上避免软件的安全漏洞。这样的软件设计必须具有清晰的结构和分明的逻辑。
2.4 软件编码
作为软件开发人员,就是使用计算机语言,按照设计要求实现需求说明书所要实现的功能特性。通过实践经验可以证明,做好编码质量控制具有十分重大的意义。因此,可以从以下几个角度入手,有效控制编码质量。一是代码规范。在软件开发中,必须要依靠统一规范对大家的编码进行约束。通过编码规范,可以提高软件的质量,还能将编码错误的出现概率降到最低程度,特别有助于软件开发团队中年轻成员的成长。二是代码检查。代码检查的传统方式是代码走读,也就是在完成模块代码后,由几个同事和作者走读代码。作者对代码进行讲解,走读人员认真检查核对代码分析,看是否存在问题。三是代码检查工具的充分利用。代码分析工具已具有很强的智能性和准确性,能支持多种编程语言,可以将很多编码错误准确地分析出来,代码检查工具的使用使代码检查工作效率大大提高。四是模块自测。开发人员自测需要清楚模块代码逻辑,有能力将各种测试用例进行检测,可以覆盖各个分支代码。五是组装测试。这种测试也称联合测试或集成测试,在开发人员完成各种负责的模块后,按设计的数据流程对各个模块的接口进行验证。 2.5 软件产品开发测试阶段质量控制要点
在编码完成后,就是测试阶段,这个阶段主要可以分为系统和beta测试阶段。
2.5.1 做好系统测试。系统测试就是利用各种方法或工具检验软件满足要求的程度。可以分为静态和动态测试、单元和集成测试、白盒和黑盒测试、功能和健壮测试等。在进行系统测试时,一般使用独立测试人员。从心理学角度分析,开发人员与测试人员具有共同的目的,开发人员为了对软件正确性进行验证而进行自测和集成测试。测试人员的目的是发现软件缺陷,因此,这两种测试具有互补性,具有其重要性和必要性。特别值得一提的是,产品包及系统需求说明书是系统测试的主要依据,通过系统测试确保软件产品与需求说明书相符合。在进行系统测试时,必须确保测试的全面性,也就是先根据需求说明书编写测试大纲,再按照规定的范围和衡量指标进行,即要覆盖功能性需求和非功能性需求,以确保系统测试的完整性。在进行系统测试前,要将测试用例先编写出来,以避免测试的随意性。一是采用等价类分法。对测试空间进行划分,要确保每个子集的程序缺陷是等价的,这就是等价子集。通过等价划分测试空间来进行测试用例设计,以确保在测试用例场景对测试空间覆盖的最大化。二是采用边界值法。这是对等价划分测试用例的有效补充手段,它不是将等价任意元素选择出来,而是选用边界值法。通过长期的经验总结发现,很多错误就是在输入边界或输出边界发生的。三是采用因果图法。通过图解法将各种组合情况输进来,将测试用例设计出来,它能够对程序输入条件各种组合情况进行检查。
四是注重应用自动化测试。功能回归测试需要的测试投入非常大,而采用自动化测试则能极大地减少资源投入,并且能够对软件基本功能得到充分测试。特别是软件系统的安全性和业务的安全性已经成为业界人士关注的焦点,因此,必须对软件进行安全性测试。
2.5.2 加强Beta测试
在完成软件产品的系统测试后,还要做好Beta测试。在产品发布之前,一个或多个客户在实际环境的深刻验证。在Beta测试中,必须充分考虑客户环境的典型性,这样才能确保软件产品能够适应多种环境。从客户关系方面,要考虑Beta测试产品与发布产品是否相一致。可能没有正式发布的产品性能优越,而存在一些缺陷。因此,必须选择关系比较好的客户。由此可见,通过严格质量控制,可以尽早尽快地发现存在的问题,提高软件质量和开发效率。
2.6 强化配置管理
规范的配置管理应包括严格的版本控制、有序的变更控制、良好的配置控制和严格的配置审计,这是伴随软件项目过程阶段的一项重要的质量控制活动,也是保证软件项目质量的关键过程。所以必须致力于配置管理的强化。
3、结语
综上所述,软件开发是一项具有很强专业性、技术性、复杂性和综合性的项目。加强对软件项目过程质量控制是确保软件项目质量、安全与效益的重要保障。因此,加强对软件开发项目质量控制具有非常重要的意义,我们应该充分认识到软件项目研究的重要意义,要将质量控制贯穿到全过程中,切实掌握好质量控制要点,这样才能确保软件开发项目的质量。
【关键词】软件开发项目 过程质量控制 要点
过程质量控制直接影响着软件开发项目质量与效益,加强对当前软件开发项目过程质量控制,具有十分重要的意义。
1.概述
软件开发主要包括需求分析、设计、编码和系统测试及beta测试阶段。但是,在长期实践中发现,软件开发项目的成功率比较低,一般都低于30%,其中根本的原因就是软件项目过程中存在着质量问题,如计划与实际不符合,需求欠明确,设计不够合理,编程效率低,测试的严密性不够,控制变更不力,配置管理不到位等问题。文章立足软件开发项目实际,就如何做好过程质量控制与各位进行探讨。
2.软件项目开发过程质量控制要点分析
软件开发项目生命周期主要分为6个阶段,每个阶段都有不同的目的与任务,我们要按照全面质量管理的理念,将质量管理贯穿到软件开发项目的全过程中,确保软件开发成果符合质量要求。
2.1 项目规划力求科学
项目规划是对项目范围、资源、进度、成本、标准、风险等方面系统的谋划和安排,为项目组织指明努力方向和奋斗目标,并提供活动准则和资源保障。
项目规划是软件项目开发过程质量控制的首要一步,是影响后续工作质量的关键因素所在。因此,做好项目规划就是要对项目范围、项目资源、项目风险等进行全面考虑和策划,切不可生搬硬套,力求规划的全面性、科学性和合理性。
2.2 需求分析力求精准
需求分析是指软件开发人员全面理解用户需求,定义系统做什么和如何做的过程,并就软件功能与客户达成一致。包括需求的获取、分析、规格说明、评审等一系列活动。软件质量满足用户需求程度的多少,是衡量软件质量的重要指标,是决定软件项目质量的根基所在。如果在需求分析中做得不够精细准确,哪怕一丁点失误,都可能造成严重的影响和损失。因此,必须确保需求分析的精准性。需求分析就是全面深入地了解用户的各种需求,并将接收的用户需求准确地表达出来,形成标准的文档记录,这就是需求规格说明书。
合格的需求规格说明书应该着重考虑以下几个方面,一是确保需求分析的完整性。既要进行所有的功能性需求分析,也要进行非功能需求分析。作为需求分析人员,必须高度重视与用户的沟通交流,全面深入地了解业务场景、范围、逻辑及用户对软件的预期。在进行需求分析中,还要引导客户对软件的特性、规格和运行环境需求进行充分说明和确认。二是需要确保需求分析的准确性。作为需求分析人员,应尽可能保障所作的需求分析与用户期望相同。在实际操作中,如果仅仅进行一次性需求分析,是难以做到充分准确,因此,一般需要先根据初步了解将原型做出来后再与用户深入沟通交流,这样能够得到更好的效果。需求的准确性还要求在需求编写过程中要避免使用“等等”,“各种”这些泛指词汇,要明确地将所需支持的多种特性列举出来,并对范围进行清晰地界定。三是确保需求分析的一致性。要在需要逻辑、业务处理接口及顺序等方面保持一致性。四是具有可验证性。不管是功能性或非功能性需求的指标,都是可以衡量或测试的。如果需求不具备可验证性,则是不符合要求的。这些可验证性要求,各种指标不能有“国际领先”、“国内一流”等词汇,而是要进行量化描述。五是具有无歧义性。这是指需求表达必须是独一无二的、明确的,切不可产生歧义,为了消除人员本身语言组织或语言本身多义性所可能产生的歧义,可以采用UML图形语言,可以有效地消除需求的歧义性。
2.3 软件架构和设计的质量控制要点
架构设计就是对软件系统进行整体设计,在完成需求开发后,进一步就是软件架构与设计。根据不同的层次,软件设计可以分为架构、概要和详细三种设计,包括系统框架建立、接口定义、数据库设计、模块的算法和细节、界面设计等。软件设计直接关系着软件产品的结构、层次,还决定了软件产品的模块及逻辑接口的安排。在软件构建与设计时,要注重其具有可用性、健壮性、可扩展性、一致性、安全性。
可用性是指所设计的软件必须能够与基本业务需求相满足。“健壮性”就是指软件的容错及异常处理能力。在软件运行过程中,如果发生出错,可以快速地自我修复,并不能因为此种出错而影响用户正常业务的进行。“可扩展性”就是要对用户后续需求进行充分考虑,因此在设计时既要确保其具有一定的超前性,又不能太过复杂而导致设计复杂性无谓地增加。从“一致性”来看,一方面是符合需求规格,确保需求具有可追溯性,另一方面,三个不同层面设计的接口必须一致。“安全性”是充分考虑软件安全问题,从软件结构、规范上避免软件的安全漏洞。这样的软件设计必须具有清晰的结构和分明的逻辑。
2.4 软件编码
作为软件开发人员,就是使用计算机语言,按照设计要求实现需求说明书所要实现的功能特性。通过实践经验可以证明,做好编码质量控制具有十分重大的意义。因此,可以从以下几个角度入手,有效控制编码质量。一是代码规范。在软件开发中,必须要依靠统一规范对大家的编码进行约束。通过编码规范,可以提高软件的质量,还能将编码错误的出现概率降到最低程度,特别有助于软件开发团队中年轻成员的成长。二是代码检查。代码检查的传统方式是代码走读,也就是在完成模块代码后,由几个同事和作者走读代码。作者对代码进行讲解,走读人员认真检查核对代码分析,看是否存在问题。三是代码检查工具的充分利用。代码分析工具已具有很强的智能性和准确性,能支持多种编程语言,可以将很多编码错误准确地分析出来,代码检查工具的使用使代码检查工作效率大大提高。四是模块自测。开发人员自测需要清楚模块代码逻辑,有能力将各种测试用例进行检测,可以覆盖各个分支代码。五是组装测试。这种测试也称联合测试或集成测试,在开发人员完成各种负责的模块后,按设计的数据流程对各个模块的接口进行验证。 2.5 软件产品开发测试阶段质量控制要点
在编码完成后,就是测试阶段,这个阶段主要可以分为系统和beta测试阶段。
2.5.1 做好系统测试。系统测试就是利用各种方法或工具检验软件满足要求的程度。可以分为静态和动态测试、单元和集成测试、白盒和黑盒测试、功能和健壮测试等。在进行系统测试时,一般使用独立测试人员。从心理学角度分析,开发人员与测试人员具有共同的目的,开发人员为了对软件正确性进行验证而进行自测和集成测试。测试人员的目的是发现软件缺陷,因此,这两种测试具有互补性,具有其重要性和必要性。特别值得一提的是,产品包及系统需求说明书是系统测试的主要依据,通过系统测试确保软件产品与需求说明书相符合。在进行系统测试时,必须确保测试的全面性,也就是先根据需求说明书编写测试大纲,再按照规定的范围和衡量指标进行,即要覆盖功能性需求和非功能性需求,以确保系统测试的完整性。在进行系统测试前,要将测试用例先编写出来,以避免测试的随意性。一是采用等价类分法。对测试空间进行划分,要确保每个子集的程序缺陷是等价的,这就是等价子集。通过等价划分测试空间来进行测试用例设计,以确保在测试用例场景对测试空间覆盖的最大化。二是采用边界值法。这是对等价划分测试用例的有效补充手段,它不是将等价任意元素选择出来,而是选用边界值法。通过长期的经验总结发现,很多错误就是在输入边界或输出边界发生的。三是采用因果图法。通过图解法将各种组合情况输进来,将测试用例设计出来,它能够对程序输入条件各种组合情况进行检查。
四是注重应用自动化测试。功能回归测试需要的测试投入非常大,而采用自动化测试则能极大地减少资源投入,并且能够对软件基本功能得到充分测试。特别是软件系统的安全性和业务的安全性已经成为业界人士关注的焦点,因此,必须对软件进行安全性测试。
2.5.2 加强Beta测试
在完成软件产品的系统测试后,还要做好Beta测试。在产品发布之前,一个或多个客户在实际环境的深刻验证。在Beta测试中,必须充分考虑客户环境的典型性,这样才能确保软件产品能够适应多种环境。从客户关系方面,要考虑Beta测试产品与发布产品是否相一致。可能没有正式发布的产品性能优越,而存在一些缺陷。因此,必须选择关系比较好的客户。由此可见,通过严格质量控制,可以尽早尽快地发现存在的问题,提高软件质量和开发效率。
2.6 强化配置管理
规范的配置管理应包括严格的版本控制、有序的变更控制、良好的配置控制和严格的配置审计,这是伴随软件项目过程阶段的一项重要的质量控制活动,也是保证软件项目质量的关键过程。所以必须致力于配置管理的强化。
3、结语
综上所述,软件开发是一项具有很强专业性、技术性、复杂性和综合性的项目。加强对软件项目过程质量控制是确保软件项目质量、安全与效益的重要保障。因此,加强对软件开发项目质量控制具有非常重要的意义,我们应该充分认识到软件项目研究的重要意义,要将质量控制贯穿到全过程中,切实掌握好质量控制要点,这样才能确保软件开发项目的质量。