没有合适的资源?快使用搜索试试~ 我知道了~
OCL模型驱动架构下的英语句子转换系统的开发和评估
Journalof King Saud University沙特国王大学沙特国王大学学报www.ksu.edu.sawww.sciencedirect.com增加OCL可用性Samin Salemia,1,Ali Selamata,*,Marek PenhakerbaUTM-IRDA Digital Media Centre and Faculty of Computing,Universiti Teknologi Malaysia,81310 UTM Skudai,Johor,Malaysiab捷克共和国接收日期:2014年6月28日;修订日期:2015年3月23日;接受日期:2015年2015年11月2日在线发布建模语言的可用性与建模语言所构造模型的时间和精度等因素有直接关系。对象约束语言(Object Constraint Language,OCL)是记录系统约束的最流行的语言,统一建模语言(UML)。OCL被认为是一种语法复杂的建模语言,使用这种语言需要事先了解OCL这些障碍导致了OCL的低可用性。因此,本研究提出了一个模型,自动转换系统的限制,在英语句子中形成的OCL specifications。该模型基于模型驱动架构(MDA)方法。该模型的线性时序逻辑(LTL)属性通过Maude模型检查器进行了验证。为了验证所提出的模型,并与现有的工作进行比较,En2OCL(英语2OCL)应用程序的开发。该应用程序通过三个评估指标进行测试:精确度,召回率和f-measure。En2OCL应用程序与NL2OCLviaSBVR应用程序进行了进一步比较,现有的从英语句子生成OCL的工作比较表明,在精度,召回率和f-措施相当大的改善。©2015作者。制作和主办由爱思唯尔B.V.代表沙特国王大学。 这是CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍软件设计人员使用建模语言来记录系统需求和约束。其中一个重要的特征是,*通讯作者。联系电话:+60 7 5531008;传真:+60 7 5530160。电子邮件地址:aselamat@utm.my(A. Selamat)。1电话:+60 7 5531008;传真:+60 7 5530160。沙特国王大学负责同行审查建模语言的特点是可用性。ISO对可用性有一个定义:“产品在特定的使用环境中,被特定的用户有效地、高效地、满意地用于实现特定目标的程度。”根据ISO定义,可用性由三个因素组成:有效性、效率和满意度。有效性是用户使用系统完成任务的能力,以及这些任务的输出质量。 效率是执行任务所消耗的资源水平。满意度是用户对系统使用的主观反应。OCL是最流行的建模语言,用于记录软件设计人员无法通过统一建模语言(UML)显示的系统约束。低可用性http://dx.doi.org/10.1016/j.jksuci.2015.04.0021319-1578© 2015作者。制作和主办由爱思唯尔B.V.代表沙特国王大学。 这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier关键词模型驱动架构;模型转换;OCL生成;可用性改进14岁。Salemi等人OCL由于其复杂的语法,导致用自然语言编写的系统约束与OCL规范之间的差距越来越大。因此,OCL的低可用性大大增加了软件开发设计阶段的时间和精力,从而降低了整 体 开 发 成 本 。 本 文 提 出 了 一 种 基 于 模 型 驱 动 架 构(MDA)的OCL可用性框架。MDA的哲学是将每个工件描 述 为 模 型 , 并 将 模 型 相 互 转 换 ( Jilani 和 Usman ,2010)。MDA为软件开发提供了一种更有效的方法,如果模型转换是根据它们的规范完成的。本文的结构安排如下:第二部分,对现存的两类作品进行了研究.第一类包括现有的基于MDA的作品,其源模型是自然语言。第二类包括现有的用于生成八达通卡的工程。在第3节中,介绍了本研究的贡献。在第4节中,给出了源模型、中间模型和目标模型的三个元模型。在第5节中,详细阐述了所提出的模型。在第6节中,对所提出的模型进行了评估。2. 相关作品现有的一些基于MDA的作品,其源模型是自然语言。例如,由Fliedla等人(2007)提出的NIBA(德语中基于自然语言的需求分析)是一种从语言学上分析需求描述并将其转换为CS(概念模式)的方法。Amdouni等人(2011)提出了一种工具,可以使用NLP规则将文本文档中形成的需求转换为UML类图。Wang(2013)提出了EBD(基于环境的设计),这是一种在概念模型中表示自然语言的方法 , 如 UML 用 例 , 域 和 FBS ( Bajwa ( 2012 ) 开 发 的NL2OCLviaSBVR是一个工具,这是唯一支持OCL的现有基于MDA的工作。该工具将英语句子中形成的系统约束转换为OCL规范。另一方面,有一些现有的工作来生成OCL规范。例如,Wahler(2008)引入了一种方法,该方法采用无约束的类图,并基于OCL模式给出OCL规范。所提出的方法分析输入类模型,以引出潜在的缺失约束。有一个OCL约束模式库,它允许开发人员根据上一步得出的结果编写OCL规范。由于OCL可以用作具有复杂语法的声誉的模型查询语言,Sto?rrle(2013)提出了一种方法来识别用于ad hoc域模型查询的最重要的模型查询元素。模型查询元素被转换为称为OQAPI(OCL Query API)的查询谓词库中的OCL规范。NL2OCLviaSBVR也可以归类为OCL发生器。但是,该工具有一些局限性。例如,它不支持一些OCL元素,如collect,reject,enumeration,tuple数据类型和XOR关系。该工具使用Akehurst等人开发的SiTra(简单转换)。(2006)用于实现映射规则。SiTra有一些限制,这些限制被认为是NL2OCL通过SBVR限制。例如,SiTra的主要局限之一是关于有多个规则应映射到同一目标对象的情况。使用SiTra无法确定应该用哪条规则来构造目标对象。2.1. 相关工作的综述和评价若干准则已订明,以评估产生OCL规格的现有研究工作。这些评估标准是OCL应用程序、输入数据、是否基于模式、自动化水平、优点和限制。OCL可以查询或约束系统的状态。 换句话说,OCL既可以用作查询语言,也可以用作约束语言。因此,OCL有两个应用:约束和查询。八达通卡申请是现有工程中考虑的一项评估标准。现有工程中的输入数据类型是另一个考虑的评估标准。OCL开发人员可以手动编写OCL规范,也可以使用OCL约束模式。OCL约束模式是一个库,允许开发人员根据从复杂步骤中得出的结果编写OCL规范。必须明确八达通公司的现有工程是否基于模式。因此,基于模式是另一个评估标准。由于自动化程度不同,自动化程度是另一个评价标准。特点、优点和缺点是现有作品考虑的一些一般评价标准。表1列出了使用标准评估的现有工程3. 贡献表1显示,只有两个现有的工作生成OCL作为约束规范。第一个是COPA-CABANA,这是一个基于模式的工具,第二个是NL 2 OCLviaSBVR,这是一个基于MDA的工具。表2显示了现有工程和拟议模型之间的一些差异。这些差异显示了所提出的模型解决的现有工作4. 元模型4.1. English元模型元模型是表示为模型的建模语言的抽象语法。元模型根据类和关系定义模型的结构。图1显示了英语元模型的类。在当前的研究中创建了元模型所有格限定词是限定词的一个子短语,通过将所有格归于某人或某物来修饰名词。例如,“全称量词,表示某些陈述对所有或所有人都成立,包括"all“、”each“和" every“。表示某些陈述对某事或某人 为 真 的 量 词 , 包 括 "a“ 、 " an“ 和 "s ( 复 数 ) " 。transitiveVerb是一个动词,它带有一个或多个宾语。系动词是一个动词,它将主语连接到一个指代主语的补语上。Neces-sityVerb是一个情态动词,表示必须执行的必要动作.Issues To包括提高OCL可用性的模型转换框架15" 等 于 “ 、 " 等 于 “ 、 ” 等 于 “ 或 " 等 于 “ 。ValuedRangeQuantifier是一个子短语,它通过以下语法确定数量:“”介于数量1和数量2之间“,例如”“介于3和5之间“和”“介于客户卡的数量和它们的所有者之间“。前缀元素是紧接在另一个语义元素之前放置的语义元素。 例如,介词连词是一个介词,如“in”和“with”,描述句子中两个子短语 之 间 的 关 系 。 NegationElement 为 "not“ 。IsPropertyOfSign是一个子短语,使 用 “of“ 的 元 素 。 例 如 , “ 客 户 年 龄 “ 是IsPropertyOfSign。SignIntegratedWithAnd是表示两个数量事物的乘、除、加或减的子短语。例如,SumOf是一个SignInte-gratedWithAnd,它把两个数量的东西相加. SubtractionOf是一个SignIntegratedWithAnd,它减去 两 个 数 量 的 东 西 。 MultiplicationOf 是 一 个SignInte-gratedWith And, 它将 两个数量 的东西 相乘。DivisionOf是一个SignIntegratedWithAnd,它划分两个数量的东西。表1产生OCL规格的现有工程的评估摘要。研究员OCL应用输入03 The Dog(2008)约束语言03The Dog(2013)模型查询语言03 The Dog(2012)约束语言无约束类模型英文描述基于模式自动化工具/库关注可用性是的半自动COPACABANA没有没有OQAPI手册是的UML类模型与英语描述否自动NL2OCLviaSBVR是的开发一致性约束基于约束模式的规范确定最重要的模型查询元素,并将它们转换为OCL谓词转换自然语言表达式转换为等效的OCL语句优势● 支持用户检测反模式● 改善 的 方便用户用于即席查询的● 简化OCL● 简化OCL约束一代限制● 人工提取信息从NL约束● 手动选择模式● 准确率低(69%)● 不具有任何程度的确定性● 对某些人来说不容易使用语句生成● OCL可用性改进● SiTra的局限性● 一次输入一个英文句子● 无法使用的返回值方法作为参数值模式● 需要大量的努力,时间● 不支持收藏● 不支持拒绝● 不支持枚举● 不支持元组数据类型添加新约束阵列● 不支持XOR关系● 不支持OperationCall表2En2OCL与现有工具之间的差异。财产CopacabanaNL2OCLviaSBVREn2OCL实现映射规则–SitraATL导航呼叫没有是的是的逻辑表达式是的是的是的关系式是的是的是的枚举是的没有是的includesAll()没有是的是的Select()没有是的是的异或关系没有没有是的isUnique()没有是的是的元组数据类型没有没有没有collect()是的没有是的reject()是的没有是的操作呼叫是的没有没有每次只能处理一个英语句子–是的没有16 S。Salemi等人图1英语元模型。4.2. 语义业务词汇和规则SBVR(Semantic Business Vocabulary and Rules,语义业务词汇和规则)是开发业务词汇和业务规则的语义模型的标准(OMG,2013)。OMG提出的SBVR标准是MDA的一个 组 成 部 分 , 用 于 自 然 语 言 的 形 式 化 描 述 ( OMG ,2013)。由于自然语言如英语是非正式的描述,因此将其翻译成正式语言非常困难。SBVR的基础是形式逻辑(Bajwa,2012),所以SBVR到其他形式语言的翻译很容易。在目前的研究中,SBVR被选为中间表征。因此,英语元模型的元素必须映射到SBVR元模型的元素,然后SBVR元模型的元素必须映射到OCL元模型的元素。SBVR将业务规则作为一组逻辑公式来分析自然语言的语义。这些业务规则是用自然语言编写的。SBVR是一组概念和逻辑公式(Njonko和El Abed,2012)。SBVR为特定业务领域生成的正式词汇表和规则可以被计算机系统使用。这些词汇表和规则有助于对自然语言文本进行健壮的语义分析。概念和事实类型是业务词汇的两个主要元素。概念是特定领域中的业务实体,事实类型是业务规则中概念之间的关系。SBVR建议使用SBVR规则来表示特定上下文中的特定业务逻辑。SBVR提出了一套语义公式,语义制定SBVR规则。图2给出了SBVR元模型的类。所有具体定义SBVR业务词汇表中收集了组织或社区使用的大量业务概念。SBVR概念是对象类型和事实类型。对象类型是一个通用概念,根据其特征进行分类事实类型标识一个或多个对象类型之间的关系。事实类型中的对象类型称为事实类型角色。一元事实类型(特征)有一个事实类型角色,二元事实类型有两个事实类型角色。SBVR逻辑公式是模态公式,原子公式,逻辑运算,量化和对象化。模态表述分为必要性和可能性。必要性公式使用关键词“这是必要的”或 “ 这 是 强 制 性 的 ” 来 表 示 。 可 能 性 公 式 使 用 “It ispossible“关键字表示。原子公式化在规则中指定一个事实类型。二进制原子公式在规则中指定一个二进制事实类型。量化是SBVR中支持的一组量化,由通用量化、至少n个量化、至多n个量化等组成。客观化是一种涉及可绑定目标的逻辑公式。逻辑运算分为逻辑否定和二进制逻辑否定。逻辑反是具有一个逻辑操作数的逻辑运算。二进制逻辑否定(英语:Binary logical negation),如合取、析取和蕴涵,是一种具有两个逻辑操作数的逻辑运算。4.3. 对象约束语言尽管UML是最常用的图形化建模语言,但它不能表示需求约束,因此,一种语言,如最常用的语言OCL,提高OCL可用性的模型转换框架17图2SBVR元模型(OMG,2013)。语言来记录需求约束以提高精度。在一个系统中,需求约束指定了系统必须如何操作或必须如何构建。OCL规范在UML中有注释。模型驱动工程(MDE)在PIM级别中被归类为OCL。OCL规范是一个布尔表达式,它为UML模型中的类、属性、数据类型和操作等实体设置条件。这意味着该条件对于实体的所有实例都必须为真。OCL规范包括两个主要部分:上下文和表达式体。OCL规范的上下文表示受OCL限制的实体OCL规范的表达式体显示一个布尔条件。受OCL规范限制的实体被识别为OCL规范的上下文变量。 图 3显示了OCL元模型。OCL规范的上下文在表达式主体中使用self关键字指定。一个OCL上下文有一个原型,它可以是以下项目之一:不变,定义,初始,派生,前置和后置条件,以及主体。 OCL不变表达式以算术和逻辑操作的形式指定类图中类的属性和操作的条件。属性或关联可以18岁。Salemi等人图3OCL元模型(OMG,2012)。提高OCL可用性的模型转换框架19通过OCL定义添加到类图中。属性或关联的初始值可以由OCL初始化指定。属性或关联端的派生值可以由OCL派生来指示。操作的前置条件表达式在操作执行之前必须为真,操作的后置条件表达式在操作执行之后必须为真。OCL体用于表示查询操作。OCL规范的表达式体包括一个或多个表达式,如let、if、literal、call和unary操作。一个let表达式可以定义一个具有初始值的新变量。if表达式定义了一个条件和两个备选表达式,在对条件求值后,其中一个备选表达式被选为if表达式的结果。文字表达式没有任何参数来产生值。这类表达式会产生一个表达式符号,例如整数(12)和字符串(“hello“)。调用表达式引用集合的属性、操作或迭代器,集合是一些值的集合。属性调用表达式是对UML模型中类属性的引用。导航调用表达式是对UML模型中关系的引用。当我们想引用一个类的操作时,使用一个操作调用表达式。有一些一元操作,如notEmpty,isEmpty,oclIsTypeOf,用于对值执行函数。集合上的notEmpty操作在集合至少有一个元素时返回true。当集合没有元素时,集合上的isEmpty对值的oclIsTypeOf操作确定值是否属于作为参数提供给操作的类型。 当我们想在一个集合上构造一个循环时,使用一个循环表达式。forAll操作将表达式作为参数,如果集合中所有元素的表达式计算结果均为true,则结果为true。集合上的exists操作指定一个布尔表达式,该表达式必须对集合中的至少一个元素为真。当参数表达式对于结果子集的所有元素都为真时,对集合的选择操作采用参数表达式并导致集合的子集当参数表达式对于结果子集的所有元素都为假时,对集合的reject操作采用参数表达式并导致集合的子集集合上的collect操作给出集合中4.4. 皇家和忠诚系统作为案例研究Warmer和Kleppe(1999)最初引入了皇家忠诚模型。之后,该模型被用于各种各样的分析。皇家忠诚公司(Royaland Loyal)为一家虚构公司的计算机系统建模&。它为那些为客户提供各种奖金的公司处理忠诚度计划。额外的奖励通常以积分或航空里程的形式出现,但其他奖励也是可能的:降低费率,以与标准租车相同的价格租用更大的汽车,在航空公司提供额外或更好的服务,等等。公司愿意提供的任何服务都可以是忠诚度计划中提供的服务。该系统的模型如图所示。 四、在目前的研究中,所提出的模型在应用程序中实现。通过将其应用于皇家和忠诚的模型作为案例研究的应用案例研究检查应用程序如何工作。该模型的优点和缺点是使用案例研究确定的。给出了一组测试用例,将模型的约束条件以英文句子的形式表示出来,然后将英文句子转换为OCL规范。5. 该模型所提出的基于MDA的模型自动将英语句子中形成的系统约束转换为OCL规范。该模型采用英语句子和UML类模型,并给出了OCL规范。所提出的模型使用SBVR桥接英语元素到OCL元素。对输入的英语句子进行分析,提取英语元素,并将其转换为商务词汇和规则。然后将业务词汇表和规则转换为OCL表达式。生成表3a-3c中呈现的两组映射规则图5所示的模型包含三个主要的分析,包括:词汇分析、句法分析和语义分析。5.1. 阶段1:词法分析词法分析包括六个步骤。在第一步中,输入英语句子的某些部分被更改。例如,删除了情态短语,将“not more than“改为”at most“。在接下来的两个步骤中,由Stanford Tokenizer和POS tagger对改变后的句子进行分词和标记。在第四步中,使用词性标记将英语句子分割成单句.此外,在该步骤中,去除重复的单句和不能从中提取业务规则的单句。 在接下 来 的 第 五 步 中 , 从 每 个 单 句 中 提 取 名 词 、 形 容 词 、ValuedRangeQuantifiers、SignIntegratedWithAnds、字符串和数字元素。在最后一步,提取的元素被词元化。词形化是一种自然语言处理任务,用于将相关元素分组并将相关元素作为单个项目进行分析。5.2. 第二阶段:语法分析输入英语句子的句法分析包括九个步骤。在第一步中,提取UML类模型的元素,例如类、属性、端点、数据类型和数据元素。在第二步中,从英语句子中提取的名词和形容词被映射到从UML类模型中提取的元素。从词法分析中提取的ValuedRangeQuantifiers、SignIntegratedWithAnds、字 符 串 和 数 字 元 素 以 及 映 射 的 元 素 保 存 在 名 为elementArray的数组中。在第三步中,识别英语子部分,例如IsPropertyOfSign、Posses-siveDeterminer和PrefixElement。在第四步中,选择一些元素作为主实 体 。如 果 一 个 元 素 不 是 数 据 类 型 , 在 IsProp-ertyOfSign 的 右 边 , PossessiveDeterminer 的 左边,PrefixElement的左边,这个元素是一个主实体。在第五步中,主要元件之间的拼接器是表3a映射规则。规则Rule1英语元素需要动词是符号属性英语范例必须SBVR元件必要性原子配方OCL元件约束Rule2客户名称客户卡客户卡AttributeCallExpNavigationCallExp收集OCL示例context.. . 投资者:customer.namecustomer.cards客户->收集(c| c.cards)规则3拥有决定因素客户客户客户规则4前缀元素有效客户卡有效客户卡customer.namecustomer.cards客户->收集(c| c.cards)AtomicFormulationAttributeCallExpcustomerCard.valid选择customerCard->select(s|s.valid)规则5前缀元素银cardColor银色cardColor等价布尔cardColor=color::silver选择cardColor->select(s|S=color::silver)规则6及物动词b/系动词客户有names客户有姓名AtomicFormulationAttributeCallExp customer.name收集客户->收集(c| c.name)规则7介词连词交易与积分交易AtomicFormulationAttributeCallExp transaction.point收集transaction->collect(c| c.点)20S. Salemi等人图4皇家和忠诚模型。specified.如果一个单句只有一个主要实体,就不需要指定任何拼接器。但是,如果一个句子有两个主要实体,那么这两个主要实体之间的拼接器是特定的。此外,必须确定拼接器这 两 个 主 要 实 体 之 间 的 关 系 是 关 系 或 限 制 器 关 系 。Relationship使用一个普通动词(如“每个服务都有一个服务级别”)连接两个实体。RestrictorRelationship使用表3b映射规则。规则英文元素英文示例SBVR元素OCL元素OCL示例规则8数字28数字数字文字表达式28规则9名词(映射到元素/名称)银色目标可变颜色::silver颜色color规则10 名词(映射到属性/原子点数AttributeCallExp交易点结束)所有者制剂NavigationCallExp customerCard. 所有者规则11名词(映射到类)服务对象类型UMLElement(类)服务燃烧OclIsTypeOf事务.OclIsTypeOf(燃烧)刻录选择事务->select(s| s.OclIsTypeOf(燃烧))service->size()规则12 SignIntegratedWithAnd规则13 Sum Of忠诚度账户的积分和loyalty帐号规则14 减去忠诚度账户和忠诚度帐户规则15乘法的忠诚度积分的乘法帐户和忠诚度账户规则16划分忠诚度帐户和忠诚度帐户的积分的划分loyalty帐号数量添加忠诚度帐户。点+loyalty账号数量减法忠诚度帐户。点-loyaltyAccount.number数量乘以loyaltyAccount.points*loyaltyAccount.numberQuantity DivisionloyaltyAccount.points/loyaltyAccount.number规则17标志规则18 年龄小于28数量小于28规则19是大于年龄大于28数量更多年龄>28规则20 IsAtLeast年龄至少为28数量AtLeast年龄>=28规则21 IsAtMost年龄最大为28数量AtMost年龄=28规则22Str规则23无条件量化器(有条件)客户有一个名称,该名称可能为notEmptycustomer.name->notEmpty()规则24UniversalQuantifier有效的所有客户卡UniversalForAll客户卡-> forAll(f| f.valid)规则25 IsOrders OrEquals年龄为28数量年龄=28Name isNameis'Samin' Equivalence选择name->select(s)|s='samin')年龄是28数量选择年龄->选择(s| s=28)规则26AtMostN忠诚度帐户在AtMostN中最多有三个点AtMostloyaltyAccount.points<=3规则27 AtMostOneloyaltyAccount最多有一点AtMostOne AtMostloyaltyAccount.points<=1规则28 AtLeastNloyaltyAccount至少有三点AtLeastN AtLeastloyaltyAccount.points>=3增加OCL可用性的模型转换框架21(接下页)表3c映射规则。规则规则33Rule34英语元素ExactlyNExactlyOneValuedRangeQuantifierNegationElement英语范例loyaltyAccount有三点loyaltyAccount正好有一个点点是3和5之间SBVR元件ExactlyNExactlyOneNumericRange逻辑否定OCL元素OCL示例注册loyaltyAccount.points=3注册loyaltyAccount.points=1和点>3和点5规则35服务1不是服务2商家不得有任何帐户客户卡不包括会员不isEmpty不包括not(service1= service2)membership.account->isEmpty()customerCard->excludes(memebrship.card)规则36 BinaryLogicalOperation规则37 和忠诚度计划和客户可以有一个名称连接和规则38 或忠诚度计划或客户可以具有名称Disjunction或规则39 条件如果客户customerCard意蕴意味–loyaltyProgram.name->notEmpty()和customer.name->notEmpty()loyaltyProgram.nam->notEmpty()或customer.name->notEmpty()顾客。18岁意味着顾客。customerCard->isEmpty()表3b(续)规则英语元素英语范例SBVR元件OCL元件OCL示例规则29AtLeastOneloyaltyAccount至少有一个积分存在主义notEmptyloyaltyAccount.points->notEmpty()规则30MoreThanNloyaltyAccount有三点以上数量更loyaltyAccount.points>3规则31LessThanNloyaltyAccount只有不到三分数量少loyaltyAccount.积分322S. Salemi等人提高OCL可用性的模型转换框架23图5En2OCL模型。并 列连 词 (CC ) 、 介词 连 词( IN ) 、 过去 分 词动 词(VBN)、wh限定词(WDT)、wh代词(WP)、所有格wh代词(WP$)或wh副词(WRB),如"恰好一个服务由程序合作伙伴拥有“。在第六步中,表3a-3c中给出的映射规则用于从保存在elementArray中的元素和拼接器生成SBVR词汇表。在第七步中,使用Stanford类型依赖分析器识别提取元素之间的类型依赖Left/right hand side元素是位于动词或介词连词的左/右侧的元素。在第九步骤中,确定接合器是主动的还是被动的。如果接合器是主动动词或介词连词,则接合器具有主动语态。但是如果接合者是被动动词,那么接合者就有被动语态。5.3. 第三阶段:语义分析语义分析部分包括七个步骤。在第一步中,指定特征事实类型的角色。 根据表3a-从IsPropertyOfSign映射的特征事实类型的角色是IsProp- ertyOfSign的右元素。从PossessiveDeterminer映射的特征事实类型的角色是PossessiveDeterminer的左元素。此外,此步骤指定每个二元事实类型的状态。 每个二元事实类型有三种可能的状态,包括:没有任何相关限制器的关系,如由计划合作伙伴拥有,具有服务级别“,以及没有任何相关关系的限制器关系,如"客户卡必须至少有一个交易“。在这个步骤中,每个二元事实类型的状态是特定的。fied.指定了二元事实类型的Role1和Role2。在 第二步,识别每个单句的限定词、否定词和二元逻辑元素。 在第三步中,使用表3a-3c中给出的映射规则将提取的元素映射到SBVR元素。 如表3a 条件 是 这一点: ‘‘在此步骤中,为语义公式生成业务规则,涉及:原子公式、量化、逻辑否定和二元逻辑运算。在第四步中,使用表3a在第五步中,OCL子表达式被集成到一个最终表达式中。在第六步中,使用最终的OCL表达式确定UML类模型的哪个类受到约束。这个类被指定为受约束的元素,并作为其上下文元素添加到最终表达式中。 最终表达式和上下文元素生成一个OCL语句。第七步,修改OCL语句。6. 评价模型验证检查模型对真实系统的表示的准确性。为了验证该模型,开发了一个名为En2OCL的Java应用程序,用于表示24S. Salemi等人图6En2OCL应用框架。表4准确度结果。句子类型样本量正确输出不正确输出准确度En2OCLNL2OCLviaSBVREn2OCLNL2OCLviaSBVREn2OCLNL2OCLviaSBVR非常简单36341721994.4447.22简单473610113776.6021.28介质5245374986.5405.77复杂51401115078.4301.96总平均186155123114783.3306.451009080706050403020100非常简单简单En2OCL介质NL2OCLviaSBVR复杂6.1. 精度比较应用程序的准确性进行了测量,并与NL2OCL通过SBVR进行了比较,SBVR是唯一一个将OCL生成为英语句子约束规范的现有工作。这两个应用程序使用186个正确的英语句子进行测试。表4给出了测试结果。图7所示的计算结果显示En2OCL的准确度测量有所改善。6.2. 可用性测量ISO 9241-11建议可用性的测量应包括图7精度比较。在真实的系统中。En2OCL应用程序有两个输入:一个英语句子和一个UML类模型。然后,应用程序使用第一组映射规则从英语句子中生成业务词汇和规则。然后,应用程序使用第二映射规则从业务词汇表和规则生成OCL规范。图6示出了应用程序的框架。输入的英语句子是从Royaland Loyal模型中提取的测试用例。测试案例呈现了皇家和忠诚系统的约束。英语句子分为四类:非常简单,简单,中等和复杂。三个因素包括:有效性、效率和满意度。在这项研究中,效率因素是用节省精力和节省时间的项目来衡量的。有效性因素使用可写性及置信度项目计量。使用易用性和舒适性项目测量满意度(Bajwa,2012; Sto?rle 2013)。这三个可用性因素是使用调查测量的。我们将用户分为两类:20名中等用户,他们对OCL有中等的了解; 20名专家用户,他们是OCL的专家。十个英文句子及其相应的OCL规范已准备好供用户使用。用户尝试在三种状态下生成OCL语句:手动、使用NL 2 OCL- viaSBVR和使用En 2 OCL。表5对比显示,表5用户响应(手动)。用户类型样本量E省电省时写性信心易用性舒适介质202.451.952.802.802.401.55专家202.952.852.102.503.653.45平均2.702.402.452.653.032.5094.4486.5476.678.4347.2221.285.771.96提高OCL可用性的模型转换框架25总用户543210省力节 省 时间的可写性信心、易用性和舒适性使用En2OCL通过SBVR手动使用图8:总用户图8总用户中的可用性比较。使用En2OCL比手动书写在六个项目上有改进。比较还显示,使用En2OCL比使用NL2OCL通过SBVR在可写性、置信度、 省力和省时方面 有所改进。 与使用NL 2 OCL-viaSBVR相比,使用En 2 OCL没有任何舒适性改善。使用En2OCL的易用性低于使用NL2OCL(通过SBVR)。图8显示了总用户的可用性比较。7. 结论众所周知,八达通卡是出了名的难。研究表明,无论是在工业界还是学术界,许多建模者都在与OCL作斗争,因为使用这种语言需要OCL的先验知识。这些障碍导致了OCL的低可用性,并因此导致了OCL在工业中的低采用率。现有的一些基于MDA的作品,其源模型是自然语言。然而,这些现有作品中只有一个支持OCL。另一方面,有一些现有的作品OCL生成。只有两个现有的作品生成OCL作为约束规范。第一个是COPACABANA,这是一个基于模式的OCL生成器工具,第二个是NL2OCLviaSBVR,这是一个基于MDA的OCL生成器工具。这两种工具有一些局限性,如表2所示。因此,本研究提出了一种基于MDA的模型,用于将英语句子中形成的系统约束自动转换为OCL规范。为了验证所提出的模型,所提出的模型在一个名为En2OCL的应用程序中实现,然后将En2OCL与NL2OCLviaSBVR进行了比较,后者是现有的唯一一个基于 MDA 的 从 英 语 句 子 生 成 OCL 的 工 作 。 结 果 表 明 ,En2OCL能明显提高测量精度。此外,OCL可用性的测量是使用三种状态的调查来测量的,包括:手动书写、使用NL2OCLviaSBVR 和 使 用 En2OCL 。 可 用 性 测 量 表 明 ,En2OCL比手动编写OCL规范的可用性有所改善。En2OCL通过SBVR比NL2OCL改善了有效性和效率这两个可用性因素。确认马来西亚理工大学(UTM)和马来西亚教育部在研究型大学补助金00M19和01G72下,特此感谢在本研究工作过程中使用此外,本文件是在“2014年支持摩拉维亚-西里西亚地区研究和发展DT 1 -研究小组“项目(RRC/07/2014)的框架内阐述的由摩拉维亚-西里西亚地区预算供资。引用Akehurst , D.H. , Boardbar , B. , 埃 文 斯 , M. , Howells ,W.G.J.,和McDonald-Maier,K.D. 2006. SiTra:Java中的简单转换。第九届模型驱动工程语言和系统国际会议(LNCS),351Amdouni,S.,卡拉,W.B.A.,和Bouabid,S.,2011. UML类图自动 生成 的需求 语义 标注 。 Computing Research Repository(CoRR)。abs/ 1107.3297。巴杰瓦岛2012.自然语言处理方法生成SBVR和OCL。伯明翰大学.Fliedla , G. , 科 帕 角 , Mayra , H.C. , Salbrechtera , A. ,Vohringera,J.,Webera,G.,等,2007.使用复杂的标记从软件需求中导出静态和动态概念。数据知道Eng.61(3),433-448.吉拉尼匿名戒酒协会和Usman,M.,2010年。模型驱动架构中的模型转换参加:IEEE第二届教育技术与计算机国际会议(ICETC),中国上海。3.953.72.73.983.832.43.952.92.454.43.12.6543.034.14.184.182.5表6用户响应(使用NL2OCLviaSBVR)。用户类型样本量E省电省时写性信心易用性舒适介质203.753.953.003.204.104.25专家203.653.702.803.004.1
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功