版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计外文资料翻译学 院: 专业班级: 学生姓名: 学 号: 指导教师: 外文出处:(外文) R George, P Samuel Foundational UML Behavioral Specification with JavaJ. Procedia Computer Science,2015, 46:941-948. 附 件:1.外文资料翻译译文; 2.外文原文 指导教师评语: 基本符合翻译要求。签名: 2015年10月14日1外文资料翻译译文UML与java基础行为规范1.介绍图形化建模语言在系统设计和文档的应用。一种广泛使用的通用的图形化建模语言是统一建模语言(UML)。此前,该
2、系统如法体和出入境的状态机的行为无法描述UML动态方面,和自然语言或现有的编程语言都是用来描述动态方面。使用这些方法的缺点是 1)自然语言是模糊的,早期的系统仿真和模型检查可能会影响模糊描述 2)编程语言通常是执行特定的。系统地建立现实行为,精确的动作语义已被纳入UML 2.0。UML可以让它在描述系统的动态方面更具表现力的可执行文件。模型是一个系统的抽象。由于建模和编程语言的抽象之间的差距,很难达到建模的一致性。由于这个空白,本代码不必知道模型中定义的概念。模型通过省略不必要的细节提供了一个抽象的系统。行动,算法和导航路径不能用UML图进行了详细的阐述。使用一些编程语言或文本表示的规则和约束
3、的模型进行说明。模型感知的行动语言的开发,以减少抽象的差距。基础的UML动作语言(Alf)是由对象管理组(OMG)定义以减少差距。模型主要利用UML的图形符号表示。描述模型的元素和指定的可执行文件的行为,使用UML动作语言。Alf行为的表面符号,用于指定模型内的可执行行为。一个完整的规范行为和计算需要指定完整的可执行的系统。使用一个文本符号很容易添加详细的行为模式和运行模式的程序从而指定完整的可执行性。语言为基础的UML动作语言Alf。在本文中,我们证明了java可以用来比较Alf和java的词法和句法构造指定UML行为。我们发现,Alf的语法类似于java语言的语法和词汇的成分,也有少数例外
4、几乎相同。Alf编译过程图Alf行为规范到fUML模型或一个可执行代码在非UML平台而java程序的编译产生的一个中间平台无关的字节代码表示。2.相关的工作有许多文件相关的Alf的翻译和生成的代码从设计模型。本文将UML关联到java代码,描述了在java考虑多重二元关系的实现,适航性和可见性。虽然没有直接构建在java直接执行的二进制组合,结合类、属性和方法,组织可以实现。介绍了UML语言和行动评价的调查。在本文中,一种技术被称为umple定义允许任何语言作为一种动作语言。一个高层次的抽象是由umplewhen与现有的高级语言相比,阐述了java代码可以从状态机设计模式的使用产生。在本文中,
5、每个状态被认为是一个对象。状态图中的每一个状态都是一个类,并且所有的状态的转换和行为都被封装在它中。为了实现分层和并发状态,组成和代表团的概念可以被使用。阐述了如何将桥梁计算执行元建模和模型之间的鸿沟。一个新的框架,结合元模型和计算模型(MOC)以模块化的方式介绍。一个完整的、可执行的规范语言(DSL)的定义域的设置,以及如何给MOC可重复使用不同的特定领域的元模型,以及如何不同的系统可用于一个给定的模型占DSL. In ,Alf 语言是用来执行数据流分析模型。本文还介绍了精确的数据流信息可以通过绘制UML状态机发现Alf。3.Javajava是一个最流行和广泛使用的面向对象的语言。java是
6、一个平台无关的语言在某种意义上说,由java代码可以运行在各种不同环境下的CPU。的设计,通过实际工作的程序员进行测试和完善的java语言,因此对真正的程序员的经验理由。java的逻辑一致性和凝聚力。程序员完全可以控制语言。java语言也对网络的影响。提供网络安全、java创建计算机和网络应用之间的防火墙。java编译器输出的字节码是不可执行的。这是一个可以在任何平台上运行java虚拟机解释。通过编写java代码的字节码,程序可以创建跨平台。java编程语言的优点是简单、安全、面向对象的、健壮的、多线程的、结构中立、解释、动态分布。类图UML图表示系统的静态方面。类之间存在关联和泛化关系。ja
7、va是一种面向对象的编程语言,因此类的概念、对象和继承的支持java。java类可以直接实现。在类关系图泛化关系可以模拟使用java中的继承的概念。协会代表类和它是一个UML的关键概念之间的关系。协会不能直接代表java但他们可以实现通过组合使用的类,属性和方法或具体的java接口。单一的协会可以使用对应于目标类中的链接属性实现;多个关联可以实现使用java集合如矢量、适航性好等,包括单向和双向关联和包含在相应的类属性,导航可以实现。java和UML的能见度水平有相同的语义;因此,能见度也可以实现在java。java语言具有多种功能,使得它适合为代表的UML模型元素。用活动图和状态图进行动态或
8、行为建模。活动图是一种特殊形式的状态图和他们描述动作的程序流程。设计模式可用于从状态机生成java代码。国家代码的翻译过程中,每一个国家是阶级嵌入所有的转换和行为对象。并发状态也可以使用java组成代表团代表。java的特点使它能够指定所有构建UML直接或通过一组特征相结合。因此,java可以用来指定与UML模型元素相关的行为。4. Alf基础的UML动作语言(Alf)的开发是为了提供一个文本对UML建模元素的表示。Alf的具体语法可以映射到标准的基本子集的抽象语法可执行UML模型(称为基础的UML或fUML)。这个映射指定的执行语义,Alf和执行Alf文本的结果是确定的语义,它映射到fUML
9、模型。模型代表应用UML和执行行为的图形符号的使用Alf作为指定的UML元素执行行为的表面符号指定。这是Alf的首要目标。行为规范包括类的操作或状态机的过渡效应行为的方法。提供Alf的扩展符号可以用来表示结构建模元素。Alf的语法直接覆盖的子集的子集fUML UML和整个模型代表使用fUML子集可以指定Alf。Alf的设计是基于以下的指导原则:有Alf和C或java语法之间的密切的相似之处。UML的文本语法像名称限定双冒号也可用于Alf。这是可能的嵌入在图形化模型的Alf文本没有任何变化的模型。(例如,包括名称的特殊字符,使用任意名称的构造函数等)。容纳Alf在图形模型方便有用的 1)提供执行
10、语义在映射到fumlsubset和 2)在映射到其他非fumlmodels。参考元素的活动外,Alf使用的命名系统的UML命名空间提供。本地名称被提供给活动中的值的引用流。Alf使用隐式类型系统,它还使用静态类型检查的基础上至少在类型声明的结构模型元素。Alf有对象约束语言的表现力(OCL)在使用和操作序列的值。在扩展区域fUML这些序列表达式是完全可执行的;Alf也允许高度并行的计算简单和自然的规范。是一个行动的语言是Alf的首要目标,在fUML子集的界限,Alf还提供了具体的语法结构建模。5.对java和Alf的句法比较从词法成分、句法规范和语义规范等方面对语言进行了编程。词汇结构是一种编
11、程语言的基石。它指定了单个字符是如何组合在一起形成令牌的。语法规范的目的是组的标记语法正确的结构形式。形式化描述语言中的各种表达形式的语法结构,使用语法。语句的语法是使用语法指定的。语义语法有效的语句中指定的语言的意义。扩展巴科斯范式(EBNF)是用来指定Alf动作语言的词法和句法结构。Alf的具体语法可以被映射到标准fUML抽象语法在fUML规范定义。该映射fUML模型的语义决定的执行语义和执行Alf文本的结果。java编程语言的语法是使用上下文无关文法的规定。一个java程序的编译生成一组源程序中的每个类的类文件。Alf和java语言的比较是基于语言规范。5.1.词法结构一种编程语言有一个
12、词法结构,确定字符的序列是如何组合在一起形成令牌的。Alf的词法结构定义了一个Alf输入文本中的字符序列被划分成一组输入元素或令牌。这样的投入要素可分为空白、注释或标记。令牌再次被归类为文档注释、名称、保留字、文字、标点和运算符。java报表也有词汇结构组成的白色空间,注释和标记。标记可以是标识符、关键字、文字、分隔符或运算符。Alf语言的词法结构类似于java语言的词法结构,词法分析器检测到白色空间,注释和标记。在Alf和java的令牌是少数例外如文档注释几乎相似,名字(几乎类似于标识符)等。5.2数据类型Alf支持以下原始数据类型: Boolean, String, Integer,,自然
13、和位串。java语言也支持数据typesbyte,short, char, int, long, float, double, Boolean。所有的原始数据类型支持的Alf也由java编程语言支持。5.3类一个分类器,其实例被称为一个类。一类可以包含属性和操作。属性定义类的属性,并且它们可以有适当类型的值。类中的操作可以用调用表达式来调用同一个类的对象调用。属性和操作类似于java类的属性和方法。Alf支持java类和有语法来指定抽象和具体类。表1.抽象和具体在Alf和java类定义的实例。AlfJava抽象类与抽象操作abstract class Select public abstrac
14、t getValue(): Money; abstract class Point translate int x = 2, y = 3; void move (int dx, intdy) x += dx; y += dy; alert(); abstract void alert();具体类class product private qty: Count; public getQuantity(): Count return self.quantity; class productprivate intqty; public intgetQty ( )return qty;5.4声明语句没
15、有值,并且是为它们的效果执行的行为的段段。在一份声明中表示,Alf的行为控制程序的基本单位。语句序列是由一组线性有序语句组成的Alf文本。指定UML的行为,这样的语句序列可以在UML模型。对于较大的句法结构,使用一个块,这是一个语句序列的划分。Alf行动语言支持注释,内联,块,空,本地名称声明,表达式语句,如果,切换,同时,做,为,中断,返回,接受和分类报表。语句序列中的所有语句按顺序依次执行。使用一个不透明的行为,Alf的一个语句序列可以被插入到UML模型和UML活动。这种不透明的行为主体是用Alf的语句序列处理文本和相应的语言字符串指定的是Alf。一个动作可能有输入和输出引脚,它应该被命名
16、。输入引脚的名称被认为是在语句序列中的指定源。输出引脚可以在语句序列中指定名称,它们为语句序列的末端提供相应的输出引脚的值。在语句序列中,其他可视模型元素(如有必要)的名称也可以被用作通常的。在java中,报表控件执行的顺序和没有价值。类似于Alf,他们被执行的效果。语句序列构成一个块。在java中,一个语句可以if- else语句,断言语句,while, do-while,for,break,continue,return,throw,switch,try-catch语句。在Alf的声明类似于java语法的语法。为了对比while和switch语法在表2的例子中对Alf对Java的非常相似地
17、进行了比较。在switch语句中,唯一的区别是在java的break语句的使用。表2 比较Alf和Java的while语句和switch语句类型声明AlfJavawhile语句while ( conditionExpression ) statementwhile (ConditionalExpression) Statement语句的例子While (file.hasNext() Record = file.readNxt();while (file.hasNext() record=readNxt(); switch语句switch ( Label ) “ case” exp”:” exp
18、 statement default : Default statements “”switch ( Label) case Exp : Exp statement break; default : Default statement break;切换语句的例子来检查日期的有效性switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(day0 & day0 & day0 & day0 & day0 & day0 & day0 & day0 & day0 & day0 & day0 & day0 &
19、day0 & day0 & day0 & day0 & day=28) System.out.println(“Valid date”); break; default: System.out.println (Invalid date); break; 5.5 ExpressionsAn expression evaluates to a collection of values and is treated as behavioural unit. The side effects of evaluating an expression are changing the value of
20、an attribute of an object. Using an opaque expression, an Alf expression can be inserted into a UML model. To specify values in the UML model, an Alf expression may be used. Alf supports both conditional expression and assignment expression The Java language expression syntax, also supports both con
21、ditional expression and assignment expression. The formal specification of the execution semantics of an Alf expression are given by the mapping to UML activity graphs. Since Java and Alf supports conditional and assignment expressions, Alf expressions can be replaced with expressions in Java.Parsin
22、gParsing is the process of verifying the syntactic correctness of the input program or text. Parsing is a process that takes as input a stream of tokens, verifies the syntax and produces as output a parse tree or syntax tree. The syntax is usually defined using a grammar. A syntactic grammar whose d
23、efinition is based on extended Backus-Naur form (EBNF) is used to specify the Alf concrete syntax. The Alf concrete syntax defines how an abstract syntax tree is formed by grouping lexical tokens. This is done by grouping the tokens produced by the lexical analysis of an Alf text to construct an abs
24、tract syntax tree. A hierarchical parse tree is produced as the result of parsing. The parsing of an Alf input text is thus essentially the same as is done for the processing of any typical textual programming language. Usually a context free grammar is used to specify the syntax of programming lang
25、uages. The use of EBNF grammar provides context free parsing of Alf text. The atomic expressions from statements and the specified UML action associated with these expressions are identified by the parser 12. The specified unit is parsed into an abstract syntax representation in memory. There is no
26、pre-compilation of units and any unit imported should be recursively compiled. During parsing, violations of the abstract syntax constraints defined in the Alf specification are checked and reported. Static semantic analysis is performed to gather additional information for mapping to fUML whereas i
27、n the case of programming language, semantic analysis is performed for type checking and resolving names. The difference in the semantic analysis phase arises due to the difference in the output produced after compilation. In the case of Alf, it is mapped to fUML, whereas in Java, a set of class fil
28、es is produced.The final step in processing an Alf text is the mapping to a representation in terms of fUML abstract syntax. By performing a depth first traversal of the annotated abstract syntax tree with derived attributes from static semantic analysis, the fUML abstract syntax representation is b
29、uilt. The fUML reference implementation maps all parsed units to the in-memory representation. Unit mapping is executed at an execution environment created at a fUML locus14. In the case of Java, after the compilation is performed, a platform independent representation called bytecode is produced. B
30、yte codes are stored in a class file.A set of Java source files are compiled to a set of class files by the Java compiler. The lexical analyzer groups characters in the source file to form tokens. The tokens are then grouped by the parser to generate the abstract syntax tree. A symbol table with sym
31、bol definitions is created. Semantic analysis is performed after performing process annotations on the abstract syntax tree. It includes name resolution, type checking and constant folding. After performing data flow analysis of the annotated parse tree, inner classes, class literals etc. are remove
32、d and a class file for each class is generated5 . The compilation steps in both Alf and Java are almost similar except in the output produced by the compiler.ConclusionAlf is a textual representation of a modeling language for a subset of UML called foundational UML. It has been shown that Alfhas sy
33、ntax similar to Javaprogramming language. Java is a high level platform independent programming language. Executable behaviors within a UML model can be specified with Alf. The Alf code can be mapped to fUML models or high level language code after compilation whereas in Java, a set of class files c
34、ontaining a platform independent representation called byte code is produced which can be interpreted and executed. After parsing, an intermediate representation: fUML model or high level language code in the case of Alf and byte code in the case of Java is produced. Alf produces a layer of abstract
35、ion between the models and code. In this paper we have shown that since Alf resembles Java, in many of the constructs, the extra level of abstraction can be avoided using a high level programming language such as Java. Although using an action language to provide the behavioral specification helps i
36、n the generation of full code, extra effort is put in to produce the textual representation in Alf code and further map the models to fUML and then later execute the models. Alf syntax is similar to C, C+ or Java and the programmer has to learn another language, Alf to make the models executable. Ja
37、va is one of the most popular high programming languages and it has been demonstrated that many of the Alf constructs are similar to Java. The advantages of using Java to specify behaviors within the UML model arethat it eliminates an extra layer of abstraction and programmer is relived from the bur
38、den of learning another language Alf which is similar in many aspects to high level programming language.ReferencesObject Management Group (OMG): Unified Modeling Language: Superstructure, version 2.0 available at Yang, Mikai, Greg J. Michaelson, and Rob Pooley. Formal Action Semantics for a UML Act
39、ion Language. J. UCS 14.21 2008: 3608- 3624 Ciccozzi, Federico, Antonio Cicchetti, and Mikael Sjodin. Towards Translational Execution of Action Language for Foundational UML. In Software Engineering and Advanced Applications (SEAA) 2013 39th EUROMICRO Conference: IEEE, 2013. p. 153-160. Mellor, S.J.
40、, Tockey, S. Action Semantics for UML, Response to OMG RFP ad/98-11-01 OMG ad/1002-08-04; Tech. Rep. Project Technology, Inc. Erni, D., & Kuhn, A. The Hackers Guide to javac. University of Bern, Bachelors thesis, supplementary documentation, 2008. Ed Seidewitz. Programming in UML: An Introduction to
41、 fUML and Alf, Tutorial for the OMG Executable UML Information Day 22 March 2011 Object Management Group Action Language for Foundational UML (Alf), Concrete Syntax for a UML Action Language, beta 1 version OMG Document Number.ptc/2010-10-05. 2010 Gonzalo Gnova, Carlos Ruiz Del Castillo, and Juan Llore
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件无法修复教学课件
- 新会区会城创新初级中学八年级上学期语文11月期中考试卷
- 七年级上学期语文期中考试卷-6
- 第八中学九年级上学期语文期中考试试卷
- 一年级数学(上)计算题专项练习集锦
- 贵重物品承销协议书(2篇)
- 南京航空航天大学《程序设计实践》2023-2024学年期末试卷
- 南京工业大学浦江学院《土木工程测量》2021-2022学年第一学期期末试卷
- 南京航空航天大学《法律职业伦理》2021-2022学年期末试卷
- 肥皂泡第课时说课稿
- 孙燕姿所有歌曲歌词大全(11张专辑)
- 期中质量检测1-3单元(试题)-五年级上册数学北师大版
- 生命科学导论智慧树知到课后章节答案2023年下浙江大学
- 小学道德与法治-公民的基本权利教学设计学情分析教材分析课后反思
- 班级管理交流-班主任工作经验交流课件(共28张ppt)
- 班级管理第2版(高等师范专业)PPT完整全套教学课件
- 高考模拟作文“很多人追求生活上的精致也有不少人赞赏生命中的粗粝”导写及范文
- 大连理工大学完整版
- GB/T 17879-2023齿轮磨削后表面回火的化学浸蚀检验
- 建设单位对监理工作要求
- FDS火灾模拟技术
评论
0/150
提交评论