摘 要:基于隐马尔可夫模型HMM提出了一种新的信息工程监理质量控制方法,并建立了模型。该模型将信息工程质量监理过程视为两层随机过程,通过抽取监理过程的特征,将隐马尔可夫模型的5个要素与质量监理过程相对应。利用该模型可以求解质量度量要素观测序列和质量状态的匹配度,通过调整模型的初始参数可以将该模型应用于不同的监理软件,并以概率的形式预测监理过程的结果。通过仿真实验,验证了该方法应用于信息工程监理质量控制的可行性。
关键词:信息工程监理;质量控制;隐马尔可夫模型;前向算法
目前,用于信息工程监理[1]质量控制的方法主要有基于模糊理论、基于因素神经网络、基于灰色系统理论[2]和基于模糊因素神经网络等;软件质量的度量模型主要有Boehm模型、McCall模型和ISO/IEC9126模型[3]等。这些方法和模型都能较好地适应于静态问题的解决,但监理人员只有针对信息工程监理各个阶段实施全过程的动态监理,才能使影响信息系统质量的要素在开发过程中处于受控状态。隐马尔可夫模型HMM(Hidden Markov Model)是一种双重随机过程,能够解决随机不确定问题,在很多方面已有广泛应用[4],具有理论研究透彻、算法成熟、效率高、效果好、易于训练等特点,作为一种有效的概率工具,已成为信息抽取领域中一个新的研究方向[5]。本文通过对信息工程质量监理过程特点的分析,将隐马尔可夫模型映射到质量监理中,利用前向算法估计出在该模型下观测事件序列发生的概率,从而在一定程度上有助于对软件质量进行定量控制。
1 模型的建立
1.1 特征提取
隐马尔可夫模型由两个部分组成[6]:一个是隐蔽的(不可观测的)、具有有限状态的马尔可夫链[7],另一个是与马尔可夫链的每一状态相关联的观察事件的随机过程(可观测的)。
将隐马尔可夫模型映射到信息工程监理质量评估模型上,即一个软件的质量状态是无法直接观察到的,但是可以通过分析与这个软件相关的质量度量要素,估算该软件的质量状态,从而进一步得到其量化的评判值。信息化工程监理国标中的信息化工程监理规范技术参考模型[8]将信息工程质量监理分为工程招标、工程设计、工程实施和工程验收四个阶段。各个阶段的软件质量状态构成一个马尔可夫链,度量要素序列是一个随机过程,每一个度量要素会对软件的质量状态的转移带来一定影响,这样,度量要素序列和软件的质量状态之间就构成了一个隐马尔可夫模型。通过观察信息工程监理全过程各个阶段的度量要素,每个阶段都可以得到一个随机的度量要素序列,这样就可以计算软件的质量状态和评判值。
软件质量目标控制按照分层法分解为人、软件元、开发方法、设备及材料和工程环境五个度量要素,软件质量状态依据各度量要素分为优、良、中、差四个决断因子,如果再定义出它们之间的概率转换关系,就会得到由这两组状态构成的隐马尔可夫模型(如图1所示)。
根据该HMM模型,可以在没有直接观测软件质量的情况下根据度量要素的分布来推测软件质量的变化情况。
如果能较为准确地计算软件质量处于何种状态,则可以定量分析软件的质量情况。软件质量状态之间的转移见图2。
由图1可以直观看出,度量软件质量的要素有5个,用V={P,U,M,F,E}表示,ν1=P(People),表示度量要素人的因素;ν2=U(Units),表示度量要素软件元质量;ν3=M(Methods),表示度量要素开发方法;ν4=F(Facilities),表示度量要素设备及材料;ν5=E(Environment),表示度量要素工程环境。设质量度量要素观测序列为O={o1,o2,o3,o4},其中ot∈V。
设软件质量情况在信息工程监理开始阶段状态为π,它是一个向量,表示在信息工程监理工程招标阶段软件质量处于各个状态的概率,π={π1,π2,π3,π4},πi=P(q1=si),1≤i≤4。对于工程招标阶段,可以根据信息工程监理协同工作平台下的模糊因素神经网络质量评估方法得到一个默认值,之后的每一阶段,通过Trans和Obs可以计算出当前软件质量处于各种状态的概率st=(r1,…,r4),将此概率作为下一阶段的初始状态。在t阶段,状态分布表示为rt={rt(i)},1≤i≤4,状态的分布概率公式为:rt(i)=P(qt=si|λ)。再引入一个代价向量C[10],代表软件在每个状态的质量值,则可以将软件状态的定性分析转化为定量分析。
设Trans为软件质量状态转换矩阵,即质量状态之间转换的概率组成的矩阵,包含4行4列,aij表示在t阶段质量状态为si,那么到t+1阶段质量状态为sj的概率,即aij=P(qt+1=sj|qt=si),1≤i,j≤4。
定义Obs为当软件处于某一个特定质量状态时观测到某种度量要素的概率矩阵,bj(k)表示在阶段t,软件质量处于sj状态观测到度量要素νk的概率,1≤k≤5,1≤j≤4。
2 基于前向算法的模型应用
根据得到的观察序列O={o1,o2,o3,o4}和模型λ=(π,Trans,Obs)可以计算出在该模型下观察事件序列发生的概率P(O|λ)。P(O|λ)评价了给定模型?姿与给定观测序列匹配的程度。
对隐马尔可夫模型而言,状态转换序列是隐藏的,一个观测序列可能由任何一种状态转换序列产生。因此要计算一个观测序列的概率值,就必须考虑所有可能的状态转换序列。
穷举搜索的时间复杂度是2TNT,前向算法的时间复杂度是2N2T,其中T指的是观察序列长度,N指的是隐藏状态数目。对于信息工程监理质量控制,N=4,T=4,如果利用穷举搜索算法,复杂度相对会比较大,可以采用前向算法来降低复杂度。
给定这种算法,对于已知的一个度量要素观察序列,可以直接用来确定在一些隐马尔可夫模型中哪一个最好地描述了它,即先用前向算法评估某一个给定的λ,然后通过多次调整参数λ来提高评估的概率,进而通过实时调整信息工程监理中的质量的度量要素的比例来达到提高软件质量控制的目的。
3 仿真实验
实验数据来源于信息工程监理协同工作平台(IPSS)下的数据库。实验环境为Eclipse和Java开源工具包jahmm-0.6.1。文中使用状态数为N=4,观测值数为M=5的隐马尔可夫模型进行检验。
在信息工程监理中,每个阶段软件所处的质量状态与前一阶段所处的质量状态有关,即前一阶段的质量状态会影响下一阶段质量状态出现的概率。
初始质量状态概率分布:π=(0.3,0.3,0.2,0.2)
四个质量状态两两之间转化的概率如表1所示。
软件质量处于某个状态时,度量要素所占的比例有一定的规律性。度量要素观测值概率分布如表2。
下面根据软件质量初始状态、表1和表2的数据,估计状态序列O={P,U,M,F}出现的概率。假设P为工程招标阶段观测到的主导要素,U为工程设计阶段观测到的主导要素,M为工程实施阶段观测到的主导要素,F为工程验收阶段观测到的主导要素。
在模型λ下,在t时刻观测事件是ot、状态是si的概率如表3所示,每个阶段的四个概率对应四个质量状态。
本文通过对隐马尔可夫理论的分析,建立了用于质量控制的隐马尔可夫模型,并尝试基于该模型对信息工程监理进行质量控制。本文提出的隐马尔可夫质量控制模型只是用于控制信息工程监理4个阶段的5个基本要素,模型稍显粗糙。如何基于隐马尔可夫模型或其他扩展模型与信息工程监理质量控制完全的整合,以及如何利用模型进行质量评估并对模型进行训练还需要进一步的探索研究。
参考文献
[1] 刘宏志,葛迺康.信息化工程监理[M].北京:中国电力出版社,2009.
[2] 刘宏志,杨建军.基于灰色系统理论的软件工程监理研究[J].经济管理,2007,29(18).
[3] 周建.关于软件质量的定量评估的研究[D].成都:电子科技大学,2007.
[4] 胡可,张大力.一类广义隐马尔可夫模型的建模与参数估计[J].中国科学院研究生院学报,2005,22(2):210-217.
[5] 洪流,张巍,肖明军,等.一种改进的基于HMM的信息抽取模型[J].模式识别与人工智能,2004,17(3):347-351.
[6] 翟琳琳,陈仪香.隐马尔可夫模型在智能学习系统中的应用[J].计算机工程与应用,2007,43(6):178-180.
[7] Wojciech Pieczynski. Pairwise Markov Chains[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003, 25(5): 634-639.
[8] 中国国家标准化管理委员会.信息化工程监理规范——第5部分:软件工程监理规范[S].中华人民共和国国家标准,GB/T 19668.5-2007,ICS.35.020,L01.
[9] LEE H K, KIM J H. An HMM-Based Threshold Model Approach for Gesture Recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999, 21(10):961-973.
[10] 董静.改进的HMM网络安全风险评估方法研究[D].武汉:华中科技大学,2008.
[11] 彭子平,张严虎,潘露露.隐马尔可夫模型原理及其重要应用[J].计算机科学,2008,35(4).