CN1656447A - 在corba环境中保证uml模型与其实现之间链接的软件开发工具 - Google Patents
在corba环境中保证uml模型与其实现之间链接的软件开发工具 Download PDFInfo
- Publication number
- CN1656447A CN1656447A CNA038115913A CN03811591A CN1656447A CN 1656447 A CN1656447 A CN 1656447A CN A038115913 A CNA038115913 A CN A038115913A CN 03811591 A CN03811591 A CN 03811591A CN 1656447 A CN1656447 A CN 1656447A
- Authority
- CN
- China
- Prior art keywords
- interface
- model
- class
- uml
- unified modeling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明包括,除了使用链接以生成具有CORBA特性的实现代码(M1),根据每个接口类和实现类之间存在的UML关系,从UML接口模型(MA)自动装备UML实现模型。本发明还涉及服务器应用程序的转换和代码插装,并且还涉及客户应用程序的转换和代码插装。
Description
技术领域
本发明涉及用于保证CORBA接口的UML模型与其实现之间链接的软件开发工具。
背景技术
UML代表统一建模语言。
CORBA代表公共对象请求代理结构。
IDL代表接口描述语言。
UML语言提供用于指定软件系统并描述这些系统的模型的有效手段。一些软件工厂(workshop),换句话说,软件应用程序开发工具,允许从UML模型开始的代码生成。
为了开发基于CORBA和根据UML处理的分布式系统,必须定义至少两个模型,一个模型用于指定IDL接口,并且另一个模型用于定义它们的实现。
软件工厂提出描述两类模型和根据它们的模型生成IDL代码和代码实现的解决方案。
但是不能够将这些工具用于装备UML接口模型,以便与UML实现模型创建链接,并且这两个模型保持完全独立。这要求应当生成不包括系统的特定CORBA特征的实现代码。
在分布式系统的IDL接口的UML模型与该系统的实现的UML模型之间建立链接的仅有解决方案如下:
-从UML模型生成接口IDL代码;
-用ORB(对象请求代理)编译这些接口;
-利用反向工程阶段,从所生成的代码获得实现的UML模型。
如上所描述的解决方案只是对于该问题的部分解决方案,因为它仅链接了UML模型,并且其不能够用于装备UML接口模型,以便生成涉及这些接口的实现代码。
另外,该解决方案极其依赖于从所生成的代码开始的反向工程阶段的质量。这种阶段的手动执行能够保证好的质量,但是其效率相当低,并且利用软件工厂的自动处理尚无法提供所需的质量,并且要求对所获得的模型进行手动反馈。
另一个缺点是因为以下事实,通过该解决方案接口模型和实现模型之间不存在相关性。因此,在UML模型接口中的任何变化(甚至较小)都难以传递到实现模型。
发明内容
本发明包括,首先使用在每个接口类和其实现类之间存在的UML关系,从UML接口模型自动装备UML实现模型,其次使用该链接以便生成具有CORBA特定特征的实现代码。
本发明适用于服务器应用程序的转换(transformation)和代码插装(instrumentation),并且也适用于客户应用程序的转换和代码插装。
因此,本发明还涉及一种保证CORBA接口的UML模型与客户实现之间链接的软件开发工具。
应更加注意,为利用UML语言开发CORBA环境中的分布对象系统,必须至少定义以下两个模型:
-被称为分析模型的模型,其中接口及其与其它高层类的关系描述该应用程序;
-被称为实现模型的模型,其中提及所有应用程序类。在该模型中增加了大量技术类。
因此,根据本发明的另一特点,提出了保证从分析模型开始的UML实现模型之间的链接。
还应注意,“CORBA Messaging”文档(包含于CORBA 2.4规范)提供了四种不同的模型,以便调用对客户的接口,即:
-同步(或双向)调用;
-单向调用;
-具有“回叫(callback)”模型的异步调用;
-具有“轮询(polling)”模型的异步调用。
异步调用需要特定类的实现,以便处理响应。
因此,根据本发明,提出了在类(或方法)和接口之间为异步调用定型UML“use”关系。
关于该使用关系的UML标签指定该异步关系的特点,可为“回叫”或“轮询”。
因此,我们将从分析模型开始自动构造实现模型。如下所示,这将包括,根据CORBA 2.4特定特征和C++语言,从接口生成被称为“回叫”或“轮询”的类。我们还将基于CORBA 2.4特定特征和C++语言,生成对应的代码。
本发明的目的是一种包括用于设计统一建模语言接口对象并以接口描述语言生成所述对象的装置的软件开发工具,其特征在于包括:
用于设计统一建模语言实现对象并生成对应的实现源代码(C++)的装置;
其特征还在于:早在设计阶段就将统一建模语言接口对象和统一建模语言实现对象链接起来。
根据另一个特点,通过在每个接口类和对应的实现类之间存在的UML关系,UML实现对象和UML接口对象得以链接,将该链接用于生成具有CORBA特定特征的实现代码。
UML接口对象是指定分布式系统的IDL(接口描述语言)接口的模型,并且另一对象定义它们的实现。
该UML接口对象是分析模型,其中接口和它们与其它高层类的关系描述客户应用程序,另一对象是实现模型,其中提及所有应用程序类。
附图说明
参考附图阅读对于以下作为非限制性示例而给出的描述,本发明的其它特定特点和优点将会更加清楚,其中:
图1是说明用于从分析模型开始实现接口的类的转换和代码插装的开发工具的图示;
图2图示了客户应用程序的分析模型;
图3图示说明用于图2中所示客户应用程序的转换和代码插装的开发工具。
具体实施方式
根据本发明,提出使用每个接口类和其实现类之间存在的UML关系、自动装备从UML接口模型(在图1中示为标号MA)开始的UML实现模型。还提出使用该链接以便生成具有CORBA特定特征的实现代码。
如在CORBA配置文件的UML中的OMG(对象管理组)所定义的,在UML模型中,必须用定型的“CORBA”接口类对IDL接口进行描述。
我们将利用在接口和对应的实现类之间的UML“realize”链接(实现链接)做上述工作。该链接自动地将涉及IDL接口描述的实现方法关联起来。
对于在IDL接口中定义的每个操作,在对应的实现类中自动生成一个具有相同名称和正确签名的方法。在实现类中对于IDL接口的每个属性定义了两种访问方法,以便建立和获取该属性值。
本发明同样适用于服务器应用程序和客户应用程序。
图1表示一个服务器应用程序的例子。该图中的图示说明了一个类的转换和代码插装,该类实现了从分析模型MA开始的“Stream”接口。
根据该图中所示的特定示例,利用各类之间的链接自动增加“StreamImplementation”实现类和其签名。
本解决方案还包括修改实现类代码的生成,以便考虑CORBA的特定特征。例如,生成器自动管理命名空间、签名和来自模型的CORBA对象继承。
在前面的例子中,如果“stream”接口属于CORBA“Messaging”模块,则C++中所生成的“StreamImplementation”类从“∷POA-Messaging∷Stream”类继承。
对于前面例子中的模型,生成的C++代码如在说明书附录中所述。
本发明以下还将对客户应用程序的分析模型MA进行描述。在图2中对客户应用程序的分析模型进行说明,并且图3示出该客户应用程序的转换和代码插装以便确定客户将如何使用接口。
如上所述,分析模型中的接口和其与其它高层类的关系描述应用程序。
两个类之间或方法和类之间的UML“use”关系意味着该方法(或该类中的方法)使用所指示的类。如果该所指示的类是定型的CORBA接口,则该方法使用一个接口。
因此,提出通过在UML“use”关系中增加被称为“异步(asynchronous)”的定型,定义将如何在分析模型中使用(同步或者异步)该接口。“异步”定型与被称为“回叫模型”或“轮询模型”的UML标签一起使用。该标签表示如何建立实现模型。
对于单向和双向调用,分析模型和实现模型MI之间没有区别。C++生成代码必须简单地将对应的“stub”(对应元素)内容添加到使用该接口的类体之中。
例如,如图2所示,分析模型示出类“MyClient”的方法m()使用被称为“MyInterface”的接口。在该链接上,“异步”定型使用“回叫模型”标签,以便指定使用“MyInterface”接口的方式。
该链接提供一种利用如CORBA Messaging标准所定义的对应方法自动地修改UML模型和生成“ReplyHandler”类的手段。
在利用“轮询”模型的异步调用情况下,提出在“use”链接上添加“Corba:ami_poller”定型,并且为该“回叫”模型添加“Corba:aim_callback”定型。
用该信息,UML模型包括了足够的信息以便修改实现模型。
根据CORBA Messaging特定特征,类必须包括在新UML模型中。通过实现链接,将这些类与它们的接口链接,以确保两个模型之间的一致性。
包括所定型的“异步”“use”关系的定型的“CORBAInterface”类将一个选项添加到IDL编译器,以指定它必须利用所添加的“Messaging”模块生成框架和具体“stub”,以便生成IDL代码。
类使用“nocode”和“AMIPoller”或“AMIHandler”标签,以便实现C++代码的生成。
使用标签以便C++代码的生成能够考虑由OMG出版的“CORBAMessaging mapping for C++”文档所指定的规则和语法。
附录
Class StreamImplantation:public∷POA-Messaging∷Stream { void read( char*_out msg, Messaging∷Stream_out replyStream) {...}; void write( const char*msg, {...}; void*channel() {...}; void channel( const char*value, {...}; };
Claims (4)
1.一种包括用于设计统一建模语言接口对象并以接口描述语言生成所述对象的装置的软件开发工具,其特征在于包括:
用于设计统一建模语言实现对象并生成对应的实现源代码(C++)的装置;
其特征还在于:早在设计阶段就将统一建模语言接口对象和统一建模语言实现对象链接起来。
2.根据权利要求1的软件开发工具,其特征在于通过在每个接口类和对应的实现类之间存在的统一建模语言关系将统一建模语言实现对象和统一建模语言接口对象链接起来,该链接用于生成具有CORBA特定特征的实现代码。
3.根据权利要求1或2的软件开发工具,其特征在于一个统一建模语言接口对象是指定分布式系统的接口描述语言接口的模型,并且另一个对象定义它们的实现。
4.根据权利要求1、2或3的软件开发工具,其特征在于该统一建模语言接口对象是分析模型,其中接口和它们与其它高层类的关系描述客户应用程序,并且另一对象是实现模型,其中提及所有应用程序类。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR02/06287 | 2002-05-23 | ||
FR0206287A FR2840089B1 (fr) | 2002-05-23 | 2002-05-23 | Outil de developpement logiciel pour assurer des liens entre les modeles ulm et leur implementation en environnement corba |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1656447A true CN1656447A (zh) | 2005-08-17 |
Family
ID=29286628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA038115913A Pending CN1656447A (zh) | 2002-05-23 | 2003-05-20 | 在corba环境中保证uml模型与其实现之间链接的软件开发工具 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20050132326A1 (zh) |
EP (1) | EP1365320A1 (zh) |
JP (1) | JP2005527039A (zh) |
CN (1) | CN1656447A (zh) |
FR (1) | FR2840089B1 (zh) |
WO (1) | WO2003100604A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442224C (zh) * | 2006-01-11 | 2008-12-10 | 大同股份有限公司 | 将硬件元件图转换为硬件描述语言的方法 |
CN100465884C (zh) * | 2006-01-13 | 2009-03-04 | 大同股份有限公司 | 高级语言的函式转换为硬件组件图的方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8365135B2 (en) | 2005-10-27 | 2013-01-29 | International Business Machines Corporation | Computer method and apparatus for connection creation in a software modeling system |
US20090125892A1 (en) * | 2005-11-18 | 2009-05-14 | Robert Arthur Crewdson | Computer Software Development System and Method |
EP2147371A1 (en) * | 2007-03-16 | 2010-01-27 | International Business Machines Corporation | Method, system and computer program for distributing customized software products |
US8271934B2 (en) * | 2007-06-14 | 2012-09-18 | International Business Machines Corporation | Developing software applications with increased modularity |
US8291374B2 (en) * | 2007-11-05 | 2012-10-16 | Cullum Owen H G | System and method for generating modified source code based on change-models |
US8656349B2 (en) * | 2008-03-07 | 2014-02-18 | Sap Ag | Systems and methods for template reverse engineering |
US8448132B2 (en) * | 2009-05-07 | 2013-05-21 | Sap Ag | Systems and methods for modifying code generation templates |
US8719770B2 (en) | 2010-09-09 | 2014-05-06 | International Business Machines Corporation | Verifying programming artifacts generated from ontology artifacts or models |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000076070A (ja) * | 1998-08-31 | 2000-03-14 | Toshiba Corp | クライアントサーバシステムおよびそのシステムを実現するためのコンポーネント連携プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6675227B1 (en) * | 2000-06-05 | 2004-01-06 | International Business Machines Corporation | Method for providing a service implementation for both EJB and non-EJB environments |
US6973640B2 (en) * | 2000-10-04 | 2005-12-06 | Bea Systems, Inc. | System and method for computer code generation |
EP1195677A1 (en) * | 2000-10-06 | 2002-04-10 | Abb Research Ltd. | Dynamic class loading |
JP2002132739A (ja) * | 2000-10-23 | 2002-05-10 | Nec Corp | スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体 |
US7610588B1 (en) * | 2000-10-27 | 2009-10-27 | Global 360, Inc. | Distributed application management software |
IE20010964A1 (en) * | 2000-11-03 | 2002-05-29 | Wilde Technologies Ltd | A software development process |
-
2002
- 2002-05-23 FR FR0206287A patent/FR2840089B1/fr not_active Expired - Fee Related
-
2003
- 2003-05-20 CN CNA038115913A patent/CN1656447A/zh active Pending
- 2003-05-20 JP JP2004507991A patent/JP2005527039A/ja active Pending
- 2003-05-20 EP EP03291175A patent/EP1365320A1/fr not_active Withdrawn
- 2003-05-20 WO PCT/FR2003/001511 patent/WO2003100604A1/fr active Application Filing
- 2003-05-20 US US10/513,475 patent/US20050132326A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442224C (zh) * | 2006-01-11 | 2008-12-10 | 大同股份有限公司 | 将硬件元件图转换为硬件描述语言的方法 |
CN100465884C (zh) * | 2006-01-13 | 2009-03-04 | 大同股份有限公司 | 高级语言的函式转换为硬件组件图的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2003100604A1 (fr) | 2003-12-04 |
US20050132326A1 (en) | 2005-06-16 |
FR2840089B1 (fr) | 2004-08-27 |
EP1365320A1 (fr) | 2003-11-26 |
FR2840089A1 (fr) | 2003-11-28 |
JP2005527039A (ja) | 2005-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1249601C (zh) | 用于远程web服务克隆和实例化的系统和方法 | |
US7293253B1 (en) | Transparent interface migration using a computer-readable mapping between a first interface and a second interface to auto-generate an interface wrapper | |
US6182155B1 (en) | Uniform access to and interchange between objects employing a plurality of access methods | |
CN1313920C (zh) | 一种基于统一构件封装件结构的构件组装方法 | |
CN1656447A (zh) | 在corba环境中保证uml模型与其实现之间链接的软件开发工具 | |
CN1534456A (zh) | 类型桥 | |
CN1776610A (zh) | 用于把同步接口转换为异步接口的设备、系统、和方法 | |
CN101046810A (zh) | 自动建立关系模型的系统及其方法 | |
CN1746844A (zh) | 一种跨操作系统平台的机群系统监控和管理方法 | |
CN1925406A (zh) | 管理异构高可用性集群的方法和服务器 | |
CN1270229C (zh) | 基于动态内核实现跨地址空间创建构件对象的方法 | |
JP2009238230A (ja) | コンポーネント基盤環境下で拡張されたメタデータを利用したソフトウェア開発方法及びその開発システム | |
CN101056429A (zh) | 通用业务系统及其实现方法 | |
CN1790343A (zh) | 产生接口代码以使用企业信息系统的服务的方法和系统 | |
CN1992725A (zh) | 用于web服务面向消息的构建的方法与系统 | |
CN1264090C (zh) | 调用构件对象功能的智能指针的封装方法 | |
CN1207662C (zh) | 基于多代理的交互式Web服务调度方法 | |
CN113434147B (zh) | 基于ProtoBuf协议的消息解析方法及装置 | |
US7831958B2 (en) | Systems and methods for distributing updated information | |
CN1956445A (zh) | 一种面向Web服务的门户组件的实现方法 | |
CN1932766A (zh) | 面向串行程序代码量大的领域的半自动并行化方法 | |
CN1251079C (zh) | 实现不同系统之间数据交互的方法 | |
CN1684033A (zh) | 智能仪表界面自动生成方法 | |
CN1900905A (zh) | 测试描述语言的实现方法及其装置 | |
US7934193B2 (en) | Processing a module specification to produce a module definition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20050817 |