面向软件密集型装备的软件过程度量和分析框架
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://gongbo.blog.51cto.com/270903/65166 | ||||||||||||
面向软件密集型装备的软件过程度量和分析框架
A Framework
of Measuring and Analysing Software Process Oriented to Software-intensive Equipments*
Abstract: Software-intensive equipments will
play more and more important role in future wars, but unfortunatly, the
productivity and quality of the embeded software is being a prominent issuse
unsolved, software process improvement has been proved to be an effective
solution. For a single software process, Shewhart control charts cannot define
the effect from other processes, we refine system causes into outer system
causes and inner system causes, and use Select Cause Chart to control them, so
that a single software process can be analyzed independently . Based on the
theory of Petri net, fault tree techniques and theory of fuzzy sets, we
establish a fuzzy Petri net, which is used for fault diagnosis of single software
process. Based on the above theories, we bring forward a framework of
measuring, controlling, analyzing and improving single software process.
Key words: Select Cause Chart,
fuzzy Petri net, software process, measurement, software-intensive equipment
摘 要: 软件密集型装备是武器装备发展的一个趋势,但是如何提升嵌入软件的生产效率和质量是一个迫切需要解决的问题,软件过程改进是一种有效的改进之道.对于单个软件过程的控制和分析,由于传统Shewhart控制图无法区分其他过程对单个过程的影响,本文通过把系统因素进一步细分为外部系统因素和内部系统因素,使用选控图来隔离外部系统因素,实现对单个软件过程的独立分析.基于Petri网理论、故障树技术和模糊集理论,建立了适用于软件过程故障诊断的模糊Petri网模型.在此基础上,提出针对单个软件过程的过程度量、控制、分析和改进框架. 应用实例说明, 在一定程度上, 能够通过过程控制提升软件密集型装备的质量和生产率.
关键词: 选控图,模糊Petri网,软件过程,软件度量, 软件密集型装备
中图法分类号: TP301 文献标识码: A
1 引言武器系统信息化和信息系统武器化是信息时代的必然趋势.发展信息化武器装备,既是军事变革的基本内容,也是实现我军信息化建设目标的关键所在.软件在信息化武器装备中起到非常关键的作用.随着我军武器装备信息化工作的不断发展,软件对武器装备的重要性与日俱增.在各种型号装备中,软件所占比例不断增加,软件规模不断增大,复杂程度逐年提高.武器装备的有效应用在很大程度上依赖于软件的质量和可靠性.在军用装备中,因为软件移交延期、质量问题等对最终装备质量带来巨大影响,甚至给国家形象带来巨大损失的情况屡见不鲜.
在过去数年内,软件行业已经普遍接受“过程思维”和“统计思维”的过程管理理念.CMM(Capability Maturity
Model)、CMMI(Capability Maturity
Model Integration) [13]和ISO9001:2000等都体现出这两种理念.“统计思维”的基础是统计过程控制(Statistical Process
Control, SPC),通过把偏差保持在一定范围内,可以预测过程的未来性能,实现过程的可控性[1][2][13].
当前关于如何在软件行业中应用SPC技术的文献和研究主要集中于如何应用传统的Shewhart控制图来控制软件开发过程的稳定性.对于单个过程的度量和控制来说,传统Shewhart控制图只能区分偶然因素(不可避免的)和系统因素(可以避免的系统因素)[2]15][16],无法把握和处理过程之间的相互作用.
在软件开发全控制过程中,传统Shewhart是合适的,但是由于在软件过程网络中不同过程间存在相互依赖和制约关系,对于单个软件过程来说一味使用传统Shewhart控制图就不合适了,导致部分实施案例的结果不理想.比如,对于程序评审过程而言,针对缺陷率(缺陷数/LOC)这个质量指标来说,按照传统Shewhart控制图,如果缺陷率单点落在3δ之外,就判定程序评审过程异常.但是缺陷率异常这个质量指标也有可能是其他输入过程异常而引起的,比如单元测试不全面,测试用例覆盖率低等使得错误遗留到评审过程,导致评审过程的缺陷率高,而评审过程本身没有任何问题.针对这种情况,本文把系统因素细分成“外部系统因素”和“内部系统因素”,并使用和改进选控图来实现两种系统因素的分离,取得理想效果.
控制图是确定过程异常的统计控制工具,但是一个重要缺点是无法确定导致异常的原因,也就是没有提供故障分析能力.Petri
网是对离散时间动态系统进行建模和分析的重要工具.本文提出一种基于模糊Petri网[3][6]的故障分析方法,以辅助实现软件过程故障的反向推理,并给出推理结果的可信度.
最后,本文提出了一种基于SPC和模糊Petri网诊断机制的软件过程分析方法,这种方法覆盖了度量、控制、分析、纠错和改进等单个过程改进的各个方面,能够区分不同的异常情况,分情况控制,并实现故障原因的反向推理.
2 选控图Shewhart博士提出的控制图如图1所示,右边的控制图是从左边的正态分布图演变而来的.控制图可以起到预防为主、稳定生产、保证质量的作用.在质量特征值为连续性数据的场合,最常见的是正态分布.其中有个结论很重要,即不论μ和δ是什么值,质量特征值在[μ-3δ, μ+3δ]出现的概率是99.73%[2][16].
传统Shewhart控制图的实质是区分偶然因素和系统因素所造成的过程波动,采取有效措施消除系统因素的影响,使得过程处于受控的稳定过程.
其中偶然因素对过程来说是自然和内在的,由于过程分量(人、机器、原料、环境、方法)之间正常的或者内在的交互作用导致的性能偏差,这种偏差是随机的,但在预定界限内变化.系统因素是可以消除的,是过程本身的一个或者分量发生突然或者永久性异常的结果,是非受控的偏差.
Shewhart控制图是全控图,不能区分其他过程的异常对单个过程的影响 [2][16].正如引言中的例子,如果缺陷率异常,我们就难以确定到底是程序评审过程本身存在系统因素,还是其他过程的异常带来的非正常偏差.因此,我们把系统因素进一步细分为外部系统因素和内部系统因素:
n
外部系统因素.是能对目标过程产生影响的其他过程的异常因素,包括其他过程的系统因素和偶然因素.由于是非目标过程的偏差因子,因此需要从目标过程的偏差数据中消除掉,使之不影响单个过程的性能数据.
n
内部系统因素.是目标过程本身存在的系统因素,是可以消除的非正常偏差.
只有真正区分这两种系统因素,我们才能对单个过程进行彻底分析.本文采用张公绪 [15] [16]提出的选控图来帮助区分这两种系统因素,以明确具体软件过程的改进焦点.选控图基本原理如图1所示.
![]() 下面说明如何使用选控图实现区分系统外部因素和系统内部因素.在正态分布情况下,设本过程的质量指标为y, y~N(μ,δ2),其他过程的质量指标x对y会产生影响.则一般有:μ=F(x)和δ=G(x).
其中,F(x)和 G(x)可由回归算法、技术分析或者经验获得.由于存在x对y的影响,本过程质量指标y的分布是一个正态分布族,传统的控制图不适合.为了实现区分两种系统因素,对y应用标准变化,变换后的y标记为ycs.
其中,
无论是选控图还是控制图,它们都只能确定过程是否出现异常,但是不能确定过程异常的原因.有必要借助于其他技术来实现故障推理.考虑到软件开发过程的不确定性因素,本文提出使用模糊Petri网技术来表示诊断知识,并利用Petri网可达性和变迁激活规则进行反向智能推理,并给出推理结果的可信度.
3 模糊Petri网模糊Petri网由位置和变迁组成,分别用圆圈和竖线表示.
定义:模糊Petri网可以定义为一个九元组 [3] [7] [4]
[10]:
FPN=(P,T,D,I,O,cf,a,b,e)
其中:P={p1,p2,...,pn}是有限位置的集合.T={t1,t2,...,tm}是有限变迁的集合.D{d1,d2,...,dn}是有限命题的集合.I是输入函数,变迁到位置的有向弧集合,I(tj)=pi.O是输出函数,位置到变迁的有向弧集合,O(ti)= pj.cf:T→[0,1],是变迁的可信度.a:P→[0,1]是位置的可信度.b→T[0,1]是变迁激活的域值,对于pi∈I(tj),当且仅当a(pi)≥b(tj)时,变迁tj才激活.e:P→D,位置到命题的映射,e(pi)=di.
定义:模糊产生式规则.模糊产生式规则表示因果关系,主要有以下三种基本形式:
R1: IF di THEN dj (cf=ui) 即di→dj
R2: IF di AND dj THEN dk (cf= ui) 即di∩dj→dk
R3: IF di OR dj THEN dj (cf= ui) 即di∪dj→dk
其中,di,dj,dk是模糊变量的命题,di和dj表示一组前提或者状态,dk表示若干动作或者结论,ui∈[0,1]是规则的可信度.图2表示上述知识规则.
![]() 定义:可达性集合RS、立即可达性集合IRS和相邻位置集合AP.在模糊推理中需要对每个位置建立三个集合表,分别是RS、IRS和AP.对于某位置pi,
(1)可达性集合RS(pi):从pi经过一系列变迁可以到达的位置集合.
(2)立即可达性集合IRS(pi):从pi经过一次变迁就可以到达的位置集合.
(3)相邻位置集合AP(pi):与pi经过同一变迁能立即到达的位置集合.
为提高推理效率,可以采用反向推理策略:首先选定一个目标,在知识库中查找能导出该目标的规则集,按照可信度大小依次选择这些规则.若某条规则的前提与数据库中的事实匹配,则执行该规则;否则将该规则的前提作为子目标,递归执行如上过程,直到最初目标被证实,或者没有搜索到能导出最初目标的规则,说明推理失败,系统进行自学习.
4 过程度量和分析框架基于模糊Petri网、选控图,以及故障树技术,本文提出一种度量和分析软件过程的框架,简称DMAI方法(Definition, Measurement,
Analysis, Improvement),如图3所示.这是一个迭代式的过程分析和改进模型,这种迭代和重复不是简单的重复,而是螺旋向上的,给出实现软件过程持续改进的一种路径 [1].
![]() 这个框架方法包含4个阶段:过程定义、过程度量、过程分析和过程改进.这个方法主要适用于单过程度量和分析,也可以扩展到全过程的度量和分析.下面简单说明.
(1)过程定义: 根据组织业务目标,选定要分析的过程,定义过程当前的状态,确定过程实施所需要的基础设施(比如设备、人员、培训资源等)、确定过程实施规范,以及确定体现过程性能的质量指标,也就是确定过程属性.常见的过程属性包括:消耗的时间、所需的资源,以及成本等.要实现如下四个目标:设计过程应能满足或者支持业务和技术目标;确定和定义过程性能相关的问题、模型和度量指标;提供支持过程活动的基础设施;确保组织具备执行和维护过程的能力(技能培训、工具设备和资金).
(2)过程度量: 度量是检测实际性能与可接受性能之间偏差的基础,同时也是获得过程改进机会的基础.这阶段需要设计度量计划,选定度量元,确定度量元的优先顺序和可操作定义,确定当前过程性能,以及预测将来的成本和性能.要实现如下目标:采集每个过程性能的度量数据;分析当前过程的性能;使用当前数据预测将来成本和性能,建立基线和基准,以及确定改进机会.
(3)过程分析: 控制当前过程使得各项性能处于正常范围内,分析过程性能的依从性、稳定性和过程能力.依从性包括比如:过程是否正确执行,人们是否已培训,以及是否已配备合适工具等问题等.如果过程不满足依从性,则成功机会很小.如果过程满足依从性,接下来要询问过程是否执行始终一致,这就是稳定性问题,即执行该过程时成本、时间、工作量、交付产品和质量能够保证一致吗?在保证稳定性前提下,就需要分析过程能力问题,即所执行过程令人满意吗?它能够满足过程需求,以及客户需求吗?它是有效和高效的吗?
同时要利用选控图理论和技术来区分两种系统因素,分离系统内部因素和系统外部因素,也就是过程“消噪”.逐个分析每个过程性能质量指标,确定过程是否异常.然后使用度量数据和模糊Petri网技术,建立故障模糊诊断模型,反向推理出具体的故障原因.
(4)过程改进: 对任何一个组织而言,软件过程必须是有技术竞争力的、可适应的、及时性的,以及始终能够生产满足客户和业务需求的产品.业务、技术和市场环境在变,对于任何过程来说都是有时限的,必须进行持续改进.在这个阶段,要实现如下目标:理解现存过程的特点和影响过程能力的因素;计划、论证和实现有助于改进过程的措施,以更好地满足各种需求;评定风险和效益,建立过程新基线.
5 应用实例下面实例说明如何使用DMAI方法进行过程分析.由于篇幅所限,进行如下剪裁:只分析“缺陷率”质量指标(包括错误和故障),使用选控图分析程序评审过程是否异常;演示如何建立程序评审过程的模糊Petri网模型,反向推理诊断错误源和判断可信度.
5.1
分析程序评审过程质量指标“缺陷率”
影响这个质量指标稳定性的原因既有内部系统因素,也有外部系统因素.其中内部系统因素可能包括:评审程序不规范、测试用例不完善、评审态度不端正、工具失效等.外部系统因素包括:评审员没有培训、评审工具有缺陷、评审员个人问题等等.分别画出2000年5月份程序评审过程缺陷率的X控制图(图4)和Xcs 选控图(图5).
从图4,我们可以了解到5月份性能数据不稳定,但是否是程序评审的内部系统因素引起的呢?还是由外部系统因素导致性能数据不稳定呢?使用逐步回归方法,确定质量指标与外部系统因素之间的函数关系,画出Xcs 选控图(图5).从本图中,可以了解到剔除外部系统因素之后,程序评审过程是稳定的,这说明5月份的程序评审性能数据异常是由外部系统因素引起的,当前过程仍旧是稳定的.
![]() 5.2
故障诊断
下面演示怎样基于模糊Petri网诊断程序评审过程异常,确定导致异常的具体原因.我们也以缺陷率这个质量指标为例,假设缺陷率≥UCL(注:UCL是缺陷率的X控制图的控制上限).图6是“缺陷率≥UCL”故障特征的模糊Petri网,表示知识库中产生该故障的产生式规则.
![]() (1)确定位置集合P= {p1, p2,
p3, p4, p5, p6, p7, p8},创建P的可达性集合RS、立即可达性集合IRS和相邻位置集合.
(2)根据故障特征“缺陷率≥UCL”(位置p8),查询(1)中建立的3个集合,引发p8的路径有3个:p5→p8、p6→p8和p7→p8,再查询变迁变迁可信度t5、t6和t7,其中cf78最大,则首先选择该路径,在进行深度有限搜索时,给已经查询的位置赋予搜索标志.然后再对p5重复如上过程,引发p5的路径有p1→p5、p2→p5和p3→p5,由于cf15最大,根据可信度最大选择原则,首先选择变迁t1,找到输入位置p1,由于p1是叶位置,系统询问“是否存在工具故障?”,如回答非常严重,则从系统预先设置的模糊程度度量表自动计算该命题的可信度,假设a(p1)=0.98.因为该命题的可信度大于域值0.8(假设所有变迁启动的域值都是0.8),则p1对应的命题是一个被激活的事件.可以计算p5的可信度a(p5)=a(p1)*0.92=0.98*0.92=0.90,a(p5)>0.8,p5对应命题也被激活,计算a(p8)=a(p5)*0.97=0.9*0.97=0.87.这样我们就找到导致p8的故障源,那就是p1对应的命题“工具故障”,由该命题导致的“缺陷率≥UCL”故障的可信度是0.87.
(3)若系统询问“是否存在工具故障?”时,回答“工具基本正常”,由模糊程度量化表计算该命题可信度a(p1)=0.1,0.1小于0.7,则p1对应命题不会被激活.系统会按照变迁可信度大小,继续如上推理过程.重复如上推理过程,直到找到故障原因,并计算故障位置的可信度.
6 结束语本文研究软件密集型武器装备中嵌入式软件生产的过程控制问题. 传统Shewhart控制图难以标识过程间相互作用,通过把系统因素细分为外部系统因素和内部系统因素,借助于选控图就可以分离外部噪音对过程的影响.模糊Petri网能够很好地表示和处理模糊知识和模糊故障信息,按照可信度反向推理,找到最可能产生软件过程故障特征的路径,提高推理效率.文中提出的基于选控图和模糊Petri网技术的过程度量和分析框架是针对单个软件过程的,但是也不难扩展到多个过程,甚至软件开发全过程的度量、分析和控制.
References:
[1]
William A.Florac et al.
Practical Software Measurement: Measuring for Process Management and
Improvement, CMU/SEI-97-HB-003
[2]
William A.Florac, Anita
D.Careton. Measuring the Software Process-Statistical Process Control for
Software Process Improvement. Pearson Education, Inc. 1999
[3]
Konar A,Mandal A K et al.
Uncertainty management in expert systems using fuzzy Petri nets, IEEE Trans On
Knowledge and Data Engineering ,1996,8(1):96-104
[4]
Fuchs C, Benjamini Y.
Multivariate profile charts for statistical process control . Technometrics
,1994 36(2):182-195
[5]
CHEN S M. Knowledge
Representation Using Fuzzy Petri Nets. IEEE Trans on Knowledge and Data
Engineering , 1990,2(3):331-339
[6]
Mutata T. Petri Nets:
Properties, Analysis and Applications. In: Proc IEEE, 1989, 77(4):541-580
[7]
Yeung D S, Tsang E C C.
Fuzzy Knowledge Representation and Reasoning Using Petri Nets. J. of Expert
Syst. 1990,7(2):281-289
[8]
Loony C. Fuzzy Petri for
Rule-Based Decisionmaking . IEEE Trans on SMC, 1988, 18(1): 178-183
[9]
Hanna M M, Buck A, Smith
R. Fuzzy Petri Nets with Neural Networks to Model Products Quality from a CNC
Millings Machining Centre. IEEE Trans on SMC-Part A, 1996, 26(5):638-645
[10] Yeung D S, Tsang E C C.
Improved Fuzzy Knowledge Representation and rule Validation Using Fuzzy Petri
Nets and Degree of Subsethood. J. of Int. Systems, 1994, 9 :1083-1100
[11] 何新贵,模糊知识处理的理论和技术,第2版,北京:国防工业出版社,1998 |






