论文部分内容阅读
【摘 要】在软件过程中,活动相关度是过程中各个活动相互关联的程度的一种度量,为了能够较好地对过程中的活动相关度进行度量,本文首先对过程中活动和活动相关进行定义,将活动相关分为数据相关和控制相关两种。并提出一种基于结构熵的活动相关度的度量方法,从数据相关和活动相关这两方面对活动相关度进行度量,并综合以上两种相关度给出了一个活动的相关度的度量方法。最后,通过这种活动相关度的度量方法对过程中可挖掘的活动并行性进行分析。
【关键词】软件过程 活动相关度 结构熵 并行性
软件过程是指软件生存周期中所涉及的一系列相关过程[1,2,3],而不只是软件的开发过程。软件过程中的并行性是指各活动并行交叉进行,既包括各个部件并行交叉,又包括各个阶段的并行交叉。软件过程改进的目标之一就是提高过程执行的效率,即尽量挖掘软件过程中不相关的活动,让它们并行执行。本文首先对过程中活动的相关进行定义,并提出了一种基于结构熵的度量方法对过程中活动相关度进行度量,活动相关度是度量过程中活动相关联的程度。最后,通过这种活动相关度的度量方法对过程中可挖掘的活动并行性进行分析。过程的活动相关度越大,可挖掘的活动的并行越小可以并行执行的活动就越少。
一、相关工作
根據ISO/IEC 12207标准,软件过程是指软件生存周期中所涉及的一系列相关过程。过程是活动的集合,活动是任务的集合 [2,3]。
本文借鉴文献4,在活动层应用面向对象的技术,将活动描述成类,活动中的任务被描述成类中的操作。下面首先给出活动的定义。
(一)定义1[4] 活动被定义为一个四元组a=(I,O,L,B)
1.I, O, L 分别表示输入,输出和局部数据结构, B是活动体,活动体可能是一个软件过程或者是任务集。
2.这里的活动是个类,即活动类。当活动运行的时候,它就是对象,这个对象通过这
些任务或者这个软件过程是在局部数据结构上操作把输入转换成输出。
(二)定义2[4](活动相关):活动之间的相关关系有两种相关关系:
1.活动之间的数据相关关系
2.活动之间的控制相关关系
借鉴伯恩斯坦定律,文献4给出过程中活动的数据相关和控制相关的定义。
(三)定义3[4](数据相关)P为一个软件过程中的活动集,Rd?P×P 是一个二元关系,在活动集P上的数据相关关系当且仅当Rd ={︳A∈P, B∈P,活动A和活动B至少满足以下条件之一}
1.A.O∩B.I≠?
2.A.I∩B.O≠?
3.A.O∩B.O≠?
(四)定义4[4] (控制相关) P为一个软件过程中的活动集, Rc?P×P 是一个二元关系, 在活动集P上的控制关系当且仅当Rc={︳A∈P, B∈P,在活动集P中活动A的执行能够决定活动B是否能够执行}
二、结构熵的概念
熵(Entropy)理论是应用范围非常广泛的一门科学理论, 熵既是一个物理学概念,又是一个数学函数, 也是一种自然法则;在统计物理学中熵是系统微观态数目多少的量度;在信息论中它是一个随机事件不确定性的量度;对于一个广义的系统来说,熵可作为状态的混乱性或无序性的度量[5]。
最早在生态学研究中发现:系统的组织结构对系统的稳定性等其他特性有着极其重要的作用。生态学研究表明系统的复杂性增加,系统的稳定性也增加,这与系统的组织化程度是一致的。系统的组织性若定义为系统联结结构对称性的破缺,用结构熵来表示的话,组织化程度越高,结构熵越小;反之,结构熵越大。
定义5[8] 系统X的结构熵
H=-,其中 =1。
这是一个在信息论中熟知的熵表达式,在软件过程中的活动相关性度量中,单纯从联结强度和结构熵难以全面反映软件过程中的活动相关特征,因而我们对其扩展,使它能有效地对软件过程中的活动相关度进行度量。
三、基于结构熵活动相关度度量
在软件过程当中,活动相关包含数据相关与控制相关两种不同的相关,本文先通过结构熵分别从活动的数据相关和控制相关这两方面对活动的相关度进行度量,最后再把这两种活动相关综合在一起来度量整个软件过程中的活动相关度。
(一)数据相关度度量
关于软件过程中活动的数据相关,前文已经定义过了。为了度量这种关系,对软件过程中每个活动Ai(i=1,2,…n)引入一个集合D_DEP来记录与活动Ai数据相关的其他活动的集合: D_DEP(Ai)={ Aj ︴Aj与Ai数据相关,且aj≠ ai}。
令(Ai)=
上式中,|D_DEP(Ai)|表示集合D_DEP(Ai)中元素的个数。则过程P中的活动数据相关度D_ Dependence可定义为
D_ Dependence=
引理 按上述定义的活动的数据相关度D_ Dependence的取值范围为[0,1].
证明:由于(Ai)=,有=1,则-≥0,故≥0,此外,当且仅当软件过程P中每个活动都与其他活动数据相关时,则有==…=, =,=,=,过程P中的活动数据相关度D_ Dependence最大,即 D_ Dependence==1。所以,过程中活动的数据相关度D_ Dependence的取值范围为[0,1]。
(二)控制相关度度量
关于软件过程中活动的控制相关,前文已经定义过了。为了度量这种关系,对软件过程中每个活动Ai(i=1,2,…n)引入一个集合C_DEP来记录与活动Ai控制相关的其他活动的集合: C_DEP(Ai)={ Aj ︴Aj与Ai控制相关,且aj≠ ai}。 令(Ai)=
上式中,|C_DEP(Ai)|表示集合C_DEP(Ai)中元素的個数。则过程P中的活动控制相关度C_ Dependence可定义为
C_ Dependence=
引理的证明相同,也可以得出软件过程中活动的控制相关度C_ Dependence的取值范围为[0,1]。同样,当软件过程P中每个活动都与其他活动控制相关时,过程P中的活动控制相关度C_ Dependence最大,即 C_ Dependence=1。
(三)过程的活动相关度的综合度量
在软件过程P中,活动的相关有两种,数据相关和控制相关,过程P中的活动的每一种相关度都不能代表活动的相关度。 活动的相关度是由活动的数据相关度和控制相关度共同决定,因此,可定义活动的相关度Dependence(P)为
Dependence (P) = α D_ Dependence + β C_ Dependence
上式中的α和β分别表示活动的数据相关度和活动的控制相关度在活动相关度中所占的权重,且α + β=1。
因为,D_ Dependence、C_ Dependence的取值都为[0,1] ,且α + β=1,可得Dependence (P)的取值也为[0,1]。
软件过程中各个活动的相关度大小不仅与该活动与其他活动相关程度有关,而且与它们之间相关的分布情况有关。若该活动与其他活动相关程度越高,相关的分布越平均,则该活动的相关度就越高;反之,该活动的相关度越低。
(四)并行性挖掘的分析
在软件过程中,两个活动若不相关,则他们是可以并行执行。若将软件过程中可并行的活动挖掘出来,让它们并行执行,通过这种方式对过程进行改进,可以大大提高过程的效率。前文我们对软件过程中活动的相关度引入结构熵对其度量,通过对过程中的活动相关性的度量来分析可挖掘的活动并行性γ。
令γ(P)=1 Dependence (P)
上式中,γ表示可挖掘的活动的并行性,软件过程中活动的相关度Dependence越大,γ就越小,表示过程中挖掘到的可以并行执行的活动几率就越大,可以并行执行的活动就越多。
活动相关度在活动分解中的应用
在软件过程中,活动相关度如果过大,那么可挖掘的并行性较小,即可并行执行的活动较少,因此软件的过程的执行效率较低。说明过程中的活动划分的粒度可能过粗,如果活动能被再次分解,那么分解后的活动通过上述的计算方法将得出新的活动相关度,并将可并行的活动并行执行。
四、结论
软件过程改进的目标之一就是提高过程的效率,即尽量挖掘软件过程中不相关的活动,让它们并行执行。本文首先对过程中活动的相关进行定义,并提出了一种基于结构熵的度量方法对过程中活动相关度进行度量。最后,通过这种活动相关度的度量方法对过程中可挖掘的活动并行性进行分析。过程的活动相关度越大,可挖掘的活动的并行越小可以并行执行的活动就越少。同时,活动相关度也可以作为评价过程中活动的粒度的重要依据。
参考文献:
[1]李彤,孔兵,金钊, 王黎霞. 软件并行开发过程[M].北京:科学出版社, 2003,8:3-7.
[2]柳军飞,唐稚松. 软件过程建模语言.软件学报,1996,7(8):449-457.
[3]宗志东,朱冰,邵维忠等. 软件过程技术研究.计算机科学,1997,24(3):6-10
[4]Tong Li. An Approach to Modelling Software Evolution Processes[M]. Springer-Verlag GmbH, Berlin Heidelberg New York, 2008,8
[5]俞礼军,严海,严宝杰. 最大熵原理在交通流统计分布模型中的应用[J]. 交通运输工程学报, 2001,1(3):91-94.
[6]郁湧,唐家华,李文宏,李彤.一种基于结构熵的类内聚度度量方法[J].系统工程与电子技术,2009 Vol.31, No.3:702-704.
基金项目:
云南省教育厅项目 “鲜切花价格预测方法的探究”,项目编号:2013J103。
作者简介:
孙吉红(1983-),男,硕士研究生,主要研究方向为人工智能。
钱晔(1984-),女,博士研究生,主要研究方向为软件工程,形式化方法学。
【关键词】软件过程 活动相关度 结构熵 并行性
软件过程是指软件生存周期中所涉及的一系列相关过程[1,2,3],而不只是软件的开发过程。软件过程中的并行性是指各活动并行交叉进行,既包括各个部件并行交叉,又包括各个阶段的并行交叉。软件过程改进的目标之一就是提高过程执行的效率,即尽量挖掘软件过程中不相关的活动,让它们并行执行。本文首先对过程中活动的相关进行定义,并提出了一种基于结构熵的度量方法对过程中活动相关度进行度量,活动相关度是度量过程中活动相关联的程度。最后,通过这种活动相关度的度量方法对过程中可挖掘的活动并行性进行分析。过程的活动相关度越大,可挖掘的活动的并行越小可以并行执行的活动就越少。
一、相关工作
根據ISO/IEC 12207标准,软件过程是指软件生存周期中所涉及的一系列相关过程。过程是活动的集合,活动是任务的集合 [2,3]。
本文借鉴文献4,在活动层应用面向对象的技术,将活动描述成类,活动中的任务被描述成类中的操作。下面首先给出活动的定义。
(一)定义1[4] 活动被定义为一个四元组a=(I,O,L,B)
1.I, O, L 分别表示输入,输出和局部数据结构, B是活动体,活动体可能是一个软件过程或者是任务集。
2.这里的活动是个类,即活动类。当活动运行的时候,它就是对象,这个对象通过这
些任务或者这个软件过程是在局部数据结构上操作把输入转换成输出。
(二)定义2[4](活动相关):活动之间的相关关系有两种相关关系:
1.活动之间的数据相关关系
2.活动之间的控制相关关系
借鉴伯恩斯坦定律,文献4给出过程中活动的数据相关和控制相关的定义。
(三)定义3[4](数据相关)P为一个软件过程中的活动集,Rd?P×P 是一个二元关系,在活动集P上的数据相关关系当且仅当Rd ={︳A∈P, B∈P,活动A和活动B至少满足以下条件之一}
1.A.O∩B.I≠?
2.A.I∩B.O≠?
3.A.O∩B.O≠?
(四)定义4[4] (控制相关) P为一个软件过程中的活动集, Rc?P×P 是一个二元关系, 在活动集P上的控制关系当且仅当Rc={︳A∈P, B∈P,在活动集P中活动A的执行能够决定活动B是否能够执行}
二、结构熵的概念
熵(Entropy)理论是应用范围非常广泛的一门科学理论, 熵既是一个物理学概念,又是一个数学函数, 也是一种自然法则;在统计物理学中熵是系统微观态数目多少的量度;在信息论中它是一个随机事件不确定性的量度;对于一个广义的系统来说,熵可作为状态的混乱性或无序性的度量[5]。
最早在生态学研究中发现:系统的组织结构对系统的稳定性等其他特性有着极其重要的作用。生态学研究表明系统的复杂性增加,系统的稳定性也增加,这与系统的组织化程度是一致的。系统的组织性若定义为系统联结结构对称性的破缺,用结构熵来表示的话,组织化程度越高,结构熵越小;反之,结构熵越大。
定义5[8] 系统X的结构熵
H=-,其中 =1。
这是一个在信息论中熟知的熵表达式,在软件过程中的活动相关性度量中,单纯从联结强度和结构熵难以全面反映软件过程中的活动相关特征,因而我们对其扩展,使它能有效地对软件过程中的活动相关度进行度量。
三、基于结构熵活动相关度度量
在软件过程当中,活动相关包含数据相关与控制相关两种不同的相关,本文先通过结构熵分别从活动的数据相关和控制相关这两方面对活动的相关度进行度量,最后再把这两种活动相关综合在一起来度量整个软件过程中的活动相关度。
(一)数据相关度度量
关于软件过程中活动的数据相关,前文已经定义过了。为了度量这种关系,对软件过程中每个活动Ai(i=1,2,…n)引入一个集合D_DEP来记录与活动Ai数据相关的其他活动的集合: D_DEP(Ai)={ Aj ︴Aj与Ai数据相关,且aj≠ ai}。
令(Ai)=
上式中,|D_DEP(Ai)|表示集合D_DEP(Ai)中元素的个数。则过程P中的活动数据相关度D_ Dependence可定义为
D_ Dependence=
引理 按上述定义的活动的数据相关度D_ Dependence的取值范围为[0,1].
证明:由于(Ai)=,有=1,则-≥0,故≥0,此外,当且仅当软件过程P中每个活动都与其他活动数据相关时,则有==…=, =,=,=,过程P中的活动数据相关度D_ Dependence最大,即 D_ Dependence==1。所以,过程中活动的数据相关度D_ Dependence的取值范围为[0,1]。
(二)控制相关度度量
关于软件过程中活动的控制相关,前文已经定义过了。为了度量这种关系,对软件过程中每个活动Ai(i=1,2,…n)引入一个集合C_DEP来记录与活动Ai控制相关的其他活动的集合: C_DEP(Ai)={ Aj ︴Aj与Ai控制相关,且aj≠ ai}。 令(Ai)=
上式中,|C_DEP(Ai)|表示集合C_DEP(Ai)中元素的個数。则过程P中的活动控制相关度C_ Dependence可定义为
C_ Dependence=
引理的证明相同,也可以得出软件过程中活动的控制相关度C_ Dependence的取值范围为[0,1]。同样,当软件过程P中每个活动都与其他活动控制相关时,过程P中的活动控制相关度C_ Dependence最大,即 C_ Dependence=1。
(三)过程的活动相关度的综合度量
在软件过程P中,活动的相关有两种,数据相关和控制相关,过程P中的活动的每一种相关度都不能代表活动的相关度。 活动的相关度是由活动的数据相关度和控制相关度共同决定,因此,可定义活动的相关度Dependence(P)为
Dependence (P) = α D_ Dependence + β C_ Dependence
上式中的α和β分别表示活动的数据相关度和活动的控制相关度在活动相关度中所占的权重,且α + β=1。
因为,D_ Dependence、C_ Dependence的取值都为[0,1] ,且α + β=1,可得Dependence (P)的取值也为[0,1]。
软件过程中各个活动的相关度大小不仅与该活动与其他活动相关程度有关,而且与它们之间相关的分布情况有关。若该活动与其他活动相关程度越高,相关的分布越平均,则该活动的相关度就越高;反之,该活动的相关度越低。
(四)并行性挖掘的分析
在软件过程中,两个活动若不相关,则他们是可以并行执行。若将软件过程中可并行的活动挖掘出来,让它们并行执行,通过这种方式对过程进行改进,可以大大提高过程的效率。前文我们对软件过程中活动的相关度引入结构熵对其度量,通过对过程中的活动相关性的度量来分析可挖掘的活动并行性γ。
令γ(P)=1 Dependence (P)
上式中,γ表示可挖掘的活动的并行性,软件过程中活动的相关度Dependence越大,γ就越小,表示过程中挖掘到的可以并行执行的活动几率就越大,可以并行执行的活动就越多。
活动相关度在活动分解中的应用
在软件过程中,活动相关度如果过大,那么可挖掘的并行性较小,即可并行执行的活动较少,因此软件的过程的执行效率较低。说明过程中的活动划分的粒度可能过粗,如果活动能被再次分解,那么分解后的活动通过上述的计算方法将得出新的活动相关度,并将可并行的活动并行执行。
四、结论
软件过程改进的目标之一就是提高过程的效率,即尽量挖掘软件过程中不相关的活动,让它们并行执行。本文首先对过程中活动的相关进行定义,并提出了一种基于结构熵的度量方法对过程中活动相关度进行度量。最后,通过这种活动相关度的度量方法对过程中可挖掘的活动并行性进行分析。过程的活动相关度越大,可挖掘的活动的并行越小可以并行执行的活动就越少。同时,活动相关度也可以作为评价过程中活动的粒度的重要依据。
参考文献:
[1]李彤,孔兵,金钊, 王黎霞. 软件并行开发过程[M].北京:科学出版社, 2003,8:3-7.
[2]柳军飞,唐稚松. 软件过程建模语言.软件学报,1996,7(8):449-457.
[3]宗志东,朱冰,邵维忠等. 软件过程技术研究.计算机科学,1997,24(3):6-10
[4]Tong Li. An Approach to Modelling Software Evolution Processes[M]. Springer-Verlag GmbH, Berlin Heidelberg New York, 2008,8
[5]俞礼军,严海,严宝杰. 最大熵原理在交通流统计分布模型中的应用[J]. 交通运输工程学报, 2001,1(3):91-94.
[6]郁湧,唐家华,李文宏,李彤.一种基于结构熵的类内聚度度量方法[J].系统工程与电子技术,2009 Vol.31, No.3:702-704.
基金项目:
云南省教育厅项目 “鲜切花价格预测方法的探究”,项目编号:2013J103。
作者简介:
孙吉红(1983-),男,硕士研究生,主要研究方向为人工智能。
钱晔(1984-),女,博士研究生,主要研究方向为软件工程,形式化方法学。