




已阅读5页,还剩125页未读, 继续免费阅读
(管理科学与工程专业论文)面向uml模型的依赖性分析及应用的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
影响:同时该方法克服了现有许多类图复杂性度量准则仅考虑某个方面而没有综合考虑的不足,实验结果表明该方法与人们的经验有较高的相关性,为综合评估类图的结构复杂性提供了依据。论文还详细地对该方法所具有的优良性质进行了证明,设计并实现了该度量方法。论文的主要创新在以下几个方面:1 ,提出了眦类图和结合m 纪通信图的矾纪类图的依赖性分析方法,前者以类和链接关系为依赖性分析单元,而后者以类、属性和操作为依赖性分析单元;之后在此基础上对硼牡类图进行了粗粒度切片和细粒度切片。矾钇类图切片结果可进一步缩减类图的规模,有助于在设计阶段更好地分析、理解明钇静态模型。2 提出了碉钇状态机图的依赖性分析方法,以状态和迁移为依赖性分析单元,解决了现有依赖性分析方法中一个节点上不能定义或修改多个变量的情形。在此基础上,提出了一种钇状态机图切片方法,切片结果缩减了m 犯状态机图的规模,有助于更好地分析设计和理解调试硼犯动态模型。3 提出了一种新的基于依赖性分析的醐让类图复杂性度量方法,从类问关系的复杂性和类自身的复杂性等两个方面来度量类图的复杂性。该方法克服了现有许多类图复杂性度量准则仅考虑某个方面而没有综合考虑的不足,为综合评估类图的结构复杂性提供了依据。【关键词】矾犯依赖性分析程序切片软件度量结构复杂性度量3t h r e ec a s e s :( 1 ) i td o e sn o tc o n t a i nc o m p o s i t es t a t e s ;( 2 ) i tm a yi n c l u d eo r d i n a ls u b s t a t e s ;( 3 ) i tm a ym c l u d ec o n c u r r e n ts u b s t a t e s s t a t e sa n dt r a n s i t i o n sa r es e l e c t e da su n i t so fd e p e r l d e n c ea n a l y s i s d a t ad e p e n d e n c ec o n s i d e r st 1 1 es i t u a t i o nt h a to n eb a s i cs t a t eo rt r a n s i t i o nm a yd e f i n eo rm o d i 母m o r et h a i lo n ev a r i a b l e ,w h i c hs 0 1 v e st 1 1 ep r o b l e mi ne x i s t i n gd e p e n d e n c em e t l l o d sm a to n eb a s i cs t a t eo rm m s i t i o nc a n n o td e f i n eo rm o d i 母m o r em a no n ev a r i a b l e o nt 1 1 eb a s i so fm ea b o v e ,t l l i sd i s s e r t a t i o nd e v e l o p sas l i c i n gm e t h o df o ru m ls t a t em a c h i n ed i a 掣a m s t h es l i c ec a nl a 唱e l yr e d u c e 也es i z eo fs t a t em a c h i n ed i a g r 锄s ,a n db eh e l p m l t ob e n e ra t l a l y z ea n du n d e r s t a n da 1 1 dd e b u gd ) ,1 1 锄i cm o d e l s 4 u m lc l a s sd i a g r a mc o m p l e x i t ym e a s u r eb a s e do nd e p e n d e n c ea i l a l y s i sf i r s t l y ,t h i sd i s s e r t a t i o ns y s t e m a t i c a l l ya i l dd e e p l yd i s c u s s e s ,a n a l y z e sa j l dc o m p a r c ss o m et y p i c a le x i s t i n gm e a s u r c sf - o ru m lc l a s sd i a 伊锄sf b md i 邱b r e m“唧o i m s ,d i 虢r e mt y p e so fr e l a t i o n s h i p s ,d i 虢r e mt y p e so fm e t r i cv a l u e s ,c o m p l e x 咄a f l dt h e o r e t i c a la n de m p i r i c a lv a l i d a t i o n 1 1 1 e n ,z h o u sm e a s u r ci ss e l e c t e da sr e s e a r c he m p h a s e st od i s c u s si t se s s e n c ea 1 1 db e h a v i o r s 行o m也e o r e t i c a la n de n 叩i r i c a la s p e c t s f u r t h e r m o r e ,s o m ep r o b l e m sa n de r r o r sa r ep o i n t e do u t ,s u c ha st h ec a s eu n d i s t i n g u i s h e do ri n c o n 它c t ,a i l ds oo n f i n a l l y ,s o m er e a s o n sa j f b u n do u ta st h ef o u n i i a t i o nf o r 矗l r t h e rr e s e a r c h 5 n e wu m lc l a s sd i a g r a mc o m p l e x i t ) rm e a s u r eb a s e do nd e p e n d e n c ea n a l y s i st h i sd i s s e r t a t i o np r o p o s e sac o m p l e x i t ym e t r i cf o ru m lc l a s sd i a 酎锄so nt 1 1 eb a s i so fd 印e n d e n c ea | l a l y s i s t h em e 仃i cm e a s u r e sc o m p l e x i 锣o fc l a s sd i a g r a m s 自o mt 、oa s p e c t s ,n 锄e l yc l a s s c st l l e m s e l v e sa i l dr c l a d o n s l l i p sa m o n gm e m t h ec o m p l e x 匆o fc l a s si t s e l fl a y sp 训c u l a re i n p h a s i so np u b l i c ,p r i v 砒e ,趾dp m t e c t e dp r o p c m e so fi t sa t t r i b u t e s 趾dm c t h o d s t h em e t r i co v e r c o m e sm el i m i t a t i o n so f1 0 t so fm e t r i c st l l a to n l yc o n s i d e rs o m eo ft 1 1 ea s p e c t si n s t e a do fa l lo ft h e m e x p e r i r n e n tr e s m t ss h o wt l l a tt l l e r ei sas i 印i f i c a i l tc o 玎e l a t i o nb 酶c c nt h ep r o p o s e dm e m ca n dp e o p l e se x p e r i e n c e ,w 1 1 i c hp r o v i d ee v i d e n c et oe s t i i n a t e也es t m c t l l m lc o m p l e x i t yo fc l a s sd i a 掣a i l l s t h i sd i s s e r t a t i o na l s op r o v e si nd e t a i ls o m eg o o dp r o p e n i e so f m ep r o p o s e dm e 证ca n di m p l e m e n t si t t h em a i ni i u l o v a t i o n so f m ed i s s e r t a t i o na r e1 i s t e da sf 0 1 l o w s 1 t h i sd i s s e r t a t i o np r o p o s e sam e t h o df o rd e p e n d e n c ea n a l y s i so fu m lc l a s sd i a g r a m sa n dam e t h o df o rd 印e n d e n c ea 1 1 a l y s i so fu m lc l a s sd i a g r 锄sc o m b i n g 谢t l lu m lc o m m u i l i c a t i o nd i a g r a l n s t h ef o r i i l e rs e i e c t sc l a s s e sa 1 1 dr e l a t i o n s h i p sb e t w e e nc i a s s e sa sl l i l i t st oa i l a l y z ed e p c n d e n c e ;m el a t t e rs e l e c t sc l a s s e s ,a n 曲u t e s ,o p 训i o n sa i l dr e l 撕o n s h j p sb e t 、v e e nc l a s s e sa s 嘶t st oa n a l y z ed 印e n d e n c e 0 nt h e6b a s i so fd e p e n d e n c e 姐a l y s i s ,t h i sd i s s e n a t i o np r o p o s e sac o a r s e - g m i n e ds l i c i n gm e t h o df o ru m lc l a s sd i a g r a m sa i l dag r a n l l l e g r a i n e ds l i c i n gm e m o df o ru m lc l a s sd i a g m m s t h es l i c i n gm e m o d sc a i lo b t a i nm u c hm o r ep r e c i s i o ns l i c e s ,a n dl a 唱e l yr e d u c et h es i z eo fc l a s sd i a 孕锄s ,a n dc a i lb eh e l p 削t ob e t t e ra n a l y z ea i l du n d e r s t a n ds 协d cm o d e l sa tm es t a g eo f d e t a i ld e s i 9 1 1 2 t l l i sd i s s e n a t i o np r o p o s e sam e t l l o df o rd 印e n d e n c ea i l a l y s i so fu m ls t a t em a c h i n ed i 雌阳m s s t a 把sa n d 打a n s j t i o n sa r es e l e c t e da sl u l i t so fd 印e n d e n c e 姐a l y s i s d a t ad e p e n d e n c ec o n s i d e r ss i t l l a t i o nm a to n eb a s i cs t a t e0 rn 锄s i t i o nm a yd e f i n eo rm o d 田i n o r et l l a o n ev a r 主a b l e ,w 血i c hs o l v e st 1 1 ep m b l e mi ne x i s t i n gd 印e n d e n c em e l o d st l l a tc a i l i l o td e f i n eo rm o d i 母m o r et 1 1 a 1 1o n ev 撕a b l e o nt 1 1 eb a s i so ft h ea b o v e ,t h i sd i s s e n a t i o nd e v e l 叩sas l i c i n gm e t h o df o ru m ls t a t em a c h i n cd i a g 姗s t h es l i c ec a i li a r g e l yr e d u c es i z eo fs t a t em a c h i n ed i a 弹m s ,锄dc 趾b eh e l p 向lt ob 眦ra i l a l y z e ,u n d e r s t 姐d 姐dd c b u gd y n 删cm o d e l s 3 t 拉sd i s s e r t a t i 伽p m p o s e sa1 1 c wc o m p l e x i t ym e 耐cf o ru m lc l a s sd i a g r a m so nt h eb 勰i so fd 印e n d e n c ea i l a l y s i s t h em e t r i cm e a s u r c s 也ec o m p l e x i t ) ro fc l a s sd i a g r 锄sf 如mt w oa s p e c t s ,n a m c l yc l a s s e st h e m l v e sa l l dr e l a t i o n s h i p s 锄o n gt h e m t h em e 缸co v e r c o m e s 也el i m i t a t i o n so fl o t so fm e t r i c st l l a to i l l yc o n s i d e rs o m eo ft l l ea s p e c t si n 鼬e a do fa l lo fm e m t 地m e t r i cd r o v i d e se v id i j n c et oe s t i m a t es t m c t l l 】mc o m p l e x i 哆o fc i a s sd i 艇即m s 【k e yw o r d s 】u n i f i e dm o d e l i n gl a i l g l l a g e ;d 印e n d e n c ea 1 1 a l y s i s ;p m g r a ms l i c i n g ;s o r w a r em e a s u r e ;s 劬l c t u m lc o m p l e x i t ym e 髂u r e71 导论1 导论1 1 选题依据1 1 1 选题的背景依赖性纠蒜攀差目蚪u p 掌:鞫i 瑶 ! ;臻萋蠡;蒜嚣篓峪蠢基鹱滔趔攀埋蘸漆篓羹廷舞型嚣鏊i 墓一魏萋受蠢醴疆婺照翟趱掣鍪蔷i 疡荔拦瞰强鬟懋嚣辣? 嚣澄。秘羹。鸳攫= 纛| :萎l ,蓦彩。熏篷;蠢癸嚣鎏;需滔藿攀;制嚣凳瑟:硅鲤露器醢捃遁落鼹蔷鬻嚣蘸襄嚣。鞭豁罄嚣嚣黼嚣囊遵鎏捌瓣塑鞴避;粪燮貉婪墓商嚣塑囊篓疆r o p o s e sam e t h o df o rs l i c 吨zf jr i i l a ls p e c m c a t i o n sb a s e do nr e l a t i o nc a l c u l u s t h e nt h ep r o c e s sofzf o 肿a ls p e c i f i c a t i o ns l i c i n gi st r a l l s f o r n l e di n t or c l a t i o ns e l e c t ,r e l a t i onp r o j e c ta n dr e l a n o n sc o r m e c ti nr e l a t i o na l g d ) r ac a l c u l u s ,a n dr c i a t io nc a l c u i u si nz1 a n g i l a g e ,s u c ha sd o m a i nr e s t r i c t a i l dr a n g er e s t r i c t ,a i l ds o0 n f o n a r da r l db a c k w a r ds c h e m as l i c e sa r ec o m p u t e dt h i sm e t l l o dd o e sn o tt a l ( et i m et 0c o n s t n i c td e p e n d e n c ef 印h s ,w hi c hd e c r e a s e sc h a i l c eo f m a 姑n gam i s t a k e 3 t h i sd i s s e n a t i o ne x t e nd 印p l i c a t i o nd o m a i n so fd e p e n d e n c ea n a l y s i sa n dzf o 啪a ls p e c i f i c a t i o ns1 i c i n g ,a n dp r o p o s e san o v e lm e t h o df o rc o m p u t i n gp r o m o t i o ns c h em ap r o m o t e ,a i l dt r a l l s f o m sp r o c e s so ft h e o r e mp r o o fi n t ob a c k w 缸dzf b 舯a ls p e c i f i c a t i o ns l i c i n go nt h ec o n d i t i o no fc o n c l u s i ona ss l i c i n gc r i t e d o n ,a n dd e v e l o p sas u i t eo fm e 啊c st om e a s t l r es c h e m a sofzf o r i i l a 】s p e c 治c a t i o n s ,w h i c hc o n s i d e r ss c h e m ad e c o ra t i o n ,s c h e m ai n c l u s i o n ,s c h e m at y p e ,a n ds c h e m ac a l c u l u s ,a n ds oon a c c o r d i n gt ot h e s em e t r i c s ,s o m ep r o b l e m sc a l lb ef b l l l l da n do v e rc o m ea tt b ee a r 】yl i f ec y c l e ,w h i c hr e d u c ec o s tg r e a t l y m o r e o v e re st i m a t i 如o f t h es y s t e mc a nb ep r e c e d e de 艉c t i v e l y 【k e yw o r d s 】z1 a j l g u a g e ;p r o g r a ms l i c i n g ;f o r n l a ls p e c i f i c a t i o ns l i c i n g ;d e p e n d e n c ex面向u m l 模型的依赖性分析及应_ l | j 的研究刚刚起步l “。统一建模语言硼钇是一种直观的、图形化的建模语言,其主要内容可以归纳为静态建模机制和动态建模机制两大类。类图是【m 犯静态建模机制的重要组成部分,是面向对象方法的核心,描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象之间的各种静态关系。在类图中,类与类间的关系可细分为:关联关系、聚合关系、组合关系、泛化关系、依赖关系。需要注意的是,依赖关系通常包括:许可( 口p 瑚f f ) 、实现( 聊,妇) 、置换( s “6 州f “把) 和使用( 螂p ) 等【”。硼犯的动态建模机制所建立的模型可表示执行时的时序状态或交互关系。删l 状态机图是珊犯动态建模机制的重要组成部分,可描述类的所有对象可能具有的状态以及某些事件发生时其状态的转移情况,是对类所描述设施的补充说明。与此同时,在描述系统及模型的动态行为时扮演着重要的角色。在一些对安全性要求较高的实时系统、嵌入式系统、以及分布式系统中,是描述协议、控制单元等组件的常用而重要的手段。对硼钇状态机图进行依赖性分析不仅有利于准确而无二义性地理解其所表示对象的行为,有利于系统的代码生成及优化,而且更有助于对系统的正确性和安全性进行验证和证明。1 1 2 选题的意义随着软件规模越来越大,软件的复杂程度也越来越高,为了开发性能优良的系统,越来越多的人借助勰犯。由于醐犯支持从需求分析到系统设计整个建模过程,并且支持用户从不同的角度描述系统,而大型软件项目各模型间的协作和约束关系错综复杂,如何对这些模型进行管理和维护已成为一个十分重要而又极其迫切需要解决的问题【6 】。研纪是一种面向对象技术,而针对面向对象程序的依赖性分析方法人们也已经提出了很多,但关键在于这些方法能否运用到u m l 中来? 值得注意的是,m 也是一种可独立于程序设计语言的建模语言,即用硼钇建立的软件系统模型可以用妇阳、胁期,c + + 、s 聊口f f f 日腩等任何一种面向对象的程序设计语言来实现,但m 犯与面向对象的程序设计语言有着本质的差别,表现在:1 ) 们钇是一种图形化的语言,而通常用面向对象的程序设计语言编写的程序语句是行文式的。2 ) 明溉可适用于软件开发的各个阶段,从需求分析到代码实现:而面向对象的程序设计语言主要用于代码实现。3 ) 们税可以从静态和动态两个不同的方面来对系统进行建模。因而现有的程序依赖性分析方法无法直接应用到硼纪模型中来。论文研究采用依赖性分析技术来明确硼记模型中各个建模元素之间的依赖性关系,在一定程度上辅助人们对矾钇模型进行理解,便于人们对m 犯模型进行修21 导论改和维护,并可为矾犯模型的复杂性度量提供基础。论文的研究无论在理论研究和应用实践方面都有着重要价值。1 1 3 选题的目的论文研究的目的旨在进一步拓宽依赖性分析技术的研究范围,一定程度上解决面向硼锟模型的依赖性分析及其在切片和度量应用等方面存在的问题,提出硎钇类图和矾牡状态机图的依赖性分析方法,并在依赖性分析的基础上提出一种新的m 犯类图复杂性度量方法;论文还对u 犯类图复杂性度量方法的实现等问题进行深入的探讨。1 2 国内外研究现状自从依赖性分析由p r 甜j p 承t 于1 9 5 9 年提出以来,依赖性分析技术的研究、发展和应用已经经历了4 0 多年,取得了一系列的理论成果和开展了部分实际应用。许多学者对依赖性分析技术作过专门的研究,并开发了一些实用的程序依赖性分析工具。1 2 1 顺序程序的依赖性分析在顺序程序中,依赖性分析主要涉及到由于控制语句的使用而引起控制依赖,和对同名变量的读写而引起的数据依赖。通常人们首先将源程序用控制流图c 粥( c 砌加,f 1 0 w g r a p h ) 的形式图形化表示出来,然后在控制流图上分析语句的前驱、后继、必经节点以及执行路径、变量的定义与使用等信息来进一步分析语句间的依赖关系。为了解决一条语句可能定义多个变量,而这些变量分别依赖于不同的变量的情形,张挺等对数据依赖进行了扩充,引入了关于变量的上下文依赖的概念,明确表示出一条语句中使用的某个变量数据流依赖于另一条语句的某个具体变量”。顺序程序中各种依赖关系具有传递性。为了图形化地描述依赖关系,人们分别借助于程序依赖图p d l g( p r 删d e p e n d e n c e g r a p h ) 和系统依赖图s d g ( 跏 硎d e p e n d e d c eg 伯_ p h ) 来表示程序和系统中的各种依赖关系。1 2 2 并发程序的依赖性分析在对顺序程序进行依赖性分析中,只需考虑控制依赖和数据依赖;在对并发程序进行依赖性分析中,由于并发程序包含多个控制流和数据流,所以增加了同步依赖和任务间数据依赖等关系。同步依赖是一种特殊的控制依赖,且它只发生在对应的同步语句之间。对于任务间数据依赖,不同研究者冠以3面向u m l 模型的依赖性分析及应f l i _ | 的研究不同的概念,例如,c 体p 馏,【8 1 和2 砌口9 】均称之为通信依赖,6 协m ,c 聊,d 则称之为共享依赖,还有的称之为干扰依赖( 而f b 咖m c ed e p e n d e n c e ) 。进行并发程序的依赖性分析时,人们也借助于并发程序的图形化表示,然后在此基础上进行分析。目前,人们已经提出多种并发程序表示方法,如最常用的尸e f r f 网、肌蚱r m 和幽虎上提出的追踪流图”1 g( 丁砌c pf f o w g 忡矗) i l l j 、口船6 8 俘rj 等提出的任务控制流图姗( 肼粥c o n n d l f l o w g r a p h ) 【1 2 1 、陈振强博士等提出的并发控制流图o c f g( c o ”c 聊p c o m r o ld 印e n d e n c eg r 印h ) 【1 3 l 等。在依赖关系的图形化表示方面,不同的研究者采用不同的依赖图,如p 馏l ,采用任务依赖网咒w( 而曲d e d e n d e n c e n e t ) 例、g d 删卅f d 采用并发程序依赖图c p d g( c 锄伽卵月,p m g 豫m d e p e n d e n c e g r a p h ) 、劢册。,采用多线程依赖图 g( 胁f f f 旃陀础dd e p e l l d e n c e g r a p h ) f 9 l 等。1 2 3 面向对象程序的依赖性分析目前,大部分现有的面向对象程序依赖性分析方法是在顺序程序依赖性分析方法的基础上进行面向对象扩充而得来的。如,上矾,p ”l 和觑7 卅o 肘m 提出了类依赖图c d g ( c f 鲫d 印明如肿pg ,印厅) 的概念来表示类的继承、数据成员和多态【1 4 j ;髓触册州册) ,a 等人通过对传统的系统依赖图s d g 进行面向对象扩充获得了面向对象程序的依赖图o p d g( 0 6 加c f 一册p 玎f 耐p r o g r 锄d e p e n d e n c e g r 印h ) ;李必信博士通过把传统的系统依赖图和类依赖子图、类层次子图、虚函数调用图相结合而构成了面向对象系统依赖图d 嬲d g ( 0 6 如“一西耙川耐s y s t e m d e p e n d e n c e g m p h ) i ”j 。尽管面向对象程序依赖性分析技术的研究有了许多的研究成果,但同样还存在一些问题没有解决,这是因为现有面向对象程序依赖性分析技术基本上都是在传统的非面向对象程序依赖性分析技术基础上进行了一些面向对象扩充得来的,这就会导致存在如下几个方面的问题f l6 】:1 )每个扩充者根据自己语言的特性以及自己的需要对之进行了扩充,扩充以后的技术适应性较差,适应于一种面向对象程序的依赖性分析技术并不完全适应另一种面向对象程序,有时需要进一步扩充;2 )利用非面向对象的表示方法表示面向对象的系统,其本身就存在着语义上的差别,势必造成表示的不准确和复杂。目前,针对变量之间和语句之问的依赖性分析已经取得了比较系统的成果,趋于成熟。为此,人们已经开始有意识地拓宽了依赖性分析的领域,并且已经取得了一些成果。如,黄文伟等对c 程序文件间依赖性进行了分析,引入了文件间的预处理依赖、函数依赖和全局变量依赖等概念【l j 。预处理依赖分为包含依赖和条件编译依赖。函数依赖分为调用依赖和参数传递依赖。函数调用依赖是指函数调用点依赖于函数的定义点,而并不是指依赖于函数41 导论的声明点。参数传递依赖是指调用点所在函数的部分变量的值依赖于被调函数的实现,即被调函数执行后该函数中的部分变量的值会发生改变。李建平等对企业级组件间依赖性进行了描述,定义了集成组件与平台之间的依赖关系、集成组件与集成子组件之间的依赖关系、同级集成组件之间的依赖关系【3 】o 针对统一建模语言硼犯( 【懈, 耐胁如疗怄叩鲥昭p ) 模型的依赖性分析的研究才刚刚起步1 4 j 。1 2 4 切讧l 类图的依赖性分析目前,少数研究者对儿类图的依赖性进行了分析。周毓明博士等人用不同的依赖性权值来刻划类间不同类型的关系对类间依赖性的影响程度f 1 7 ,1 8 l 。我们也对矾纪类图的依赖性进行了分析【19 j :一种未深入细化类的成分,即属性和操作,而是直接把传统的数据依赖和控制依赖转化为类与类间的单向关联、双向关联、聚合、组合、依赖、泛化等依赖关系;另一种结合通信图的场景路径对类的成分,即属性和操作,进行了细化分析,更好地明确了类图中的依赖关系,定义了一组依赖关系,包括:操作控制依赖予操作、操作数据依赖于属性、属性数据依赖于操作、属性与操作相互数据依赖、类内操作数据依赖于操作、类间操作数据依赖于操作、属性数据依赖于类、泛化关系中类数据依赖于类、泛化关系中属性数据依赖于属性、泛化关系中操作数据依赖于操作等。1 2 5 切垤l 状态机图的依赖性分析目前,少数研究者对状态机模型的依赖性进行了分析。助旭,b 等人对删( 晟招,眈df i l l i t es 协t em a c h i l l e ) 的依赖性分析是以迁移为单元进行的,忽略了删中的重要组成部分状态1 2 0 】。虽然矾纪状态机图与职譬m 十分相似,但毕竟还是有区别。眦状态机图是经典强7 陀,s t a t e c h a n s的一种面向对象变体1 2 ”。经典胁阳z s t a t e c h a n s 是在状态迁移图s 仞( 鼢把t 砌s i 廿o n d i a 耵锄s ) 的基础上增加了层次( 肺p 阳,c 蛔,s 饥:i c 仙旧) 、并发( c d n c 舯阴纠) 等机制,是一种强有力的、灵活的状态图。胁胛,s 诅t e c h a n s 最早是针对结构化设计进行建模,描述模块间执行关系,而m 犯状态机图是一种面向对象建模,描述对象的行为。它们不仅在语义上有区别,如碉钇状态机图中的迁移优先级和胁陀,s 诅t e c h a r t s 不同,而且它们在语法上也有差别,例如m 犯状态机图增加了伪状态( 如p 甜d 撕 疵s ) 等机制。文献 4 】对硼钇状态机图的依赖性分析则借助了扩展层次自动机e 乜4( 肪p ,娩d 所p m m h 耙甜4 啪m 洲。聆) 1 2 2 l 来结构化表示矾犯状态机图中的依赖关系,却忽略了映射过程中信息丢失的情形。由于e 而h 更复杂,它不仅有并发、通信等机制,还具有层次结构,迁移和状态的语法成分比普通程序语5面向u m l 模型的依赖性分析及应用的研究言的一条语句更为复杂,并且执行语义需要选择最大无冲突迁移集等等,因此文献【4 】在分析e e 纠中存在的层次、并发和事件同步等特征时定义了顺序数据依赖、并发数据依赖、同步依赖、迁移控制依赖、精化数据依赖和精化控制依赖等一组依赖关系。文献 2 0 】和文献 4 】定义的数据依赖不能解决一个元素定义或修改多个变量的情形。我们也对矾记状态机图进行了依赖性分析,把跚祝状态机图分为三种情形来讨论,根据硼犯状态机图中存在的基本状态、复合状态和同步状态等特征,定义一组基于u 见状态机图状态和迁移间的依赖关系。1 2 6 依赖性分析在切片和度量上的应用依赖性分析在软件测试、排错、维护、编译优化、并行性分析以及软件可靠性与安全性分析等方面有着广泛的应用。例如,在编译优化中,利用依赖性分析技术可以进行常表达式优化、公共子表达式优化、代码移动、强度削减和寄存器分配等。这几种方法只是基本的优化方法,到目前为止,利用依赖性分析进行编译优化的方法已经有很大的发展。下面着重介绍一下依赖性分析在切片和度量上的应用。1 ) 程序切片程序切片是由耽捃p ,m 提出的一种重要的程序分析和理解的方法【2 3 1 ,用于从源程序p 中抽取对程序中特定点5 上的特定变量矿有影响的语句和控制条件,组成新的程序( 称作切片) ,然后通过分析切片来分析源程序的行为,其中c s 矿) 称作切片标准。程序切片技术的研究、发展和应用已经经历了2 0多年,众多学者对切片技术作过专门的研究,并且取得了一些具有理论和应用价值的成果,提出了过程内切片刎和过程间切片f 2 5 3 6 1 、静态切片【2 3 j 2 7 】和动态切片阱o o 】、前向切片【3 l ,3 2 】和后向切片【3 、传统切片和广义切片p 引、面向对象程序切片h ,6 ,4 9 捌和非面向对象程序切片1 5 3 l 、顺序程序切片口刀和并发程序切片1 3 1 、条件切片1 5 4 】、砍片5 5 ,5 6 1 、分解切片【5 7 l 、单子语义切片、无定型切片 5 9 鼬】等切片方法,使得它在程序分析1 6 ”、理解限6 2 】、优化1 6 3 1 、调试衅,6 卯、测试【1 6 ,3 7 ,6 6 1 、度量6 7 7 ”、复用吲、模型检查【4 3 1 、软件安全【7 3 】、软件维护和软件再工程 5 7 4 ,7 5 1 中得到了广泛应用,而且已经开发了一些实用的程序切片工具7 6 。8 3 1 ,如阡诂c o s j j l 大学开发的支持c 程序的切片系绀7 扪、月a 肿时m 等开发的程序分析工具彳胁,0 比嘲、爿嬲船伽n 开发的静态程序切片工具印r 妇【8 4 j 、南京航空航天大学开发的一个支持c 程序的切片系统【8 5 j 、南京大学开发的一个支持j 咖口程序的切片系统( 成果名称:软件工程中的形式化方法和面向对象技术,编号:0 2 0 1 0 6 2 1 0 0 ) 和东南大学开发的一个支持4 妇程序切片的系统原型( 成果名称:爿如程序分析与理解系统爿删己召,编号:9 8 0 0 0 6 1 9 ) 等,因而也受到了广大程序研究与开发人员的高度重视。常用的计算程序切片的方法主要可分为两种:一种是耽捃盯m 提出的基61 导论于数据流分析的方法【2 3 】。另一种是凡,7 w 拧据j 等和胁m 妇s 等 2 6 】引入的基于依赖性分析的方法。凡m ”把j 等人引入基于程序依赖图的图形可达性算法来计算过程内后向切片【吐“j 。胁m 汜s 等引入了前向切片概念及其算法和过程间切片概念以及基于系统依赖图的两阶段图形可达性算法【2 司:第一步,算法沿着除p 口m 棚e f e ,一d 讲以外的所有的边后向遍历,标记那些在系统依赖图中到达的节点;第二步,算法从第一步已经标记的所有节点出发沿着除引用边和p n m m 口胞卜扼边以外的所有边后向遍历,标记那些在系统依赖图中到达的节点。切片的结果就是在第一步和第二步过程中标记的系统依赖图的节点的并。基于依赖性分析的程序切片方法已被大家广泛接受【】3 ,1 6 ,19 ,2 6 2 7 4 5 ,4 6 ,4 8 t6 3 1 。目前而言,针对u 舰模型的切片方法尚不多见,有我们在文献 1 9 冲提出的针对m 犯类图的切片方法;肠旭f b 等人针对e 只s m 模型提出的切片方法1 2 0 】;董威博士等人针对e h 模型提出的切片方法【4 l 等。需要注意的是,随着人们对切片技术的进一步研究,切片的概念不断延伸,切片应用范围也在不断扩大,现在切片已经不仅仅是对程序源代码的分析,而且已经应用到形式规约、软件体系结构、软件设计等方面。上述针对明钇模型的切片是属于广义程序切片的范畴 3 8 帅】,它们之间的关系可以用图1 1 来表示。2 ) 度量图1 1 广义程序切片分类图软件度量学的概念最初是r “6 p y 尼,和衄i m p 黼r d 于1 9 6 8 年首次提出的,后在七十年代发展起来,八、九十年代逐渐成熟起来。研究者开展了许多工作,如耽括盯m 在1 9 8 4 年提出的基于程序切片的覆盖度、重叠度、紧密度、并行度、最小覆盖度和最大覆盖度等软件度量概念【2 3 】;0 上的基于程序切片的内聚性度量【储,8 ”;李必信博士则在数据切片和类内切片的基础上对出w 程序中类( 对象) 耦合性和内聚性进行了研究【16 】;陈振强博士认为类的内聚度应该是类的属性与属性、方法与属性以及方法与方法这3 个方面度量值的平均值l l 引,定义属性间的内聚度为属性对类中其他属性的依赖程度7面向u m l 模型的依赖性分析及应用的研究的平均值,定义方法间的内聚度度量为方法对类中其他方法的依赖程度的平均值,而方法与属性间的内聚度定义则借助了已有的、具有优良特性的内聚性度量与方法中引用的和其他方法有关的属性和所引用全部属性的比例的乘积的平均值。目前,针对啪锟类图的复杂性度量方法尚不多见,有 妇m e s f m 悼叫、g 朋p m m 【8 9 9 ”、加p 嗍、周毓明博士【1 7 ,1 8 1 等人分别提出了各自的度量方法。为便于讨论,我们分别称其为胁 厅口s f 度量方法、g 8 珂p r o 度量方法、如度量方法、周度量方法。( 1 ) 妣矗甜f 度量方法 细c 甜j m 用类的总数( 0 h 1 ) 、继承层次的总数( o h 2 ) 、所有类的平均加权职责数( 0 省3 ) 、所有类的平均加权类职责数的标准差( 0 爿4 ) 、所有类的平均直接依赖数( 0 纠5 ) 、所有类的平均直接依赖数的标准差( 0 埘6 ) 、类图中继承的职责数与总的职责数的百分比( o 7 ) 等7 个指标分别从不同的角度来度量类图的复杂性,朋勿曲嚣f m 只考虑类之间的继承和类之间的依赖,而没有具体区分关联、聚合、依赖和组合等关系。 如r 砌船f 度量方法是绝对复杂性度量( 0 嘣7 除外) 。( 2 ) g p n 8 r d 度量方法为了克服 如r 曲e j 渡量方法的不足,珂p r om 提出了1 4 个指标,不仅用类的数目( c ) 、属性的数目( 删) 、方法的数目( m ) 、所有类的最大继承深度( 彻x d 阿) 和所有类的最大聚合层数( m 就胁嘲) ;并将类之间的依赖进一步区分为关联、聚合、依赖和泛化四种关系,分别用关联关系的数目( 翻骝o c ) 、聚合关系的数目( “g g ) 、依赖关系的数目( d 印)和泛化关系的数目( g p 胛) 来进行度量,以及前三者各自与c 的比值,即埘船d c 比、m g g v 阳和d 印阳;进一步考察了聚合的层数( m 昭h )和泛化的层数( g e ,胛) 。函珂p r d 度量方法是相对复杂性度量和绝对复杂性度量的结合。( 3 ) 如度量方法与m 加厅即f 度量方法和g 阴e r o 度量方法类似,如p 采用一组指标来评价类图的复杂性,即类的数目( 删c ) 、方法的数目( 孙,0 ) 、属性的数目( 删) 、角色的数目( 刀忪) 、参数的数目( 刀归) 、继承的数目( 翮) 、使用关系的数目( 【限) 和关联的数目( 办蹦) 等指标来度量明钇类图的复杂性。( 4 ) 周度量方法周毓明博士的基于依赖性分析的熵距离的矾犯类图结构复杂性度量方法是建立在信息论和概率论的基础之上的。首先依据类、接口以及它们之间的诸如泛化、关联、组合和聚合等复杂关系将m 私类图转换为带权类依赖图,然后在权值矩阵的基础上利用互信息和熵距离定义狲钇类图的结构复杂性。周度量方法是绝对复杂性度量。81 导论虽然尬砌p s fm 【8 引、g b 行p 阳m f 8 9 母引、如p i 州、周毓明博士1 8 1 等人分别提出了各自针对繇纪拜翳鲥刁擎划型二萋矍缮鬻萋蛋衾赞堡荪鞭霎爵燮狐;计i i萋崾鼍爱啦翦篱罂嘤任珏有基呈替笸泰歪则;蒜臀掣锆挥砻善套巨蜂挈五犁孕嚷谢蜀竺鬻鬟旨肇g 蓥二磊g 芍会警猫羼譬受爱眦劁魁毳穗箍髫委:黪一览嚣藩鹱一舄丝姜需萋萋鬈3v ( q ,c :,q ) d e 只。( c 。,c 2 ) d e ( c :,q ) j d e ( c - ,q )性质2 2 4 c 1 ,q ,c 3 ) d 皿0 e ( c 1 ,c :) d e 名一( c z ,c ,) j z 地名一( q ,q )2 2 3 组合关系组合是聚合的一种特殊情况。在组合中,成员对象的生命周期取决于聚合的生命周期,聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和结构,换句话说,成员对象不能脱离聚合独自存在,因此组合有时又被称为强聚合。定义2 2 5 设q 和c :是硼让类图d 中的两个类,如果c ,和c 2 间存在着组合关系,则称c 。和c :间互相组合依赖于对方,记作d e 已,。岛,c :) 。根据定义2 2 5 ,可得性质2 2 5 。性质2 2 5v ( q ,巳,巳) d e e 一6 ( q ,c 2 ) 上) 正屹舻6 ( 乞,c 3 ) = ,d 点屹肛6 ( c j ,c 3 )2 2 4 泛化关系泛化关系描述了父类和子类在分类学上的关系,每个子类的实例也是父类的一个间接实例,因此子类继承了父类的一些特征,共享了行为上相关的,父类的结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准商品房按揭抵押贷款合同范本
- 新能源汽车智能座舱2025年交互设计在车载智能娱乐系统中的应用报告
- 2025建筑工程监理合同
- 2025年智能语音情感识别在智能语音教育辅导系统中的创新应用
- 2025年(劳动合同)科技公司劳动合同简易模板
- 2025年广播编导试题及答案
- 城市综合体装修工程物业管理及商业运营协议
- 离婚协议书中关于共同财产分割补充协议合同
- 离婚协议书附带房产过户及租金分配协议
- 离婚谈判实战秘籍三大技巧专业调解合同
- 输血相容性检测室内质量控制及流程
- 医院质控指标管理制度
- 2025年全国中小学教师职称评审考试试卷及答案
- 《健身力量训练》课件
- 赔偿保密协议书范本
- 隔物灸的作用与护理
- 云服务器故障应急预案
- 汉服妆造培训课件
- 静脉输液安全及风险防控
- 电能质量控制与安全标准手册
- 设计总监升职述职报告
评论
0/150
提交评论