e-works数字化企业网  »  文章频道  »  企业管理  »  质量管理

企业产品设计开发中如何关注软件质量

2017/9/5    来源:e-works    特约撰稿人:魏富选      
关键字:质量管理体系  软件管理  软件审核  
在质量管理体系认证审核过程中,往往会遇到电子类企业产品中包含控制软件的情况,智能化电子产品层出不穷。到底怎么来审,只是看产品的完成阶段,把软件作为产品的一部分,从产品功能来进行常规审核,还是要把软件设计开发过程也按照质量管理体系标准审核呢?

    在产品设计和开发的质量管理过程中,如何进行软件质量管理,才能保证软件质量,直接关乎产品的体验。因此,关注软件质量问题值得探讨!本人的理解,不管是把产品软件设计开发过程从产品中分离与不分离,都应该是关注的,这样才能够起到真正全面评价企业质量保证能力。

一、质量管理体系对软件质量保证的理解

    在GJB9001C-2017《质量管理体系要求》的8.1“h)按照GJB2786的要求,编制软件开发计划,确定并实施软件需求分析、设计、实现、测试、验收、交付等过程,以及相关的策划与跟踪、文档编制、质量保证、配置管理等;”,对于软件的审核有了明确要求。为此,各军工企业都在质量管理体系文件中编制了软件质量保证要求的程序文件,以期对软件质量管理。而且,进行GJB5000A《军用软甲研制能力成熟度模型》、GJB2876A《军用软件开发通用要求》、GJB438B《军用软件开发文档通用要求》贯标,通过完整的软件过程体系,即软件项目管理过程、软件需求分析过程、软件开发基本过程、软件配置管理过程、测量与分析过程、软件质量保证过程,达到持续改善工厂软件过程能力,提高软件工程化质量,以确保软件项目过程保质保量完成。

    在GB/T19001-2016《质量管理体系 要求》没有明确对软件提出要求。但是,质量管理体系中的产品和服务明确给出了输出类别,即硬件、软件、服务和流程性材料。可见,软件还是属于产品的一种类型。只是由于软件的特殊性,它是一系列逻辑代码,不像硬件产品的实物形式存在。GB/T19001-2016《质量管理体系 要求》8.3产品和服务的设计和开发应该说是适用于软件的。

    软件按服务对象分为两种类型,一种是产品软件,即嵌入式软件,对于企业来说出售的是包含嵌入式软件的硬件产品;另一种是软件产品,对于企业来说出售的是软件,而顾客还是要把它用在产品中。所以说,我们审核还是要关注企业对于软件的质量保证情况,如果产品牵扯软件的应用时。我们姑且把它们都通俗叫做产品软件,即固化到产品媒体(微处理器、微控制器、DSP处理器、PROM、EPROM、EEPROM存贮器、GAL、CPLD、FPGA等可编程器件)里的嵌入式软件。

    从提升产品质量的内在要求考虑,我们必须把软件的质量保证纳入体系来管理,质量管理体系审核也要关注软件的过程质量。

二、按照管理体系对软件质量进行审核

    对于企业来讲,软件工程化设计和开发过程大体上分为以下八个阶段,包括:a)软件开发任务书;b)软件需求分析;c)软件质量保证计划;d)软件设计;e)代码编写与测试;f)软件验收;g)软件发布;h)软件维护。从这些方面的审查可以初步判断软件开发过程的能力。

    软件审核还是可以和通常的产品设计和开发一样,从8.3.2策划开始,看是否确定了软件设计和开发的各个阶段和控制要求,包括了软件设计和开发所需的过程阶段,所需的评审、验证、确认活动,并对职责分配、接口关系、资源提供等予以说明。有的企业有专门的软件开发管理程序,有的是包含在产品的设计和开发过程中,不管怎样,策划的基本内容应该是不能省略的。

    审核8.3.3输入要求,看是否根据产品具体设计和开发要求,拟制软件需求分析、提出系统设计要求,形成《软件配置管理计划》、《软件开发计划》、《软件研制任务书》。经评审通过的上述软件文档是软件开发工作的基础。

    审核8.3.4控制条款,看是否依据《软件开发计划》、《软件研制任务书》,结合有关质量管理体系文件要求,制定了《软件质量保证计划》。经评审通过的《软件质量保证计划》是软件设计过程质量保证的控制依据。软件设计和开发的各阶段是否按照策划的安排,实施了评审、验证和确认。可以与软件设计师交谈,了解软件设计师根据《软件开发计划》、《软件研制任务书》、《软件质量保证计划》的要求进行软件设计过程的情况。

    审核8.3.5输出要求,看是否编制《软件需求规格说明》和《软件设计说明》,是否输出相应的软件流程图、技术文档,可包括必要的《软件测试大纲》、《软件测试说明》。软件设计完成定型前,软件设计师是否编制了《软件用户手册》、《软件研制总结报告》、《软件生产操作说明》、《软件设计文档说明》、《软件维护报告》等必要文件。

    审核8.3.6更改条款,看是否根据产品设计开发、生产过程、测试验证或用户反馈的意见,软件设计师对提出的软件方面问题填写软件变更单,对变更内容、理由及变更影响进行分析,明确需变更软件配置项内容和验证方式,经审批后落实处理措施。还要建立包含软件内容的失效报告、分析和纠正措施及实施的详细记录,以便于追溯和质量保证管理。需要注意的是,在软件变更过程中,应查看从软件开发任务书开始的设计、管理等过程方面进行全面检查的证据,保证软件需求和代码实现具有双向可追踪性,确保变更后的软件代码和软件文档保持对应关系,达到保证变更活动的合理性和有效性。

    对于软件外包的过程控制,除了要按照外包过程控制程序管理外,还应该遵守有关软件的管理程序要求,特别是对于外包软件的评审、验证和确认要严格把关。审核时也应予以特别关注。

三、企业对于产品软件的质量管理要求

    在软件管理过程中,要有明确的软件三库管理制度,这样才不至于在生产过程中因为软件代码版本使用错误,导致整批产品不合格的局面产生。

    软件三库指的是软件开发库、受控库和产品库。其中,在产品软件生存周期中,存放阶段性产品的软件配置项的集合称为开发库,开发库一般设在产品研制部门各产品研制组;在产品软件生存周期中,存放已通过测试验证和评审且作为阶段性产品的软件配置项的集合称为受控库,受控库一般设在产品研制部门资料管理室;在产品软件生存周期中,存放已定型(鉴定)且供交付、生产、检验验收的软件配置项的集合称为产品库,产品库一般设在技术档案管理部门技术档案室,它是作为走向市场的产品所用软件的维一渠道来源。

    产品软件开发过程中应设立软件三库,对软件配置项进行入库、出库、更改等活动实施管理,以确保产品软件的正确性、完整性、可控性和可追溯性。软件三库管理员在软件配置项入库、出库、更改时,应实施介质检查、病毒检查、权限及审批检查。

    需要注意的是,在设计开发过程中软件测试和软件质量保证是关注软件质量工作的两个不同层面的工作。软件质量保证工作是通过预防、检查和改进来保证软件质量,在质量保证的工作中会掺入一些测试活动,但其主要工作是着眼于软件开发活动中的过程、步骤和产物,并不是对软件进行剖析,找出问题和评估;软件测试工作指的是测试人员要对过程中的产物(开发文档和源代码)进行静态审核,运行软件,找出问题,报告质量。软件测试只是软件质量保证工作的一个重要环节。

    由于软件测试、软件质量保证是一个技术性很强的工作,需要从软件设计构架、基本程序单元甚至语句逐条运行判断查找是否存在缺陷,许多企业的人力资源并不完全具备这样的能力,那么,软件评审工作就显得尤为重要。软件评审是软件阶段性工作完成的标志,软件开发各阶段应控制软件评审工作,通过同行专家的评审,尽早发现可能存在的缺陷,给出改进建议,使得在设计和开发过程转阶段前消灭问题。评审尤其是同行评审,是提前发现缺陷,降低开发成本的有效方法;但是很多企业并不重视,或者效果不佳。原因有很多:没有获得合适的专家、组织不合理、方法不当等,需要引起重视。

四、结束语

    电子产品的发展,嵌入式软件的应用越来越广泛。软件作为产品的控制大脑,一旦出现问题,将会使产品的功能丧失或异常,会给顾客或消费者带来体验上的影响。为此,越来越多的企业开始关注产品软件质量,软件质量管理也就应运而生,其目的就是通过制定合适的软件质量计划,整合技术评审、软件测试、软件质量保证、问题跟踪等手段,保证软件开发质量。质量管理体系作为稳定提供满足顾客要求的保证产品质量能力的工具,软件将成为不可或缺的关注对象,在质量管理体系认证审核过程中,不管是把产品软件设计开发过程从产品中分离与不分离,审核都应该是关注的。而且要不断提升软件质量审核的能力,这样才能够起到真正全面评价企业质量保证能力,提升嵌入式软件的产品质量。

责任编辑:程玥
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐