一种基于结构熵的活动相关度度量方法

来源 :数字化用户 | 被引量 : 0次 | 上传用户:qq269828183
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】在软件过程中,活动相关度是过程中各个活动相互关联的程度的一种度量,为了能够较好地对过程中的活动相关度进行度量,本文首先对过程中活动和活动相关进行定义,将活动相关分为数据相关和控制相关两种。并提出一种基于结构熵的活动相关度的度量方法,从数据相关和活动相关这两方面对活动相关度进行度量,并综合以上两种相关度给出了一个活动的相关度的度量方法。最后,通过这种活动相关度的度量方法对过程中可挖掘的活动并行性进行分析。
  【关键词】软件过程 活动相关度 结构熵 并行性
  软件过程是指软件生存周期中所涉及的一系列相关过程[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-),女,博士研究生,主要研究方向为软件工程,形式化方法学。
其他文献
【摘 要】随着信息技术的普及,经济、社会的发展对计算机产生了很强的依赖性。对于企业而言,企业开始重视信息技术的发展情况,借助计算机管理,提高企业的经济效益。近几年来,企业的发展更加信息化,在一定程度上增强了企业的竞争力。文章将先对提高计算机信息管理能力的必要性进行分析,接着分析计算机信息管理存在的问题,最后提出提高计算机信息管理能力的办法。  【关键词】计算机信息管理能力 必要性 现状  现代社会
【摘 要】云计算是一种新型的计算模式,在互联网技术上的基础上,可以通过动态可伸缩的虚拟化资源来进行计算。这种计算方式大大地提高了服务器、终端等设备的工作效率,因此广泛地应用于各行各业当中。例如在科研领域中可以通过云计算来进行地震监测、环境监控;在网络安全工作中可以通过云计算来进行数据信息储存;在医学研究中,云计算可以对DNA数据库进行相应的分析、整合等等。本文对基于云计算的计算机实验室进行了综合性
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
【摘 要】数据采集转换是使用AO进行审计分析的前提和重要环节,采集转换中的异常处理是这个环节的关键技术。本文总结了使用排除法处理用友GRP R9数据导入AO出现科目期末余额为负值的异常。本方法对其他财务核算软件数据导入AO时,出现类似错误的处理和纠错也具有借鉴和推广价值。  【关键词】排除法 导入 期末余额 负值  数据采集转换是使用AO进行审计分析的前提和重要环节,采集中的出错处理和异常纠错对不
目的观察核因子κB(NF-κB)非经典信号通路在糖尿病及非糖尿病冠状动脉旁路移植术(CABG)患者桡动脉中的表达及定位。方法收集2013年6月至2014年12月20例糖尿病及20例非糖尿病CABG患者的桡动脉,HE染色比较两组桡动脉管壁形态,免疫组化染色比较NF-κB非经典信号通路关键因子[核因子κB抑制蛋白激酶α(IKKα)、P52、relB、白细胞介素-10(IL-10)]在两组患者桡动脉中的
目的观察微炎症致脂质稳态失调在载脂蛋白E基因敲除(apolipoprotein E knockout, ApoE-/-)小鼠心肌纤维化中的作用,并探讨内皮-间充质转化(endothelial-mesenchymal transition,End-MT)在其中的作用机制。方法24只ApoE-/-小鼠分为对照组(普通饮食,n=8),高脂组(高脂饮食,n=8)和高脂炎症组(高脂饮食,且每日背部皮下注射1
【摘 要】《数据结构》是计算机专业的一门核心课程。计算机科学和应用领域,广泛地使用着各种数据的集合。这些集合中的数据不是孤立的,而是有着内在的联系。学好数据结构,也是为学习“操作系统”、“编译原理”、“数据库系统原理”、“人工智能”等后续课程提供必要的知识准备。很多初学者在学习《数据结构》时,往往感到数据结构很抽象,往往把数据结构、算法相混,甚至把数据结构误认为是程序设计语言。文章主要是谈谈数据结
肝脏含大量巨噬细胞、抗原递呈细胞和淋巴细胞,通过产生细胞因子、补体和急性反应蛋白,对潜在的特异危险信号作出快速应答。
在人类日益注重健康的今天,水质工作仍然是今后净水工作应当重视的主要问题。本文针对净水工作中影响水质的各种关键因素进行分析,有针对性地解决生产中的一些实际问题,以便在今