1 需求分析阶段质量控制
MES信息系统需求分析阶段在整个MES软件建设中占有非常重要的地位,它为下一阶段的开发奠定了基础、指明了方向。据统计,信息系统建设过程中有15%的错误起源于错误的需求分析。而对于这些错误的修改需要耗费大量的资源,甚至导致最终无法按时完成任务等严重后果。因此需求分析对于信息系统质量以及开发成本都有非常重要的影响,所以研究需求分析阶段的质量控制显得十分重要。
1.1需求分析阶段质量因素分析
需求分析阶段影响质量控制的主要因素有:
(1)需求分析目标不明确,不能详细充分的理解客户对于产品、质量、价格等方面的需求和期望,从而导致需求分析结果与实际不符。
(2)需求分析进度安排不合理,进度安排过快导致质量无法得到保障。进度安排过慢会浪费大量的资金及人力资源,而对MES系统建设并没有根本性的提升作用。
(3)需求分析阶段质量控制缺乏质量评价标准或者质量控制标准制定的不合理。
(4)对于能对需求分析阶段质量产生影响的随机因素缺乏相应的应急处理措施。
(5)成本分析不合理导致成本远远超出预期。
1.2需求分析阶段质量控制方法
作为信息系统开发中非常重要的一部分,MES系统需求分析阶段的质量控制方法与普通商品的质量控制方法有很大的差异。MES系统需求分析阶段质量控制方法主要从两个方面来进行研究:一是从管理学与经济学的角度进行研究,在MES项目的管理中如何降低风险、减少错误从而降低成本、提高项目质量并对人力资源进行合理的使用及分配;二是从技术的角度进行研究,主要研究如何在项目的整个生命周期中采用模块化、分阶段以及过程控制的思想使需求分析阶段的质量得到有效的控制。
(1)从管理学与经济学的角度
作业成本法是流程分析法的一种,作业成本法以活动为中心,通过对活动成本的计算,对所有活动进行追踪,尽可能地消除不增值活动,改进可增值活动。作业成本法是对现有业务进行分解,找出基本活动,侧重于对各个活动的成本,特别是活动所消耗的人工、时间等分析,因为流程费用和流程周期是评价流程的重要指标,使用作业成本法计算出流程每项活动的费用,并以此确定需要优化的关键活动或流程。
首先我们采用作业成本法思想从大量影响需求分析成败的因素中找出了项目建设的进度、成本、人力资源等主要影响因素,它们对需求分析阶段质量的影响非常大,因此被称为需求分析阶段质量控制的主成分。其对质量控制的影响可以采用下面的函数进行描述:
Q=F(c,P,h,r)
在上式中:Q表示需求分析达到的质量;C表示需求分析阶段的成本;P表示最终的需求分析进度;h表示需求分析阶段投资的人力资源;r表示在需求分析阶段对质量产生随机影响的其它因素。MES项目需求分析阶段对质量产生影响的因素图如下图1所示。
图1 需求分析阶段对质量产生影响的因素分析图
1)成本分析及控制方法
在需求分析阶段,成本对于需求分析质量的影响是单方向的。当在开发环境保持不变情况下,若提高对需求分析阶段质量的要求,则完成该需求分析所花费的成本一般将会提高;然而,假如只是简单提高需求分析阶段的成本,需求分析阶段的质量并不一定会得到提高。
需求分析阶段的成本投入应遵循的相关质量控制方法如下:
①当投资方对系统功能有较高要求的时应适当加大投资额。只追求质量提高而不适当加大资金投入是不现实的。
②正确看待成本与需求分析质量之间的关系。不能随意夸大资金投入对质量提升的作用,应该认识到当投入达到一定程度时,其对需求分析质量的提升力会逐步减少,最终趋于零。
2)进度分析及相关控制策略。
需求分析的进度对于需求分析阶段的质量影响具有一定的单调性。假如进度安排过快,那么需求分析的质量就无法得到保证。进度安排在一定的范围内,如果进度降低则对于需求分析的质量起到明显的提升作用。当然假如进度安排无限期延后则对于MES需求分析的质量并没有根本性的提升作用。
需求分析阶段进度安排应该遵循如下的质量控制方法:
①借鉴成熟的、成功的软件开发的进度安排,并结合项目本身的特点进行建立需求分析阶段的进度安排。
②进度安排不能过快,过快会使出现错误的几率大大增加,以致影响到整个项目的质量。因此进度应控制在合理的范围之内。
3)人力资源配置及相关控制方法。
人力资源在需求分析质量控制中占据核心的地位。这是因为需求分析属于智力密集型工作。要想使需求分析达到较高的质量就必须是相关人员的聪明才智及创造精神得到充分发挥。
在需求分析阶段对人力资源的管理方面所遵循的质量控制方法如下:
①岗位分配做到“人尽其才”,为了发掘每个人的长处,我们建立了合理的岗位分配制度,从而使每个人的特长得到最大限度的发挥,进而提升了需求分析的质量。
②经常对有关员工惊醒需求分析理念、方法方面的培训,从而促进了需求分析阶段质量的提升。
(2)从工程技术的角度
需求分析的质量主要取决于需求分析的过程。假如能够对需求分析的过程加以控制,那么就可以大幅提高需求分析的质量。如果能够使需求分析过程的划分独立于技术以及MES软件的生存周期模型,那么就可以避免技术的限制,大多数高质量的软件的需求分析就是通过对过程的稳定受控来进行软件的需求分析。
图2 需求分析的流程图
需求分析的过程可细分为以下几个步骤:
1)定义项目视图及范围;
2)确定需求的来源;
3)收集、整理并分析用户的需求;
4)编写用户需求说明书;
5)对用户需求规格说明进行评审;
6)将用户的需求转化为开的需求;
7)编写出开发需求规格说明;
8)对开发需求规格进行评审;
9)软件需求的变更管理及控制。
以上这些步骤还可以根据项目的实际情况再进一步地细分为多个子过程,当然这些子过程会由于项目的不同出现一些细微的差别,但它们总体上的差别并不大。
客户满意度的提升是进行质量控制的动力,无论是为客户提供产品还是为客户提供服务都必须要充分理解客户的需求,所以必须要多次做调研,与用户进行充分的交流,理解并满足用户的需求。以客户为中心的质量控制准则,必须确保所提供的产品及服务范围和客户达成一致。这就要充分地理解客户对于产品、质量、价格等方面的需求及期望,实现客户的需求与期望之间的平衡,将这些需求与期望下达到整个企业,测试客户的满意度并进行不断地改进。
软件需求是软件开发计划的主要输入,软件需求分析人员详细描述和提炼需求,并生成文件化的软件需求,并由以下人员审查:项目经理、系统测试组、质量部、用户。更改软件计划、工作产品和活动,以便与软件需求的改变保持一致。需求评审过程如图2所示。
图3 需求分析阶段的评审过程
2 设计阶段质量控制
软件与硬件一样,它的质量是设计和生产决定的。其中,软件项目设计阶段对软件项目质量具有关键性的影响。设计阶段的对于软件项目的重要性可从下图看出,其中(a)为经历了设计阶段后的软件项目的质量效果,其在软件使用以及维修阶段出现的问题较少;(b)为跳过设计阶段的软件项目质量效果,当到了使用和维修阶段,出现软件问题很多,到了无法解决的地步。从以上这种情况可以看出,软件项目设计阶段对于质量控制的重要性。
软件设计工作是MES软件开发过程的最重要阶段之一,软件设计文档是该阶段最重要的产品。软件设计阶段容易出现许多的问题,同时软件编码阶段与软件设计阶段的脱节也是常见现象。这些问题的出现有各方面的原因。但最终结果都将造成软件产品质量不高。
完成这个阶以后,软件设计者会设计出一种用来表示最终系统的模型,这个模型将会影响产品的后续的开发过程难易度以及未来系统升级的难易度。因此,软件设计阶段在软件开发的三个阶段(设计、编码、测试)中处于核心位置。设计阶段起始于软件需求阶段完成以后,这一阶段是采用概括性的语言对软件产品进行描述,所以设计者可以集中精力考虑软件的质量而不需要过多的考虑软件实现过程中的复杂度,因此软件的质量主要取决于设计阶段的工作,而非一般认为的编码阶段。设计阶段的软件模型将是软件质量评估的标准,它是将用户需求准确转化为软件产品的唯一方法。如果没有软件设计,在软件编码阶段,程序员将缺乏软件实现的标准,开发出的软件将会很不稳定:可能直到编码阶段的后期才会发现系统的缺陷,这时无论是重新设计还是修改都将浪费大量的人力、物力。
软件设计阶段的主要任务是:在确定了软件需求的基础之上,对软件的架构、模块与算法、组件等进行概要设计与详细设计。软件设计需要遵循的原则是与平无关且代码透明。一个高质量的MES软件架构,应该最大限度的考虑并满足不同角色的不同要求。
衡量MES软件设计质量可以通过以下几个方面进行考虑:
(1)功能性:包括正确性、完全性、安全性、互用性、兼容性。正确性表示软件设计与需求的一致度。完全性包括普通功能点的覆盖率,重点功能点的覆盖率以及优先功能覆盖率。安全性根据软件需求的不同而不同。
(2)效率:主要是指软件利用的硬件资源的效率以及运行的时间效率。
(3)维护性:主要是指软件架构的可修改性,可测试性以及可扩充性。假如用户的需求发生很小的变更而导致架构设计发生很大的变化,则这样的软件架构设计的可扩充性以及可修改性就比较差。
(4)可移植性:主要包括软件的独立性、硬件的独立性、软件的可重用性及可安装性。软件设计时应该认真考虑软件的模块化以及每个模块的可复用性等。
(5)安全可靠性:在软件运行环境方面,服务器应采用高可靠性的集群设置,保证可以不问断运行,确保软件的开发进度及服务质量。
(6)使用性:包括可理解性、易学习性、可操作性、易沟通性。软件设计的最终目的是提高用户的工作效率,如果易用性、可操作性不好将会影响用户对软件的使用。
2.1设计阶段质量因素分析
(1)软件概要设计阶段与详细设计阶段的划分不清晰
软件概要设计阶段的主要内容是进行软件需求的高层的设计,这一阶段的主要任务就是把用户需求转换为软件的体系结构,建立软件的形态结构。然后进行结构的分解,按功能需求的不同把软件分解为能够独立运行的组件,确定各个软组件所处的结构层次。而软件的详细设计阶段是把概要设计阶段所分解出来的每一个软组件进行底层的设计,主要是描述每个软组件的过程特征,包括它们之间的时间关系及顺序关系。
在此阶段必须详细描述出MES的每个软组件中各个软件单元之间的组成关系以及控制关系;还要详细定义出每个软件单元的处理逻辑以及单元之间的所有接口信息,另外还要详细定义出各个单元内部所使用的数据。可见在软件设计阶段,概要设计更为看重的是单元以及各组件之间的关系,还有整个软件的层次结构。而在详细设计阶段,主要是对各个软组件的内部进行详细设计。但是如果对软件的详细设计与概要设计阶段划分不清楚,特别是当使用面向对象的设计方法后,概要设计和详细设计阶段的区分已经不太明显,这样很多人在每个阶段设计的过程中不清楚自己的设计工作,从而导致了文档缺乏一致性,使程序员不容易阅读。
(2)软件设计的文档描述不规范
当软件设计完成后,需要采用规范的语言编写出软件的设计文档。而有些人没有按照规范对需要的内容进行描述,导致软件描述不完整,内容出现遗漏。文档是各部分人员沟通的桥梁,需要用简洁的语句表达清楚。有些文档语句有二义性。有些文档编写者习惯使用或、大概之类的字眼。有些文档采用被动语句描述,使文档阅读者不易理解。有些文档术语的使用前后不一致,与同一项目中的其他文档的术语使用也不一致。有些文档性能实现、软件功能的描述缺乏可追踪性,让阅读者不清楚依据是什么,可参考的方法是建立一个追踪表,把每一项描述与上一级文档中的关系列入表中。
(3)详细设计文档描述粗糙
在当今的软件项目开发中。软件设计阶段的重要性大大提高,软件的编码已经成为一种将软件设计阶段的伪码使用另一种语言进行转换的简单劳作过程。在这样的要求的约束下,就要求软件的详细设计文档要细之又细。如果是面向过程的设计方法,就要求将软件的每一个算法、公式进行描述,对于程序的每一个输入、输出以及操作和处理步骤都应该详细描述,达到编码的功能。如果是面向对象的设计方法,就要求将软件的每一个类以及类之间的每一个接口调用都应该进行伪码描述。但是软件设计人员多数时候达不到这么细的设计要求。他们认为软件的开发还是应该看重软件的编码过程,要给予程序员更大的发挥空间,这就导致了软件的质量没有一个明确的标准,软件质量不易控制,不符合软件工程的要求。
2.2 设计阶段质量控制方法
质量功能展开(QFD)技术是以顾客需求为驱动的产品开发技术,它是一种在产品设计阶段进行质量保证的方法,其目的是使产品能以最低的成本、最快的速度以及最优的质量占领市场。QFD通过对市场进行调查来获取顾客的需求,然后采用矩阵图解法将顾客的需求分解到产品开发的各个阶段和各职能部门中,通过协调各部门的工作以保证软件的产品质量,使得软件产品能真正地满足顾客的需求。
QFD的核心思想是:从可行性分析到产品生产都是以顾客需求为核心,强调将顾客需求转变为产品开发和生产计划部门等相关人员均能理解执行的信息,从而最终保证企业能生产出符合顾客需求的产品。QFD的核心内容是需求转换,采用的是质量屋形式,质量屋是一种直观的矩阵框架表达形式,是QFD方法的重要工具。质量屋如下图5所示:
图5 质量屋
质量屋主要由以下几个部分组成:
(1)左墙(WHATS),表示顾客需求及其重要度,可以通过市场调查等方法获取;
(2)天花板(HOWS),表示工程技术措施,由专门的功能小组从获取的顾客需求中抽取,是为了满足用户而采取的一系列的方法;
(3)房间,表示WHATS项和HOWS项的相关关系;
(4)屋顶(HOWS的相互关系矩阵),用于评估各项技术要求之间的相关程度;
(5)右墙,竞争性或可竞争力或可行性分析比较;
(6)地下室,工程技术措施的指标及重要度,一般就是指加权后的技术要求的权重。
通过运用QFD中的质量屋,把顾客需求有效地转换成质量特性,并层层顺次展开,将顾客需求逐步映射至软件开发设计的全部过程和各个环节,建立起一系列流程和控制目标,最终体现在质量控制规范的过程监控措施和质量管理文档上,通过实现和协调这些目标,最大限度地满足顾客需求。
因此设计阶段我们采用质量功能展开(QFD)思想,以顾客需求的转换、映射和实现为主线,通过采用矩阵图解法,将顾客需求转换到软件开发的各个功能模块以及各职能部门中,由质量控制组制定具体的质量保证措施,通过协调各部门的工作从而控制软件的质量,使得软件项目建设的质量满足预期要求。
图6 基于用户需求的QFD思想的质量控制模型
根据质量功能展开的思想,为了满足MES项目设计阶段质量控制的要求还需要做好如下工作:
(1)做好MES软件设计阶段项目管理的组织工作
由于MES项目设计阶段可能涉及到很多相关方的参与,因此为了做好MES项目设计阶段的质量控制,实现预期的目标,根据质量功能展开思想,在设计阶段,必须建立项目设计阶段质量控制负责的团队及其相应的工作流程。做好软件设计阶段的组织工作。
(2)对于软件设计的每个阶段进行细化,制定出相应的质量标准体系
项目质量指标体系一定要具备完整性、科学性以及合理性。软件设计分为概要设计和详细设计两个阶段,在概要设计阶段,应建立总体结构,进行模块划分模块并定义出每个模块所对应的接口,还要进行可靠性安全性分析设计,并制定软件集成测试计划。在详细设计阶段,则要设计软件每个部件的算法与细节,确定软件每个部件接口的详细信息并拟订出测试方案。在此期间,必须严格进行配置管理,组织验收与评审,详细记录出现的问题。
设计评审是对MES系统实现方案和实现技术确认的一种评审形式。设计评审的目的是在工程进入下一阶段之前,尽可能地识别出MES系统中的重大技术缺陷,避免后续工程因系统的质量缺陷而出现大量返工和严重工期延误。同时,通过设计评审可以使相关人员对工作产品和能够预防的缺陷有更好的理解。设计评审人员按照事先定义好的检查表系统地审查MES系统,找出其中可能存在的缺陷、确定需要更改的范围,并对消除缺陷过程进行跟踪。MES系统设计评审工作流程如图7所示。
图7 设计评审工作流程图
软件开发质量控制的过程就是各个工作组相互交流协调的过程。大家的目标是相同的,角度是不同的。软件设计阶段的目标就是将用户的需求转化为能够实现的程序,技术实现人员更多的是从技术出发,需求分析人员主要要从用户的角度出发,因此软件设计人员必须和需求分析人员保持沟通,避免软件的设计和用户的需求出现偏差。此外设计出来的软件最后需要编码人员来实现,因此两者之间也需要经常保持沟通,避免软件的设计通过编码实现过于困难,而且两者之间的沟通还有利于软件运行效率的提高以及避免产生歧义。
在整个软件设计过程中应正确的对待出现的问题:首先出现问题是很正常的,有问题并不针对个人,不能直接说明个人能力。其次,每个工作组应该将适度妥协和坚持原则相结合,根据实际情况可以调节适当的妥协,但关乎到原则性的东西,比如先改文档后改程序,先有文档后有程序的原则时就不能妥协。
3 实旅阶段质量控制
3.1 实施阶段质量因素分析
MES系统项目实施阶段,系统质量因素分为三组,分别反映用户在使用软件产品时的三种不同观点。这三种观点是:产品运行、产品修改和产品转移。MES系统作为一个软件产品,可参照图11三种观点来定义。
图11 系统质量因素模型
质量因素如下表2定义。
在MES系统项目实施过程中,影响软件质量因素的原因很多,具体地说,主要有如下几点:
(1)交流不够或者根本不进行交流:在应该做什么或不应该做什么不清晰的情况下进行开发;
(2)软件复杂性:图形用户界面(GUI)、客户/服务器结构、分布式应用、数据通信、超大型关系型数据库以及庞大的系统规模,使得软件及系统的复杂性呈指数增长,没有现代软件开发经验的人很难理解它;
(3)程序设计错误:像所有的人一样,程序员也会出错:
(4)需求变化:需求变化的后果是造成系统的重新设计,设计人员的日程重新安排,已经完成的工作可能要重做或者完全抛弃,等等。如果有许多小的改变或者一次大的变化,项目各部分之间已知或未知的依赖性可能会相互影响而导致更多问题的出现,需求改变带来的复杂性可能导致错误;
(5)时间压力:软件项目的日程表很难做到准确,很多时候需要预计和猜测。当最终期限迫近和关键时刻到来之际,错误也就跟着到来;
(6)代码文档贫乏:贫乏或者差劲的文档使得代码维护和修改变的异常艰辛,其结果是带来许多错误;
针对MES系统实施阶段质量因素,系统实施人员在实施阶段需要从系统质量角度出发,组织实施和审核MES系统。在审核过程中,首先需验证MES系统在用户的使用环境下是否满足功能需求,从用户的角度进行验收测试,以验证MISS系统运行的正确性;其次需按照系统研制任务书中规定的条款进行技术评审,通过技术评审及时识别并消除MES系统中的缺陷,以达到改善MES系统的质量。
3.2 实施阶段质量控制方法
(1)实施阶段的质量控制方法
MES项目建设的最终目标是向用户方提供优质的产品和服务。对MES项目建设实施过程中各阶段的质量进行控制是实施质量控制的核心,只有对每个阶段的质量进行严格控制,才有可能保证整个项目的质量。这一阶段的质量控制就是控制阶段性产品的质量特征和特性指标是否达到技术要求标准和用户需求。
首先MES项目建设必须以客户需求为导向,实施阶段质量管理必须需要用户方参与,如软件开发过程中的评审、软件运行记录等工作都需要用户方给予积极的配合。其次必须遵循业界以及国内外关于质量的标准,依靠现代项目控制方法论的实践而形成的质量控制体系。规范要求对每一个项目或产品制定质量计划,通过成熟的技术和经验,为客户提供完善的服务并达到高标准的客户满意程度。
实施阶段质量控制的要点:
1)首先以质量方针为指导,构筑完善的质量管理组织结构,建立完整的质量控制体系文件,制订明确的质量控制目标,质量检验方法及手段。
2)进行各阶段分析,分清主次,抓住关键是阶段性质量控制的目的。对实施阶段的每一步进行分析,从该阶段众多影响工程质量的因素中重要的或关键的质量特征特性指标,以便在实施中对那些主要因素制定出相应的控制措施和标准,开展对关键质量的重点控制。
3)明确实施阶段质量控制的资源需求,包括人员、工具和设施等。其次要明确实施阶段质量控制组的每个成员的职责和权限,当出现质量问题时能够责任到人。
4)制定出实施阶段质量控制的评审组,进行评审和检查时所参见的项目标准和过程等。
(2)验收测试的组织与管理
1)验收测试过程及组织
实施阶段MES系统验收测试,由一位对整个系统设计熟悉的设计人员编写验收测试大纲,明确验收测试的内容和验收测试的准则。验收测试人员仔细阅读有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写测试计划,设计测试用例,作好测试前的准备工作。
为了保证测试的质量,将验收测试过程分成三个阶段,即:验收测试、验收测试问题改正和验收。验收测试的主要目的是验证所开发的系统在用户的使用环境下是否满足系统需求,从用户的角度验证整个系统进行的正确性;验收测试问题改正是对验收测试中发差异性问题进行修改;验收则是在验收测试的基础上,对项目的完成情况进行综合评价。
①验收测试
验收测试流程图如下图12所示:
图12 验收测试流程图
验收测试任务:
a准备验收测试
验收测试人员从配置库提取MES系统验收测试计划和MES系统的目标代码,根据测试计划建立测试环境,必要时准备测试数据和编写测试用例程序。
b执行验收测试用例
按验收测试计划反复执行验收测试用例。
c分析并报告测试结果
分析测试结果并形成MES系统验收测试报告。
②验收测试问题改正
验收测试问题改正流程如下图13所示:
图13 验收测试问题改正流程图
包括以下活动:
a修改软件错误
开发组人员根据测试问题报告单分析、修改错误,若有变更则按变更控制的要求执行。
b升级配置库
对新提交的配置进行配置。
③验收
a组织验收
验收在验收测试的基础上由验收组进行。验收内容一般包括以下方面:对MES系统项目实施的技术路线、采用的关键技术进行评价;对MES系统的完整性、正确性进行评价;对验收测试的结果进行评价;依据项目任务书对项目的完成情况进行综合评价。
在上述评价的基础上,给出验收结论,并形成验收报告。验收结论分为:通过验收;需要复评;不通过验收。
b发布已通过验收的系统
通过验收的系统,将经用户验收确认的最终版配置到客户区,并形成运行基线。
2)验收测试文件管理
验收测试文件描述MES系统验收测试及测试的结果。由于验收测试是一个很复杂的过程,必须把对验收测试要求、测试过程及测试结果以正式的文件形式写出。
①测试文件的类型
根据测试文件所起的作用不同,通常把测试文件分成两类,即测试计划和测试分析报告。验收测试计划详细规定验收测试的要求,包括测试的目的和内容、方法和步骤,以及测试的准则等。测试报告用来对测试结果的分析说明,经过测试后,证实了系统具有的能力,以及它的缺陷和限制,并给出评价的结论性意见。
②测试文件的使用
系统实施阶段,验收测试文件的重要性表现在以下几个方面:
a验证需求的正确性:测试文件规定了用以验证系统需求的测试条件,测试条件有助于弄清用户需求;
b检验测试资源:测试计划不仅要用文件的形式把测试过程规定下来,测试工作必不可少的资源,进而检验这些资源是否可以得到;
c明确任务的风险:有了测试计划,就可以弄清楚测试可以做什么,不能做什么。了解测试任务的风险有助于对潜伏的可能出现的问题事先作好思想上和物质上的准备:
d生成测试用例:测试用例决定着测试工作的效率,选择合适的测试用例是做好测试工作的关键;
e评价测试结果:测试文件包括测试用例,即若干测试数据及对应的预期测试结果。完成测试后,将测试结果与预期的结果进行比较,便可对已进行的测试提出评价意见;
f决定测试的有效性:完成测试后,把测试结果写入文件,对分析测试的有效性,甚至整个软件的可用性提供依据。
3)技术评审的组织与管理
技术评审是针对MES系统项目实施过程中旨在发现系统可能存在的缺陷的技术性评审活动,例如,针对系统需求规格说明书、设计说明书和源代码文件进行的设计评审和检查活动等。技术评审通常按照事先定义好的检查表,系统地检测MES系统,找出其中可能存在的缺陷、确定需要更改的范围。
通过技术评审活动可以及早消除MES系统中的缺陷,改善系统质量。同时,通过技术评审活动可以使相关人员对MES系统和能够预防的缺陷有更好的理解。因此技术评审目标是有计划地进行技术类评审一以成本效益较高的方式来发现缺陷,提高生产效率;及早识别并消除软件工作产品中的缺陷一改善产品质量。
4 维护阶段质量控制
4.1 维护阶段质量因素分析
系统维护工作在整个系统生命周期中常常被忽视。人们往往热衷于系统开发,当开发工作完成以后,多数情况下开发队伍被解散或撤走,而在系统开始运行后并没有配置适当的系统维护人员。一旦系统发生问题或环境发生变化,最终用户将无从下手,这就是一些信息系统在运行环境中,长期与旧系统并行运行不能转换,甚至最后被废弃的原因。因此,系统维护是MES系统可靠运行的重要技术保障,必须足够的重视。
在系统维护的过程中,一般存在的问题有:许多系统中的维护工作非常困难,如文档不全、代码编写不规范、没有完整的注释、变量命名各行其是、风格不统一等;系统维护费高,软件功能模块的升级费一般为原来购买价格的20%,费用最高的是在通用系统基础上所进行的二次开发部分,要专门维护开发;维护工作面广、维护工作量大、新的需求不断涌现、旧的问题还没完全解决,且维护是一个有始无终的漫长过程;维护的关联性大,一个模块的维护往往牵涉到多个模块的共用程序。
影响MES系统项目维护工作质量的因素有:
(1)系统规模的大小;
(2)系统的复杂性较大,牵一发动全身;
(3)应提供的系统开发文档和用户报告较少、不准确;
(4)原文件开发文档质量较差,描述不准确、内容不完善;
(5)系统的涉及领域复杂,需求变化较大。
因此,针对影响维护工作的因素,必须从管理维护过程入手,有计划、有组织地对MES系统进行维护,以保证MES系统正常而可靠的运行,并使MES系统不断得到改善和提高,充分发挥其作用。
4.2维护阶段质量控制方法
MES系统在完成系统实施、投入正常运行之后,就进入了系统运行与维护阶段。
(1)系统维护包括以下几种类型
改正性维护:为识别和纠正系统错误、改正系统性能上的缺陷所进行的诊断和改正错误的过程。
适应性维护:因外部环境或数据环境发生变化而修改系统的过程。
完善性维护:为满足用户扩充系统功能、增强系统性能、改进工作效率等新的需求而修改或开发系统的过程。
预防性维护:提高系统可维护性、可靠性等,为进一步改进系统打下基础的修改过程。
(2)系统维护过程事件流
系统维护过程事件流如下图14所示:
图14 MES系统维护过程事件流图
(3)维护阶段的任务
1)建立系统维护小组
系统维护小组的组成可以是项目组的成员,也可以不是项目组的成员。
2)制定维护实施计划
由系统维护小组负责人负责该计划的编制。内容包括维护小组的组成及职责,规定维护工作流程、维护过程信息记录与统计等。维护实施计划编制后应进行评审。
3)实施系统维护
系统维护的具体实施按规定的维护工作流程进行。MES系统维护的工作流程如下图15所示:
图15 MES系统维护工作流程图
①获取系统问题、分配维护任务
在系统维护期,维护负责人根据问题的严重程度或申请的轻重缓急将维护任务分配给维护小组的成员。对于紧急维护任务,应优先安排人力,执行维护任务,解决完问题再进行问题登记;对于紧急程度低的任务,可以列入维护计划,按计划执行维护任务。
②实施维护任务
由于维护工作实际是排除错误、功能修改和开发新功能等过程,所维护的问题可能涉及系统开发的各个过程,包括系统需求规格说明、设计、编码、测试等。所有涉及对上述过程的配置项的修改,必须严格按照软件配置管理的要求进行。软件配置管理人员应对维护中的配置项的状态进行跟踪。
③维护过程记录
为评价维护的有效程度,确定维护的实际人工时,维护人员在维护过程中应记录以下信息:系统问题报告单编号、维护类型、程序语言类型、所属功能模块、代码文件名称、维护所付出的人工时和累计人工时、维护开始日期和结束日期、维护人员等。同时对维护阶段所发现的缺陷数进行统计。在维护期间,维护记录应由维护组负责保存,并定期提交所在总部的软件质量保证组。