没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记187(2007)145-159www.elsevier.com/locate/entcs面向对象的结构细化– A Graph TransformationalXiaojian Liu<$,Zhiming LiuXiaojian Liu,LiangZhaoXi西北工业大学计算机学院中国澳门特别行政区联合国大学软件所电子邮件:liuxiaojian@nwpu.edu.cn,{z.liu,liang}@ iist.unu.edu摘要在UML中,对象的一般结构,它们的属性和关系被建模为类图,类图的实例被定义为对象图。系统的类图确定了对象的一般属性以及对象在实现用例时如何协作。在本文中,我们定义类图和它们的对象图为有向标号图,并在图论方法中研究对象结构中的我们定义了结构修饰的一般概念。结构细化是从一个图到另一个图的转换,它保留了提供服务的能力,也就是说,得到的类图应该至少能够提供我们给出了一个小的结构加细规则集,证明了该规则集对于一类结构加细是合理的和完备的。关键词:对象系统,类图,对象图,标记图,图变换,精化1介绍一个目标程序可以用Cdecls·Main的形式表示,其中类声明部分Cdecls声明了一个类序列及其属性、方法和继承关系;Main声明了一个主类和主方法[5]。主类声明全局变量作为其属性,这些变量的类型要么是基本的内置数据类型,要么是在Cdecls中声明的类。main方法通过调用声明部分中的公共类的一些公共方法来实现应用程序。类声明部分可以用UML类图来描述[6]。这样的类图还包含方法及其主体。否则,就需要序列图和状态图。不同的分类是对CDeclsi的分解,i=1,2,m可以支持一个分类。 总之,如果对于M ain,Cdecls2·M ain具有“a t lea s t a s wel l a s“(或定义)Cd e c l s 1 · M a in,则Cd e c l s 2是Cde c l s 1的结构定义[ 5 ]。 我们只关心功能的正确性。1571-0661 © 2007由Elsevier B. V.出版,CC BY-NC-ND许可下开放获取。doi:10.1016/j.entcs.2006.08.049146X. Liu等人理论计算机科学电子笔记187(2007)1451结构细化对于面向对象设计的可重用性、可重用性和内聚性是非常重要的。在本文中,我们提出了一个演算的结构细化使用图变换。我们将类声明部分定义为有向标记图,称为类图。节点用类或基本数据类型的名称标记,例如Int、Char和String,边标记为用属性名(也表示UML关联)或符号Q表示直接继承关系。给定一个类图和一组在主类中声明的公共变量,我们将系统状态定义为一个对象图,一个具有根节点ε的有向标记图。根表示主类1的实例的引用。任何与根不同的节点都由一个值标记,该值是一个对(v,T),其中v要么是对象引用,如果T是类,要么是T的元素。对于每个公共变量x:T,从根到类型为T的节点都有一条标记为x的边。如果T1是类图中的一条边,且 a是类图中从T1到T2的一条边,则将( v1 , T1 )到( v2, T2) 的 一 条边表示为(v2,T2).因此,类图CG为每个公共变量集定义了一组对象图从给定的对象图(系统状态)OG执行CG下定义的命令c将把OG改变为另一个对象图OGJ。然后,对于从CG到CG1的结构细化ρ,我们可以导出(i) 从CG的对象图OG到CG的对象图OG1的变换ρ0,CG1,以及(ii) 从CG定义的命令到CG1定义的命令的变换ρc,使得(iii) 图1中的图表是上下班的。我们将证明一个小的结构细化规则集,它对于结构细化的一个限制性定义是完备的。我CGiCGOGOG1COG'OG1'Fig. 1.结构细化有大量关于面向对象程序的形式语义的研究,例如[3,7,10,4,5]。有一种普遍的感觉,虽然很少在文献中陈述,那就是一个人不理解(至少感觉非常困难)另一个人定义的面向对象程序的语义。除了一类有限的静态属性,不同的语义定义似乎对面向对象程序的分析和验证无效对面向对象的规范和设计的细化的验证甚至更难。本文提出的基于类图和对象图的操作语义(及其指称语义)有望改善这种情况。1一个对象系统只有一个主类的实例X. Liu等人理论计算机科学电子笔记187(2007)145147文[7]给出了基于谓词变换的类结构的代数演算.[5]在指称语义模型中研究了结构细化。本文中的结构细化规则与rCOS中的所有规则一致,除了那些允许删除冗余类和属性以及用于压缩-ing属性。然而,本文提出的图演算的目的是为了提高对结构细化的理解,并为将来开发对图变换的工具支持。工作[9,12]处理类和接口的细化。然而,重点是类结构中各个类的可替代性然而,我们的工作是从整体上研究类模型的细化,并在系统开发的不同阶段支持结构文[8]提出了类图之间等价的概念在那里,概念是根据对象的属性定义的,而不是功能和对象行为。因此,它不涉及功能细化。对象图的使用受到[1]中指针结构的图表示法的限制,而使用图的路径的思想来自指针和带指针的对象的迹模型[2]。第2节展示了如何将类声明节定义为有向标记图。在第3节中,我们定义了类图的对象图来表示系统状态。我们还提出了一个非正式的,但精确的,显然形式化的,基于类图和对象图的编程命令的操作语义。在第4节中,我们定义了类图之间的结构修饰及其在对象图之间的派生关系。第五节建立了一组类图的精化规则,并证明了它们是可靠的精化。我们还表明,这套规则是完整的结构细化的限制性概念。2类图类声明部分可以表示为有向和有标签的图。我们使用数据类型和类的名称来标记节点,使用属性的名称和继承的注释来标记边。为此,我们假设类名的无限集合CN,原始数据类型名称的无限集合T,属性名称的无限集合A和单个名称Q来注释继承关系。让N 是CN中类型的并集 和T.定义2.1类图是一个有向标号图,其中• NN:表示类型的节点集,包括类和数据类型• 一组属性名称• E<$N×(A<${Q})×N:是图的边。一条边(C,a,D)∈E,其中a∈A表示类C具有D类型的属性a,并且(C,Q,D)∈E表示C是D的直接子类。我们用≤表示直子类148X. Liu等人理论计算机科学电子笔记187(2007)145defdef关系Q成立,称D为C的超类,称C为D的子类,如果C≤D成立。然而,并非所有如上定义的分析类图都对应于格式良好的类声明。定义2.2一个类图Γ=<$N,A,E<$是良构的,如果它满足以下条件:(i) 数据类型是图的叶子:如果(C,a,D)∈E,则C∈ T(ii) 继承关系只在类之间定义:如果(C,Q,D),则C,D∈ CN.(iii) 继承关系需要满足以下条件(a) 每个类最多有一个Q边,也就是说我们假设没有多重继承。(b) 没有Q边形成的环。(c) 超类的属性不能在子类中重新声明:如果C1≤C,C1C和(C,a,D)∈ E则对任意a和D和C2,(C1,a,C2)/∈ E.如果没有混淆,我们简单地称一个格式良好的类图为类图请注意,类图有三组不相交的边。• data attributes:是那些边(C,x,T),使得T是一个基本类型。• 关系属性:是那些边(C,a,D),使得D是一个类。我们也可以称a为C类和D类之间的关联。• inheritance:是图中所有C和D的边(C,Q,D)我们不考虑关联的多重性,因为这只会在对象图中引入多对象(容器对象)。我们也不区分聚合和一般关联。对于Γ的类节点C,我们定义以下两个集合。• attr(C)={a∈A| <$D∈N·(C,a,D)∈E}表示从C,即在C类中直接定义的属性的集合。• Attr(C)={a| <$D·C≤D<$a∈attr(D)}是从C及其所有的超类。对于一个简单的语法,我们可以使用0 0。a0. · ··ak−1to o denot e apath[(v0,a0,v1),(v1,a1,v2),· · ·,(vk−1 ,ak−1,vk )]; andndusedest(v0. a0. ·· ·ak−1)todenotet e di-nationvkofthe path. 并且对于w p1=C。αandp2=D. βsuchatD=dest(C. α),则连接比例p1。p1和p2的p2是C. α。β。只有属性决定对象图中的导航路径然而,继承关系定义了一个类从其他类继承的属性 Asequenc e a={(vi,ai,vi+1)|vi,vi+1∈N,ai∈A,i=0, . .... . . 你 好 。 ,k}的“e d g e s“称为类图Γ= N,A,E的一条维路,如果对所有i = 0,. .. ,k(ui,ai,ui+1)∈E)注意,对于所有i=0,. . . ,k,ai∈Attr(vi)andndVi+1是针对I/O的类型化描述的一个子类型。X. Liu等人理论计算机科学电子笔记187(2007)145149反式amnt:Int账户人例2.3图2的左边部分是一个分析类图,它表示图2右边部分所示的UML类图。人acct客人停留Resv交易保留房间Int交易图二. 例3对象图和命令的执行类图声明了一个类型族,它本身可以被理解为一个对于一类图Γ,我们用NΓ表示它的结点,EΓ表示它的边,AΓ表示它的属性名.一般来说,我们将类型T的值v表示为对(r,T),其中如果T是原始类型,则r是T的元素,否则r是引用。我们假设引用的无限集合REF,包括一个特殊值null。对于一个类图,我们使用VΓ来表示在Γ中声明的所有类型的值的集合。3.1作为程序状态对象图是针对类图Γ和给定的全局变量x1:T1,. ......、 xn:Tn使得所有类型Ti都是类图的元素。假设变量用于主方法。定义3.1设Γ是一个类图,X是一组全局变量声明。具有变量X的对象图是一个有根、有向和标号的图,其中,• L=X<$AΓ是将用于标记边的名称的集合• N中的节点是根节点ε或V'中的元素,其表示具有其类型的数据值或引用。• EN×L×N是的边。• 根节点ε没有引入边,其他节点必须至少有一条引入边。• 对于N中的每个节点v,至少有一条从根开始的路径p,dest(p)=v。如果对Γ中的类的每个属性都赋一个具有正确类型的值,则Γ的对象图是完全的和正确类型的。类型系统由类图的导航路径定义。acct客人账户Resv保持amnt反式雷斯沃德没有保留房间编号:Int150X. Liu等人理论计算机科学电子笔记187(2007)145定义3.2如果下列条件成立,则类图Γ的对象图Γ是关于Γ的完全且正确类型化的(i) 节点的类型正确性如果(r,C)∈N,则C必是Γ中的节点。(ii) 属性的类型正确性对于任意边e∈E(a) 若e=(ε,x,(r2,D)),其中x:T∈X,则D≤T,(b) 如果e=((r1,C),a,(r2,D)),则(C,a,D)是Γ的导航路径。(iii) 完备性:对于每个节点v∈N,(a) 如果v=ε,则对于每个x:T∈X,它有且只有一条出边,(b) 否则,若v=(r,T),则存在边((r,T),a,(r1,T1)),且T是Γ中的类名,r/=null且a∈Attr(T).我们用MX(Γ)来表示变量X的所有CCT对象图,当没有混淆时,我们简单地称CCT对象图为对象图,并省略下标X。图3是图2的类图的对象图的示例,其中X={y1:房间,y2:客人,y3:房间}是全局最优的。:预订图三. 对象图对于类图Γ的边(C,a,D),dtype(C. a)(或在没有混淆时简称为dtype(a))表示类型D,称为Γ中a的声明类型。对于一条边((r1 , C),a,(r2,D1)),在该边集合中,y∈(r1. a)指定对象D1,计算对象图D中对象r 1的属性a的当前类型。此外,type(r,C)表示对象图中节点(r,C)的当前类型C。定义3.2确保对象图中的每个对象节点表示类图中声明的类的对象,并且每个属性的当前类型是其在类图中声明的类型的子类型。根对象表示主类的实例,可以通过不同的导航路径访问 因此,我们可以使用到节点的所有路径的集合来表示节点想要建模的对象。在图3中,对于一个实施例,y1,y2. y2. stayys}reresentth e:Roomintance,andde. y2. acc t. 值为1000。3.2执行命令类图的对象图可以看作是对象系统的状态。目标程序的执行是主方法命令从初始状态到最终状态的执行执行首先调用类图Γ中的类的对象o的方法o.m(x;y){c},其中x是输入参数,y1:房间停留2003年:嘉宾没有acctResv:账户0810阿姆恩特反式1000:交易X. Liu等人理论计算机科学电子笔记187(2007)145151一一一BOSBy是输出参数,c是body命令。这个对象o是一个初始状态为0的节点,x也是一个0的节点,尽管它可以是一个数据值。o.m(x;y)的执行根据方法m()的主体c的语义改变了对象图c0。一个语法和一个形式指称语义学一个OO语言的定义是在rCOS[5]中。 然而,在这里我们给它一个非正式的业务解释:Otv a l(e)a:=e(一)Otv a l(e)O一Sa. b:= eOa:=C. new()ttv a l(e)(二)不tv a l(e)(三)见图4。对象图(i) 如果c是一个简单的赋值a:=e,其中a是o的一个属性,那么执行过程会将x0中的边(o,a,t)更改为边(o,a,val(e)),其中val(e)是表达式e的值,它可以是一个对象或数据值。如图4(1)所示。(ii) 如果c是一个复杂赋值a.b:=e,其中a是类类型o的属性,b是o. a的属性,那么执行将路径(o,a.b,t)更改为路径(o,a.b,val(e)),如图4(2)所示。一般属性赋值a。b1. · ··bk:=eisperformedbyyinduction.(iii) 如果c是一个对象创建a:=C.new(),其中a是o的属性,C是r的类节点和dtype(a)的子类,则执行过程会将x0中的边(o,a,t)更改为一个新创建的根图,其中(r,C)作为根,C的属性的初始值(我们在这里希望忽略)作为节点。如图4(3)所示。(iv) 命令组合的意义可以归纳地定义。如果我们想考虑类型转换,我们只需要将节点从一对扩展为一个三元组(r,C,D)来表示引用,当前类型和转换类型。请注意,执行命令可能会导致对象图中的某个对象在这种情况下,对象的节点将从对象图中删除,就像垃圾收集一样。对于Γ的一个对象图θ0和其中的一个对象节点o,由对定义在o的类型中的O一(r,C)a1 an...init(a1)init(an)一152X. Liu等人理论计算机科学电子笔记187(2007)145方法m(){ c }执行o.m()所引起的所有可能的对象图的集合由y[[o. m()]]Γ(ω0).X. Liu等人理论计算机科学电子笔记187(2007)145153我们相信很容易证明上述操作语义与[5]中定义的rCOS语义一致,尽管我们还没有做证明。我们也允许非确定性的选择和指定命令。然后,方法的执行将对象图映射到一组对象图。因此,命令细化和等价可以为类的方法定义定义3.3[方法改进]设(i) Γ是一个类图,(ii) X是类型在Γ中的变量的集合,(iii) m(u:T1;v:T2){c1}和dm(u:T1;v:T2){c2}是在一个空间C中对某个x:C∈ X所定义的两种方法。我们称m(u: T1;v: T2 ){c2}为m(u:T1; v:T2){c1}的一个特例 , 由m(u: T1;v: T2){c1}±m(u:T1;v:T2){c2}定义,如果任意一个函数都满足r的定义,且任意一个函数都满足m(u)≤T1,则定义[[x. m(){c2}]]Γ(λ)是f[[x. m(){c1}]]r(n),其中x是对象图n中x所指向的对象。然而,为了支持逐步细化的设计,我们必须能够改变类图的结构,尽管公共类名没有改变。定义3.4设PC是一组类名,Γ1和Γ2是两个类图,都包含PC作为它们的一些节点。Γ2是Γ1的结构精化,记作Γ1± Γ2,如果对任意C∈ PC和变量x:C,存在一个映射ρo,M(r1){x:C}到M(r2){x:C}是任意m(u:T1;v:T2){c1}可定界于C类的问题对于Γ1,我们在Γ2的类C中定义了一个核元素hodm(u:T1;v:T2){c2},[[x. m(){c2}]]Γ2(ρo(ω))<$ρo([[x. m(){c1}]]Γ1(π))4结构转型4.1结构转型我们现在证明,某些细化可以通过某些类图变换来实现。定义4.1设Γ1和Γ2是类图,f是Γ 1的类节点的子集。从Γ1到Γ2的映射ρ是f-标架变换,记为ρ[f],如果下列条件成立(i) 限制ρ|ρ的N1到Γ1的节点N1映射框架中的每个类名f对自身的映射,即对每个C∈f,ρ(C)=C∈N2.(ii) 限制ρ|E1到Γ1的边E1将每个关系边或继承边(C,a,D)∈E1映射到从ρ开始的非空路径|N1(C)至ρ|N1(D)在Γ2中;并将每个数据属性(C,a,T)映射到从ρ开始的Γ 2的非空路径集|N1(C),其目的地是T中的数据类型。我们分解限制ρ|E1分为两个限制ρ|r和ρ|d分别对应于关系(包括继承)边和数据属性。154X. Liu等人理论计算机科学电子笔记187(2007)145一XC DIntinit(D.x)=7init(F.x1)=2,init(G.x2)=5图五.结构转换显然,并非所有上面定义的框架结构变换都是结构精化。在下文中,我们给出了这种变换是结构细化的若干充分条件。命题4.2从Γ1到Γ2的框架变换ρ[f]是结构精化,如果它满足以下性质:(i) 如果(C,Q,D)是继承边,则ρ|r(C,Q,D)是一条只含固有边的路。(ii) 如果(C,a,D)是一条关系边,则路径ρ|r(C,a,D)至少包含一个关系属性。(iii) 对于在两个代数(C1,a1,D1)和(C2,a2,D2)中的任意一个不等式,ρ|r(C1,a1,D1)不是ρ的子集|r(C2,a2,D2).(iv) 对于给定的(C1 , a1 , T1 )和( C2 , a2 , T2),ρ中的apapp1|d(C1 , a1 , T1 )和dapathp2在ρ中|d(C2 ,a2,T2),除非C1=C2,a1=a2且dp1=p2(显然T1也=T2),否则p1不是p2的子集.(v) F或R一个一个edge(C,a,T),letρ|d(C,a,T) ={C1. β1。a1, . .... . . 你好 。 、C1. βn。an}suchdest(C1. βi. ai) =Ti,对于1≤i≤n,存在T1×.的随机解. . ×Tn→ T,使得C.a的初始值可由以下各属性的初始值计算:ini t(C. a) =g(ini)t(D1. a1),. . . ,ini t(Dn. an)),其中Di=dest(C1. βi)。从Γ1到Γ2的结构变换实际上定义了Γ 1中的类、它们的属性和关联由Γ2中的那些实现。1中的单个关系属性(边)可以通过路径实现,而数据属性可以是1 2中的路径集合。这些由条件(ii)-(v)捕获。该命题的有效性将在下一节中分两步确定:• 合理性:证明一小部分规则,这些规则是结构改进。• 完备性:证明任何满足命题4.2中条件的结构变换都可以通过顺序应用所提出的精化规则来获得。例4.3图5说明了一个结构变换ρ[f],其中f={C},ρ|N1(C) =C,ρ|N1(D) =F,ρ|r(C,a,D) =C. a. Q,ρ|d(D,x,Int) ={F. x1,F. B. x2},并且对整数的ddition操作保留属性的初始值:init(D.x)=init(F.x1)+init(G.x2)。BF Gx1x2的yC E国际X. Liu等人理论计算机科学电子笔记187(2007)1451551114.2对象图给定变量X,给出了类图Γ1到类图的结构变换ρΓ2确定MX(Γ1)与MX(Γ2)之间的导出关系ρ 0。定义4.4设ρ是从类图Γ1到类图Γ2的结构变换,其框架{C1,. ..,满足命题4.2中的条件,并且X={x1:C1,. ......、x n:C n}是变量。图1和图2是具有变量X的对象图,分别为r2ρ的导出结构关系,记为ρo(τ1,τ2),是对象图M(τ1)和M(τ2)之间的关系,使得以下条件成立(i) 对于图1中的每条边e=((r1,C),a,(r2,D))使得a是关系属性,在图2中存在路径ρo(e)=((RJ,CJ),α,(RJ,DJ))使得1 2(a) CJ= ρ|N(C),DJ= ρ|N(D),以及(b) (CJ,α,DJ)= ρ|r(C,a,D)\Q是从ρ得到的路径|r(C,a,D)在重新移动继承边之后。(ii) 对于图1中的每个数据属性边e=((r,C),a,(v,T)),存在一组路径ρo(e) ={((rJ, C J),β1. a1,(v1,T1)), . . . ,((RJ, CJ),βn. an,(vn,Tn))}suchthatv=g(v1, . . . ,vn),CJ=ρ|N (C)andρ|d(C,a,T) ={C,J. γi. ai},其中对于1≤i≤n,g是对应于Γ 1中(C,a,T)的本原运算。5结构细化规则我们在图6中给出了一组规则,它们将类图Γ1= A1,N1,E1变换为另一个类图Γ2=A2, N2, E2。请注意,每个规则都有一个框架,表示转换前后未更改的类名。为每个规则引入前置条件的目的是保证变换后的类图是良构的。在这里,我们用C来表示在Γ1中声明的类名集合。5.1健全性很容易证明每个规则定义了类图上的一个结构变换,满足命题4.2的条件。因此,每个规则R确定相应类图的对象图之间的结构关系Ro此外,每个规则R导出变换Rc。Rc将在Γ 1下句法上格式良好的命令c变换为在Γ 2下句法上格式良好的命令Rc(c)。 这意味着命令中的变量和类型都在图中定义。语句和表达式类型正确[5]。图7给出了命令转换,其中符号[D/C]表示用D替换每个类名C,符号[C.b/C.a]表示如果e的声明类型是C,则用另一个表达式e.b替换每个e. a形式的表达式。旋转的概念[C. B. a/C. a]和d[g(C.x1,· ··,C. xn)/C. x]是定义的。定理5.1(规则的合理性)如果规则R[f] 将Γ1变换为Γ2,则Γ 1±Γ2。156X. Liu等人理论计算机科学电子笔记187(2007)145规则描述前提帧R1重命名一 类C D类名称C更改为不同的名称DC∈N1, D∈/N1联系我们R2合并类a一CcC D DbB合并C类 到另一C,D∈N1,(C,a,E),(D,a,F)∈ E1联系我们D类 使得所有表示E=F,出(入)边init(C. a)=init(D. a)从(到)C变成那些从(到)D,和边缘C和D之间的关系成为自环边R3系列属性a BC D C D属性的名称(C,a,D)改为(C,b,D)(C,a,D)∈E1,a=/巴恩德(E,b,F)∈/E1福或 阿尼F∈N1如果E是CCR4添加 一 新类+的C添加CC∈/N1CR5.1添加属性一C D C D添加属性(C,a,D)C,D∈N1,(E,a,F)∈/E1 若E是C的超类或子类, 则 F∈ N1CR5.2添加的继承C D C D添加 一个 继承边(C,Q,D)C,D∈N1,对每个CJ∈N1(C,Q,CJ)∈/E1,D/≤C,nd为每个对的边( E ,a ,EJ),(F,b,FJ)∈ E1, 其中E≤C且F≥D,有a/= bCR6.1通过关系属性B bC D C DaaE E一个属性(C,a,E)是用于-(C,a,E),(C,b,D)∈E1,C通过一个关系(F,a,FJ)∈/E1 对于anyFJ∈N1如果属性(C、b、D) 以形成F 是一个超类或子类另一个属性(D,a,E)的DR6.2转发一个属性(C,a,E)是用于-(C,a,E),(C,Q,D)∈E1,C属性通过通过继承,(F,a,FJ)∈/E1 对于anyFJ∈N1如果的继承切边(C,Q,D)形成F 是一个超类或子类C D C Daa另一个属性(D,a,E)的DE ER7分解数据属性xT11XC TCXnTn一 数据 属性(C,x,T)(C,x,T)∈ E1,那里 存在C被分解为满射本原运算设置的数据 属性g:T1 ×.. . ×Tn→T保持(C,x1,T1),. ......、 (C,xn,Tn)的初始值在-1,对于每个1≤i≤n,(D,xi, DJ)∈/E1对于一个NYDJ∈N1 如果D 是一个超类或子类的CX. Liu等人理论计算机科学电子笔记187(2007)145157R8分解边a aC D C E D将 关 系 属 性 或 继 承 边(C,a,D)分解为两条边(C,a,E)和(E,Q,D)(C,a,D)∈E1,E∈ N1C见图6。基本规则158X. Liu等人理论计算机科学电子笔记187(2007)145规则R命令转换RcR1-A级Rc(c) =c[D/C]R2合并类Rc(c) =c[D/C]R3可扩展属性Rc(c) = c[C. B/C. a]R4添加新类Rc(c) =cR5.1添加属性Rc(c) =cR5.2添加继承Rc(c) =cR6.1通过关系属性Rc(c) = c[C. B. a/C. a]R6.2通过继承转发属性Rc(c) =cR7分解数据属性Rc(c) = c[g(C.x1,· ··,C. xn)/C. x]R8分解边Rc(c) =c见图7。命令转换若在C(C ∈f)中定义了一个hdm(u:T1;v:T2){c},则在C(C∈f)中定义了一个hdm(u:T1;v:T2){Rc(c)},使得定义3.4中给出的条件成立。Q这个定理意味着图6中给出的所有规则都是结构细化。它还示出了第1节中图1的图的可交换性显然,定义3.4中定义的结构细化关系是传递的。推论5.2如果通过规则将Γ1变换为Γ2R1[f1],. ,Rk[fk],则当f1∈···f k/= f时,有Γ 1 ± Γ 2.5.2命题4.2的有效性我们现在建立命题4.2的有效性,作为下面的完备性定理。定理5.3(规则的完备性)若ρ[f]是满足命题4.2条件的从Γ1到Γ2的结构变换,则存在有限个规则R1[f1],. 、.、Rk[fk],将Γ1变换为Γ2,f∈f i,其中1≤i≤ k。证明(大纲)给定一个结构变换ρ[f],我们可以确定精化规则的一系列应用如下。(i) 将每个类别C更 改 为ρ|N1(C),通过应用R1和R2。标测时ρ|N1 是单射的,R2是不需要的。X. Liu等人理论计算机科学电子笔记187(2007)145159FX2R4;R8X1一CEIntFBGX一X1CEInt(ii) 将每个数据属性(C,x,T)分解为一组数据属性:{(C,x1,T1),. ......你好。 ,(C,xn,Tn)},公司简介|d(C,x,T) ={(C.β1.x1),. . ,(C.βn.xn)}和dest(C.βi.xi) =Ti,使用规则R 7。(iii) 对于边,有两种情况(a) 将每个数据边(C,x,T)改变为ρ中的路径C.|d(C,x,T),使用R4、R5和R6.(b) 将每个关系或继承边(C,a,D)更改为路径ρ|r(C,a,D),通过应用R3,R4,R5,R6和R8。(iv) 如有必要,使用规则R4和R5Q例5.4对于例4.3所示的结构转换,图8显示了将Γ1转 换为Γ2的规则的应用。步骤1:重命名类R1步骤2:分解数据属性X1R7X2步骤3:变换边缘R4;R5.1FbGX2XR6.1步骤4:添加额外的节点和边12CaEIntBFGR5.1X1yX2一C E国际见图8。 例现在我们已经证明了命题4.2的有效性。一XC DInt一XC FIntC一FInt160X. Liu等人理论计算机科学电子笔记187(2007)145推论5.5命题4.2成立。X. Liu等人理论计算机科学电子笔记187(2007)1451616结论我们提出了一种图论方法来研究类声明的变化和方法定义的变化之间的关系。其主要目的是使面向对象程序的语义和精化更容易理解和更易操作。我们相信这对于通过转换开发支持对象系统开发的工具是很重要的[11]。本文的另一个贡献是在图论符号的面向对象程序这使我们能够以图形作为状态来理解目标程序的执行,就像理解命令式程序一样。在我们未来的工作中,我们将研究这种操作语义与图的操作和性质的研究。 这将导致一个霍尔逻辑的发展,面向对象的程序与谓词的图。这里提出的方法提出了一种面向对象系统的设计方法,允许从它们的规范和结构转换中自动导出方法定义这项工作仍处于早期阶段,因为结构改进仅限于扩展图。没有提供删除类和属性或将长路径压缩为短路径的规则。因此,在rCOS [5]中证明的一些精化定律尚未成立。换句话说,只建立这种抽象规则的困难是由于我们认为在类图中可以定义任意的方法在进一步的工作中,我们将考虑公共方法中固定方法的类细化引用[1] Y. Chen和J. Sanders。指针结构的合成推理。第八届程序构造数学国际会议论文集(MPC 06)。斯普林格。2006.[2] C.A.R.霍尔和J。指针和对象的跟踪模型。在ECOOPSpringer,1999年。[3] M.Abadi和L.卡德利对象的理论。Springer-Verlag,1996.[4] P. 美国和F.de布尔。关于动态演化过程结构的推理计算的形式,6(3):269- 316,1994.[5] J.他,X. Li和Z.刘某rCOS:面向对象系统的精化演算。被接受发表在理论计算机科学。也可作为技术报告322。联合国大学/软件技术所,中国澳门特别行政区邮政信箱3058号(http://www.iist.unu.edu)。[6] Z.Liu,J.He,X.Li和Y.Chen。UML中用于形式化需求分析的关系模型。Proc. of ICFEM03,LNCS 2885,641-664,2003.[7] P. Borba,A.Sampaio和M.科尼利欧面向对象程序设计的精化代数在ECOOP 2003,LNCS 2743,第457-482页。Springer,2003年。[8] R. Gheyi,T. Massoni和P. Borba。对象模型的抽象等价表示法。Proc.SBMF2004,第1-15页。2004年[9] A. Mikhajlova和E.塞克林斯基面向对象程序中的类细化和接口细化在FME'97程序Springer,1997年。162X. Liu等人理论计算机科学电子笔记187(2007)145[10] EB Johnsen和O.欠。面向对象规范和开放分布式系统。在LNCS 2635中,第137-164页。Springer,2004.[11] Tat a ConSul tancy Services. 我很高兴。(http://www.tata-mastercraft. com/)[12] R. Back,A.Mikhajlova,and J. von Wright.类精化作为正确对象可替换性的语义。Formal Aspects ofComputing,2:18-40,2000.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功