双向工程

✍ dations ◷ 2025-11-06 02:31:23 #双向工程

双向工程(Round-trip engineering)简称RTE,是同步二个或多个相关软件工件(例如程式码、模型、组态档案及文件)的软件开发工具机能。要进行双向工程的原因是因为相同的资料会出现在多份工件上,若只更新了其中一份工件的资料,另外工件中的对应资料没有更新,就会有各工件不一致的问题。

双向工程和传统的软件工程作法有紧密的关系,例如顺向工程(从已有的规格产生程式码及软件)、逆向工程(从已有的软件产生程式码及规格)及代码重构(了解程式码并且修改)。常有人将双向工程错误的定义为同时支援顺向工程及逆向工程而已。双向工程的主要特点可以是在一个已有软件工件有变更时,同时的同步其他对应的工件,其作法是逐步的在其他工件中加入对应原工作修改的内容。顺向工程可以视为是一种已有规格的特殊双向工程,逆向工程则是可以视为是已有软件的特殊双向工程。许多reengineering的工作也可以视为是双向工程,用之前逆向工程得到的规格,其中进行修改,再修改软件,和规格同步。

双向工程的另一个特点是自动侦测工件中的不一致,自动更新工件。若以这个定义来看,双向工程就和顺向工程及逆向工程不同了,顺向工程及逆向工程可能是人工进行的,也可能是自动的(例如分析规格,自动产生程式码)。自动更新的过程可以是即时的,也可以是在有需求时更新。若是即时的双向工程,在工件变更之后其他工作的对应部分也都会自动更新。若是在有需求时更新的双向工程,工件的作者们可能是同时变更这些工件,其中某个时间比较工件,识别不一致之处,选择要保留的内容,并且避免可能出现的冲突。

双向工程支援迭代式的开发流程。在模型和工件同步后,可以选择继续修改程式,或是修改模型。可以进行任意次数、任意方向的同步。

最常见的双向工程例子可能是在UML(统一建模语言)模型以及其对应程式码之间的同步。许多商用软件以及研究用的原型工具支援这类的双向工程,例如Rational Rose(英语:Rational Rose)、Micro Focus Together(英语:Micro Focus Together)、ESS-Model、BlueJ(英语:BlueJ)及Fujaba等,Fujaba软件的文件中有提到软件可以识别设计模式。一般而言,针对UML的类别图,可以支援一定程度的双向工程,不过像是关联(association)及组合(containment)等UML概念,在许多编程语言中没有直接对应的表示方式,因此限制了直接建立对应程式码的能力,也影响程式码分析的准确度(例如,不容易识别出程式中的组合概念)。2005年在Microsoft Visual Studio上的一本书中,有指出RTE工具的常见问题,其中一个是所留下的模型会和原有的模型不同,只有透过在工具中的许多标示后,才能让两者同步。UML有关行为的部分对双向工程的挑战更大。

另一种比较可以追踪的双向工程是在框架应用程序接口(API)下的双向工程,有模型描述应用程序应用API的方式,会和应用程序的程式码同步。此应用下,API规定了所有应用程序应用此框架的方式,可以准确及完整的侦测API的使用情式,并且合成实现此用法的程式。此领域的双向工程软件中,有二个主要的软件,是框架定义建模语言(英语:framework-specific modeling language)及Spring Roo(英语:Spring Roo)。

在对象管理组织(OMG)的模型驱动架构(MDA)中,要在不同模型之间维持一致,并且在模型和程式码中维持一致,双向工程是其中的关键。对象管理组织提出了QVT(英语:QVT)(查询/浏览/转换)标准来处理MDA中要求的模型转换。到目前为止,只实现了标准中的部分内容。

以统一建模语言(UML)为基础的双向工程需要三个基本的软件开发元素

以下是一个以网站为基础的开源简易双向工程工具:

相关

  • 伯纳德·巴鲁克伯纳德·巴鲁克(英语:Bernard Mannes Baruch 1870年8月19日-1965年6月20日)美国金融家、股票投资商、慈善家、政治家。曾在美国总统伍德罗·威尔逊和富兰克林·罗斯福手下担任
  • 约瑟夫·玛罗德·威廉·特纳约瑟夫·玛罗德·威廉·特纳(英语:Joseph Mallord William Turner,1775年4月23日-1851年12月19日),简称J·M·W·特纳(J. M. W. Turner)或威廉·特纳(William Turner),又译透纳,英国浪漫
  • 热凝胶多糖热凝胶多糖,又名可得然胶、卡德兰,是一种β-1,3-葡聚糖,是由葡萄糖组合而成的高分子聚合物。它包含了β-(1,3)-葡萄糖的残余物,并可经于其所构成的似水悬浮液中加热,形成具有弹性
  • 达尔汉达尔汉(满语:ᡩᠠᡵᡥᠠᠨ,穆麟德:;1590年-1644年),清初将领。郭络罗氏。初隶镶黄旗满洲,后改隶正蓝旗满洲。扬书之子,母沾河姑,舅舅是太祖努尔哈赤。太祖时,随其父扬书率部归附后金,任牛
  • 橙草橙草(Orangegrass)是一支台湾的摇滚乐团,来自台北,成立于2004年。现由克拉克(主唱兼吉他手)、小蓝(贝斯手)、鸟人(鼓手)三人组成。橙草成立于2004年,由克拉克(钟礼学)、阿白(白盛方)、阿汤(
  • 约翰·伯奇约翰·伯奇(英语:John Burgee,1933年8月28日-)是一位美国后现代主义建筑设计师。伯奇在1967年到1991年与另一位著名的美国建筑师菲力普·强生合作,共同创立强生/伯奇建筑设计事务
  • 东宝月历东宝月历(日语:東宝カレンダー)是东宝株式会社每年制作及发售的月历,一般在每年10月开始发售来年的月历。东宝早于1950年代开始发售月历,同时作为商业宣传手段之一。后来,这种宣传
  • 哈姆拉古尔·图尔松库洛维奇·图尔松库洛夫哈姆拉古尔·图尔松库洛维奇·图尔松库洛夫(俄语:Хамракул Турсункулович Турсункулов,乌兹别克语:Tursunqulov Hamroqul,1892年2月29日(3月12日
  • 胡利奥·罗萨莱斯胡利奥·罗萨莱斯·伊·拉斯(英语:Julio Rosales y Ras,1906年9月18日-1983年6月2日),红衣主教,是菲律宾天主教主教团主席、天主教宿务总教区大主教。
  • 吉大港加工出口区坐标:.mw-parser-output .geo-default,.mw-parser-output .geo-dms,.mw-parser-output .geo-dec{display:inline}.mw-parser-output .geo-nondefault,.mw-parser-output .geo-multi-punct{display:none}.mw-parser-output .longitude,.mw-parser-output .latitude{white-space:n