没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记184(2007)97-112www.elsevier.com/locate/entcsUML与形式化方法的集成RafaelMagalhaBogesBorges1AlexandreCabralMota2伯南布哥联邦大学巴西累西腓摘要UML是工业界和学术界广泛使用的语言,尽管它的语义是仍然是非正式的,并允许模棱两可。另一方面,OhCircus是一种形式化的规范语言,它统一了Z,CSP,Morgan的精化演算和面向对象理论。在这项工作中,我们集成UML类图和OhCircus的书面UML元素OhCircus结构。然而,而不是一个简单的语法映射,我们还提出了一个类模型的概念,以捕捉关联和全局约束。 最后,我们使用这种集成来证明关联作为属性的细化,这是一个将分析、设计和实现联系起来的结果,在工业中非常普遍保留字:UML,OhCircus,形式化方法,翻译,精化。1引言形式化方法在关键系统的开发中已被证明是有效的[30,13,2]。然而,由于许多因素,特别是它们强大的数学基础,它们没有大规模使用[5,28]。这是其广泛使用的一大障碍在使形式化方法在工业中更容易获得和使用的各种举措中,当前的研究方向是使用图形化和吸引人的语言,如UML,来封装形式化符号。这通常是通过提供一种(通常是非正式的)语言到另一种语言的结构的映射来实现的,一个更正式的一个[17,21,3,14]。因此,流行的建模语言,众所周知的开发人员,被映射到更强大和正式的,设计没有主要的概念限制(虽然有些是必要的,他们的实际使用)。作为非正式的符号,UML [18,20]值得特别关注。它由图形元素组成,表示各种软件实体及其关系。由于其明显的简单性和易用性,UML已经成为事实上的1电子邮件:rmb2@cin.ufpe.br2电子邮件:acm@cin.ufpe.br1571-0661 © 2007 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2007.03.01798R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97标准;然而,它也可以表示歧义,并且不足以表示更简单的属性,如[19]中所指出的OhCircus[4]被选为我们的形式语言,因为它具有对类和继承等结构的直观表示,并且基于精化理论(摩根的精化演算[16])。这些相同的论点抛弃了像Z [29]和Object-Z [27]这样的语言,如[4]中所述。此外,OhCircus是一种语言,它集成了正式社区中的成熟概念:基于模型的语言Z,进程代数CSP [22],精化演算[16]和面向对象,提供了一种统一的类和进程语言。它的一些设计决策来自UML-RT3 [26],这使得它更适合于预期的映射。我们在这项工作中的目标是翻译UML类图元素到OhCircus结构。我们的前提是保留所有的图结构,包括它们的关系和全局不变量。这是通过一个元类实现的,它在语法上与任何其他类都是等价的,但它捕获了整体结构。主要动机是对UML中精化的探索[25]。我们的方法在处理UML的形式化语言的相同语义级别上有所不同。例如,UML类被映射到我们所选语言的类中.其他的作品,像那些来自该领域最重要的小组的作品,在Z [9,7]中描述了UML的指称语义最后,许多作品[3,6,15],包括[20],假设关联和属性之间的等价性是有效的,而我们建议使用关联作为 类图的抽象视图。 这些关联在精化过程中通过在参与这些关联的类中引入属性而被消除。 这是一个进一步的贡献,在这个意义上,除了结果本身,我们给出并巩固了关于我们的映射及其类模型概念的本作品组织如下。在第2节和第3节中,我们分别描述了UML类图和OhCircus规范的主要元素。在第4节中,我们提出了我们的第一个贡献:将UML类图转换为OhCircus规范(在这里我们展示了类模型的概念第二个贡献出现在第5节,在那里我们使用关联作为属性来处理UML图中的细化。最后,我们在第6节提出了我们的结论和未来的工作。2UML统一建模语言(UML)是由OMG(对象管理组织)提出的用于建模系统的语言。它成为事实上的标准,因为它的易用性和直观的符号。一个UML模型代表了一组对象的描述,这些对象参与了一个应用程序,并且随着时间的推移,这些对象被提交到了一个交互中。一3UML-RT是一个 处理并发的UML扩展。R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)9799这组对象及其瞬时交互的快照表示系统的配置,所有可能配置的集合表示模型的语义。因此,模型可以被看作是对系统的描述。UML是几个图的组合,这些图表示应用程序的静态和动态方面。静态方面与系统的结构有关,始终为真。其目的是描述系统的实体以及它们如何始终相关。另一方面,动态方面指的是应用程序的演化:对象及其连接随时间的创建和销毁;形式上,系统的全局状态(对象和关系的集合)的转换2.1类图类图是软件开发过程中最常用的图。它们使用分类器和关系作为构建块,从应用领域和系统的结构方面对概念进行建模。它们也被称为静态视图,表示永远不会更改的信息下面的例子将贯穿本文。这是一个简化的银行系统,虽然不是详尽的,但它举例说明了类图的主要实体(图1)。在这个模型中,我们建立个人自有账户或信 用 账 户 。 Person 、 accounts 和 credit accounts 分 别 由 Person 、 Account 和CreditAccount实体表示。所有权性质是通过所有者关系来体现的。最后,(匿名)关系表明信用账户是传统账户的专业化图1. 静态方面。2.1.1分类器一个分类器是一个元类,它将所有对值进行分类的构造组合在一起。其目的是在图中引入实体。分类器由成员组成,成员陈述行为及╱或结构特征。它的主要子类是Class和DataType。其他子类(如接口)将不会在这项工作中考虑。类类是类图中的关键元素。它们表示系统域中的概念,并在模型中引入新的类型。他们描述了100R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97−使用字段、关联和方法的一组对象的结构和行为。在图2中,我们可以看到Account类。图2. 类帐户。字段描述类的对象包含的值。 每个领域都有一个类型和初始值(如果需要)。上面的图的类Account有两个字段:number和balance。每一个都有一个值。类的方法表示操作的实现。它们体现了调用它们的对象的状态的转换。它们有一个参数列表和一个返回类型。 例如,类Account图2中的方法Withdraw执行提款,将金额作为输入并相应地修改余额可见性是字段和方法(类的成员)共享的属性,它决定了其他实体对成员的可访问性。成员可以是private(用表示)、protected(#)或public(+),分别在类本身、其子类或模型中的任何实体的范围内可见。在图2的例子中,Account类的字段是受保护的,而它的方法是公共的。数据类型数据类型(也称为基元类型)包括没有副作用并且没有标识的值。因此,具有相同表示的两个值是不可区分的。它们通常对数学域进行建模,并且它们的值是不可变的。值得注意的是,存储在字段中的值可以更新,但值本身不能。在UML中,数字类型、字符串和布尔类型是预定义的基本类型。2.1.2关系关系表示模型元素之间的语义连接。 UML提供了几种方法来表达这些链接,其中主要的是关联和概括。关联表示实例之间的结构关系,而概化表示实例之间的分类协会关联建立了两个分类器之间的结构关系。关联可以被命名,并且具有两个端点(关联端点),由类持有,行为可以被指定(4在UML中,你也可以得到两个以上端点的关联。 然而,它们并不常见,不像二进制那样有简单的语义因此,我们在本文中不关心它们R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97101在图3中,名称为owners的关联有两个端点。第一个是由担任所有者角色的分类人持有。第二个是Account,其角色是Account。语义上,拥有Person和Account的关联实例。图3. 拥有协会。多重性对端点中与另一个端点的单个元素相关的实体数量施加了约束。这个集合的基数也可以用范围来表示。例如,考虑Owns关系,其中我们可以将Person与零个或多个(0..* )帐户的实例;对于每个实例,它必须关联一个或多个Person实例。后一个约束强制要求每个帐户必须至少有一个所有者。可导航性定义了关联的可见性。如果一个端点中的实体与另一个端点之间的关联是可导航的,则该端点中的实体可被另一个端点中的实体看到;否则,该实体不能说明与之关联的实例的任何信息。没有进一步讨论可导航性还有其他类型的关联,如关联类、递归关联和限定关联,虽然包括在翻译中,但这里没有讨论。概括泛化捕获更一般的类(超类)和更具体的类(子类)之间的继承关系。事实上,超类拥有的所有成员都被子类继承。这种关系还表明子类的每个实例也是超类的一个实例。值得注意的是,我们只对简单的概括感兴趣,其中类只能有一个超类。在图4中,我们可以看到CreditAccount和Account之间的一般化关系。Account的所有成员都已由CreditAccount继承。 由于这种关系,信用账户可以参与所有者的关联,这与传统账户是不可区分的。3OhCircus形式化方法包含了计算机科学的一个领域,它为程序的各个方面提供了形式化的解释,比如数据类型和并发性。例如,Z和CSP是工业中最常用的两种形式各个方面的单独考察是很重要的,但目前的态度是统一几种形式主义,验证上面一种形式主义的有效性。5更多信息请参见[1]。102R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97图4. CreditAccount和Account之间的一般化关系。他人特别是,Z和进程代数(CSP-Z,CSP-OZ [8])之间的集成尝试考虑了统一语言中并发系统的状态和通信方面,利用了现有的理论和工具。一个类似的形式主义是Circus[31],它提出了一种对该积分的精化演算。此外,对于那些了解Z和CSP的人来说,它是熟悉的,并且可以重用现有的和成熟的工具,如FDR [10]和Z/EVES [24]。OhCircus是Circus的一个扩展,它增加了类、继承、动态绑定和其他来自面向对象范式的特性3.1类和继承OhCircus中的程序是一系列段落(很像Z和Circus),它们定义了类和进程。为了说明面向对象的特性6,下一段将介绍CreditAccount类,它为向客户提供信贷的银行账户classCreditAccountextendsAccount=begin在OhCircus中,类声明是用关键字class引入的,通过它的名字和可选子句扩展。最后一部分允许类之间的继承;如果省略,类从特殊的类对象继承。在本例中,CreditAccount扩展(继承自)Account。OhCircus中的类与Z specification非常相似。字段、构造函数和方法也通过段落介绍,通常以模式的形式状态CreditAccountState私人信贷:Z余额+贷方≥ 0state子句表示定义类状态的模式。这个模式类似于Z,尽管它的变量声明也可以包含限定符。如果什么都没说,领域被假定为私有。 我们也可以将它们声明为受保护或公开。尽管它声明了语义,但修改器并不限制对OhCircus中字段的访问。6并发特性超出了本文的范围R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97103公共退出ΔCreditAccount金额?:否金额?≤余额+贷方余额J=余额-金额?数字J=数字隐式地,CreditAccount状态继承了在其超类的状态中声明的所有字段和不变量。此外,可以定义新的域和不变量。例如,CreditAccountState引入了一个新的私有字段credit,并声明余额和credit之和不能为负。注意,不变量是由子类和超类的场组成的方法通过使用私有、受保护、公共或逻辑限定符与其他段落区分开来。前三个与方法的可见性直接相关,同样具有标准意义。 逻辑方法只是具体化的人工制品,例如,对复杂表达式的计算有用,但不一定在实现中出现与Z类似,OhCircus类的方法与状态交互,修改它(Δ)或不(Δ)。如果一个方法被重新定义,那么超类方法就不会包含在新的规范中。然而,新的定义必须保留原来的行为。换句话说,新的规范必须是原始规范的细化提款操作需要包括具有信用的账户所陈述的新情况:不要求余额足够;只要求提款不超过限额。注意前置条件的弱化,以及它如何表达对原始操作的细化未重新定义的方法由新类隐式继承,并确保它们不会修改新状态引入的组件端每个类声明都用一个结束子句来完成。3.2协会为了表示银行应用程序本身,还需要指定Bank类、相关帐户和客户。特别地,我们只呈现它关于Person、Account和Owns实体7的状态(图3)。7请注意,OhCircus没有与UML关联等效的构造函数104R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97账户:P账户人员:P人员拥有:人员参与帐户拥有∈人参与帐户2019 -04 - 22 01:01:02(|{a}|)∈N1状态ModelStatepersons:PPersonaccounts:PAccountowned:PersonParticipateAccou拥有∈人参与帐户a:accounts·#(拥有|{a}|))∈N1国家银行Bank类的字段包括账户和客户的集合以及账户和客户之间的关系。不变式规定只有注册的帐户和客户可以参与关系,并且每个帐户必须与至少一个所有者相关联4映射在OhCircus中,“静态视图”直接通过其类集捕获。如前所述,它们有不变量、字段和方法,就像UML中的那些。然而,在这方面,只要没有关联的概念,两个类之间的交互就只能通过场来捕获。例如,回想一下,在上一节中,Bank类充当Account和Person之间的链接。 另一个重要的方面是,在OhCircus中,不可能建立全局不变量。类只能约束自己的状态。我们对这些问题的解决方案是引入一个名为Model的类,负责捕获类图的所有结构:实例集类、关系和全局不变量。我们相信这种方法与其他方法相比([6,15,3])更抽象地看待类图,这些方法只考虑类的表示,直接通过字段捕获关联,忽略全局不变量。 注意,类Model不是 类图本身;它产生于我们对图的解释。 因此,在本发明中,它是一种元类。为了说明我们前面关于捕获帐户和人员之间的关联的讨论,我们提出了一个实现我们目的的类模型的状态。注意这个类与上一节中的Bank类是如何相似的。此外,还可以看到这个类类似地表示类图的语义R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97105至[18,20]。这个类中表示的每个可能值都再现了类图的某些有效配置。换句话说,Model的每个实例都反映一个对象图。4.1类一旦它们有了相同的结构,比如字段和方法, 很容易映射到OhCircus的,虽然必须施加一些约束。 例如,在图5中,我们将CreditAccount类映射到OhCircus类。图5. 映射类CreditAccount。UML类的字段被映射到OhCircus类的模式状态变量(状态模式)以及这些字段的变 量 和 类 型 。观 察 CreditAccount 类 的 字 段 信 用 是 如 何 直 接 映 射 到 模 式CreditAccountState的变量中的。方法被映射到操作模式。默认情况下,这些模式修改状态(Δ-模式),除非标记为查询;在这种情况下,它们映射到非查询模式。输入参数被映射到输入变量(用?修饰)而该方法的结果(如果存在)被映射到变量result!这种转变也可以在图5中观察到。106R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97状态ModelStatecreditAccounts:PcreditAccount...如前所述,每个类向Model引入一组实例,直接通过幂集表示。 从前面的状态模式中,我们可以看到CreditAccount类的实例集。另一个有趣的地方是,如果field的类型也是一个类,那么它也会在类Model中引入不变量。这些不变量断言这些字段的值必须包含在它们各自的实例集中4.2数据类型UML有四种基本的数据类型:UnlimitedNatural,Boolean和String。在OhCircus中,我们有Z和numb,N和UnlimitedNatural,B和Boolean之间的直接对应关系。但是,String类型没有等效类型。因此,我们用一些标准字符编码系统(如ASCII或UNICODE)中的元素序列来表示它,其中标准本身自然由传统的Z枚举定义。因此,像concat、size和substring这样的操作变得容易使用8。4.3概括对于映射继承,必须在子类的OhCircus表示中包含extends子句,后跟超类的名称。此外,类Model中的不变式必须断言子类的实例集合中的元素包含在超类的实例集合中。在下面的示例中,不变量确保creditAccounts的元素也是值的账户。状态ModelStateaccounts:PAccountCreditAccounts:PCreditAccountcreditAccounts信用账户4.4协会关联是一种有趣的构造,因为它们在纯面向对象语言中并不容易获得。 最常见的方法 直接使用场来表示它们,尽管我们认为这不是最自然的方式,因为它们在概念上是不同的。一旦它们在模型中引入实体,关联必须由类Model全局捕获。类所扮演的角色变成了场和一个不变量8一旦数据类型没有标识,它们就不会在类Model中引入“所有实例的集合”。R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97107||状态ModelStatepersons:PPersonaccounts:PAccountowned:PersonParticipateAccou拥有∈人参与帐户2016年05月05日@上午10时30分05秒@上午10时30分05秒@上午10时05分05秒@上午10时|{a}|)∈ N1p:persons·p. accounts=accounts(|{p}|)a:accounts·a. 所有者=帐户(|{a}|)把他们都联系起来。这样的字段只是语法糖,因为关联的一致性是由类Model中的关系维护的。然而,它们是必要的,因为UML语义允许关于类所关联的类的语句。最后,还规定了多重性方面的限制观察图3中的关系。如图所示,这种关联成为Model类中的一个字段不变量将关联的域与相应的实例和多重性集合联系起来。所有者和帐户角色分别成为类Account和Person的字段。最后,模型的不变量定义了如何通过原始关系9解释场。5细化精化关系表达了一个在软件工程中非常常见的概念:一个“更好的”组件可以用来代替另一个组件,而不改变系统的特性。一般来说,细化意味着在模型中引入细节,例如设计决策或寻找未探索的情况。值得注意的是,这些改进可以逐步完成,产生越来越接近可能实现的模型。特别是,形式方法社区对精化关系有一个标准定义(尽管与基于模型的语言密切相关,如Z):削弱前置条件以增加运算的适用性,加强后置条件以减少非确定性。为了保证这一程序的正确性,有证明义务:适用性和正确性理论[30]。我们提出的映射的一个直接结果是能够以正式的方式探索UML精化:UML模型的精化可以通过OhCircus中的数据精化来保证。本节中的例子解决了面向对象社区的一个老问题:将关联表示为字段[12,11,23]。 在这项工作中,我们试图为这种方法提供一些正式的支持,转换模型,9一组对象的关系图像(())是通过关系与第一个相关联的对象的集合。108R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97在只有字段的字段中混合字段和关联,使它们更接近实现。然而,定理证明器提供的支持是保证证明正确性的一个非常重要的特征,而OhCircus仍然缺乏这一点。另一方面,OhCircus具有Z的精化理论,该理论具有Z/EVES的支持因此,我们选择Z来指定我们的模型。5.1模型在这一小节中,我们将展示与抽象模型和具体模型相关的两个类图。在我们的映射中,这些类图中的每一个都在规范中引入了一个类模型。这些类将作为规范的状态,它们的(Meta)操作将被细化。由类ModelR和ModelA标识的操作通过添加和删除元素来改变图的实例和关联的集合,与[15]中报告的方法类似。然而,由于集合的表示从一个图到另一个图不会改变,证明它的细化是微不足道的。因此,我们只对关联对的加法和减法运算感兴趣。 证明的步骤可以在[1]中看到[A、 B]首先,我们要确定A和B的结构是任意的。抽象类的结构使形式化更一般。5.1.1抽象模型抽象模型非常简单。它包含两个类和它们之间的关联。 为了尽可能概括,将不施加任何限制在阶级或协会。ModelRiA:PAiB:PBR:A参与者BdomRiA ranRiB这个模式表示抽象图的类模型,在符号上有一些小的变化:iA和iB分别表示A和B的实例集,而R表示它们之间的关系。请注意,这里没有提到协会的作用;稍后将介绍这些作用添加(AddR)和删除(RemR)操作代表了对象与关联交互的两种可能方式:只能添加或删除链接。在抽象模型中,这是用关系对的并集和减法来表示的。R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97109AddaΔ模型Aa?:Ab?:B是吗?∈iAb?∈iB是吗?∈/asb?你好∈/bsa?bsJ=bs{a?›→(bs a?{b}?)}中的一个如J=如b?→(如B?{\fnSimHei\bord1\shad1\pos(200,288)} )}中的一个iAJ=iAiBJ=iB5.1.2混凝土模型具体模型改变了关联的表示;现在,它通过域和不变量来捕获。模型AiA:PAiB:PB如:B→PAbs:A→›PBdomas=iB ranasPiAdombs=iA ranbsPiBa:iA;b:iB·b∈bs a惠a∈asb具体模型使用as和bs函数在类A和B中引入这是唯一可能的表示,因为Z不允许相互递归的模式。但请注意符号a之间的相似性。BS和BS A.同样,这些最后一不变量的直线使用场建立关联的一致性:如果对(a,b)是链接的,则a∈b。当i ∈ b∈a. BS.向关联添加对的操作(AddA和RemA,类似于删除)已更改为支持新的数据表示。 只有那些正在添加(或删除)链接的实例才会更新其“字段”。其他不相关的元素没有被修改。5.2细化证明为了证明具体模型对抽象模型的改进,有必要建立将两种状态表示联系起来的检索,并证明:这是一种模拟关系[30]。这意味着制定和证明所有操作的适用性和正确性定理110R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97检索ModelRModelA01-02-2016刘晓波(|{a}|)2016 - 05- 22 01:01:02 01:02 01:02 |{二}|)请注意,我们的角色映射正是我们提出的角色映射作为域的关联:某个实例通过关系与之关联的元素集合。 这种关系也与UML规范中建立的关系一致[20]。6结论在这项工作中,我们考虑了使用正式规范语言OhCircus的UML形式化。虽然不是详尽无遗的,我们处理了最重要的UML静态构造。这种方法的独创性,即我们将其他作品的孤立元素联系起来,以及我们对支持使用联想及其场表示的贡献,是本文的要点这项工作的第一个贡献是将UML类图转换为OhCircus规范。我们选择在相同的语义级别对待它们,给出了一个语法映射到UML元素的直接表示OhCircus结构。 我们相信,只要OhCircus是一种面向对象的语言,这种替代方案就更自然,因此不需要(重新)定义类和继承等然而,UML定义了一些OhCircus中不可用的元素。提出一个类Model是对这个映射的一个有趣的补充。将面向对象模型的“语义”(即它们的实例集、交互和约束)引入本文的第二个贡献是对UML中细化的分析。 特别是,Model类允许探索Z的相同精化理论,其中只有一个(全局)状态和作用于它的操作;这给了我们直接工具支持。 案例研究是前面讨论过的表示法我们的贡献是,代表性的领域,这是一个有关联的人的细化值得注意的是,Z/EVES的使用对于证明至关重要。综合工具的支持对于提高工作的可信度非常重要不幸的是,它不是那么友好,需要一些练习才能有效地使用它。6.1未来的作品各种各样的作品可以从这一个衍生出来;明显的是直接相关的这个映射的扩展,关于UML方面还没有探索。的R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97111剩下的部分与使用这种映射作为分析模型转换的正式基础有关。• 这项工作的最直接的扩展涉及其他未捕获的静态元素,如抽象类,接口和某些类型的关联修改器。沿着这个方向,研究使用OCL(一种表示约束的语言)来注释UML模型的潜力也是有价值的。• 调查“反转”映射的可能性,检查如何将本工作中的规范(甚至是无约束的规范)转换回UML。当OhCircus的一些工具支持可用时,这是很重要的,正式分析模型,但以UML结构的形式呈现结果。• 通过类模型结合UML动态方面是一项非常重要的相关工作:分析图的实例序列是有效的,提供动态不变量是可以检查的一些问题。• 通过OhCircus的UML中的并发性特别是通过实时profile[25]被利用,并且有很多有希望的结果。• 与之相关的改进工作也很重要。使用这种映射,设计模式的有效性的形式化证明是软件工程领域相关贡献的一个例子。 可以检查其他的改进,例如双向关联到单向关联的转换,以及从模型中包含或删除类,例如,提出一组UML模型的转换定律引用[1] 博尔赫斯河M., Int eg randoUMLeM′etodosFo rmai s,Finalyearproject,CenetrodeInform′atica,Universidade Federal de Pernambuco(in Portuguese)(2004).URLwww.cin.ufpe.br/www.example.com[2] Bowen,J.和M. Hinchey,[3] 布鲁河,联合欣克尔角霍夫曼角,澳-地克莱因湾帕希湾Rumpe和V.Thurner,《统一建模语言的形式化》,ECOOP(1997),pp. 344-366[4] Cavalcanti,A.,A. Sampaio和J. Woodcock,类和过程的统一语言,在St Eve:面向状态的VS。需求分析中的面向事件思维,形式规格说明和软件工程,FM'03卫星研讨会,2003年。[5] Clarke,E. M. and J. M. Wing,Formal Methods:State of the Art and Future Directions,ACMComputing Surveys(1996)。[6] Evans,A.,WIFT'98:Proceedings102.[7] 埃文斯,A.和T.克拉克,统一建模语言的基础,在:第二次BCS-FACS北方正式方法研讨会,Ilkley,英国,1997年。[8] Fischer,C.,如何将Z与进程代数结合起来,在:第11届Z用户关于Z形式规范表示法的(1998年),pp。5-23[9] 法兰西河B、A. Evans和K. Lano,UML作为一种形式化建模符号,在:H。基洛夫湾朗普和我Simmonds,editors,Proceedings OOPSLA75比81112R.M. 博尔赫斯,A.C.Mota/Electronic Notes in Theoretical Computer Science 184(2007)97[10] 戈德史密斯,M.,“FDR: User Manual and Tutorial, version 2.77,” Formal Systems (Europe) Ltd[11] 格雷厄姆岛,J. Bischof和B. Henderson-Sellers,Associations Considered a Bad Thing,Journal ofObject Oriented Programming9(1997),pp. 41比48[12] 来吧,陈文辉,《计算机科学与 工 程 》 , 北 京 大学出 版 社 ,2001年。[13] Heimdahl,M.,TCAS Ⅱ分析的经验与教训。Eng. 注意到21(1996),pp. 79比83[14] Kim,S.和D. Carrington,A Formal Mapping Between UML Models and Object-Z Specifications,Lecture Notes in Computer Science1878(2000),pp.2-21[15] 拉诺,K。J. Biclogui,UML精化和抽象变换,2号房间研讨会,布拉德福德大学(1998年)。[16] 摩根,C., 普伦蒂斯霍尔国际(英国)有限公司,一九九四年[17] P.,R. Borges和A.Mota,Experimenting Formal Methods through UML(2003),提交给WMF[18] OMG,UML 2 Infrastructure Final Adopted Specification,白皮书,对象管理组(2003)。URLhttp://www.omg.org/cgi-bin/doc? PTC/2003-09-15[19] OMG,UML 2 OCL最终采用的规范,白皮书,对象管理组(2003)。URLhttp://www.omg.org/cgi-bin/doc? PTC/2003-10-14[20] OMG,UML 2 Superstructure Final Adopted Specification,白皮书,对象管理组(2003)。URLhttp://www.omg.org/cgi-bin/doc? PTC/2003-08-02[21] Roe,D.,K. Broda和A. Russo,Mapping UML Models incoming OCL Constraints into Object-Z,Technical Report 2003/9,Imperial College London(2003)。[22] Roscoe,A. W.,C. A. R. Hoare和R. Bird,[23] Rumbaugh , J. , A Search for Values : Attributes and Associations , Journal of Object OrientedProgramming9(1996). 六比八[24] Saaltink,M.,Z/EVES 2.0用户[25] Sampaio,A.,A. Mota和R. Ramos,Class and Capsule Refinement for UML-RT,WMF 2003:第六届正式方法研讨会,巴西,2003年,第100页。16[26] 塞利克湾和J.Rumbaugh,使用UML建模复杂的实时系统,白皮书,Rational软件公司。(1998年)。[27] 史密斯,G., “The Object-Z Specification Language,” Kluwer Academic Publisher,[28] 萨默维尔岛, Prentice-Hall,2003.[29] Spivey,M.,“The Z Notation,” Prentice-Hall,[30] Woodcock,J.和j.Davies,[31] 伍德考克,J.C. P.和A. L. C.卡瓦尔康蒂,《马戏团的语义学》,载于:D. Bert,J. P. Bowen,M. C.Henson 和 K.Robinson , editors , ZB 2002 : Formal Specification and Development in Z and B ,Lecture Notes in Computer Science2272(2002),pp.184-203.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 电力电子系统建模与控制入门
- SQL数据库基础入门:发展历程与关键概念
- DC/DC变换器动态建模与控制方法解析
- 市***专有云IaaS服务:云主机与数据库解决方案
- 紫鸟数据魔方:跨境电商选品神器,助力爆款打造
- 电力电子技术:DC-DC变换器动态模型与控制
- 视觉与实用并重:跨境电商产品开发的六重价值策略
- VB.NET三层架构下的数据库应用程序开发
- 跨境电商产品开发:关键词策略与用户痛点挖掘
- VC-MFC数据库编程技巧与实现
- 亚马逊新品开发策略:选品与市场研究
- 数据库基础知识:从数据到Visual FoxPro应用
- 计算机专业实习经验与项目总结
- Sparkle家族轻量级加密与哈希:提升IoT设备数据安全性
- SQL数据库期末考试精选题与答案解析
- H3C规模数据融合:技术探讨与应用案例解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功