CN1656447A - 在corba环境中保证uml模型与其实现之间链接的软件开发工具 - Google Patents

在corba环境中保证uml模型与其实现之间链接的软件开发工具 Download PDF

Info

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
Application number
CNA038115913A
Other languages
English (en)
Inventor
斯特方·希斯什波尔蒂什
埃米莉·萨亚格
卢多维克·德皮特勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel CIT SA
Alcatel Lucent NV
Original Assignee
Alcatel NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alcatel NV filed Critical Alcatel NV
Publication of CN1656447A publication Critical patent/CN1656447A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-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模型与其实现之间 链接的软件开发工具
技术领域
本发明涉及用于保证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的软件开发工具,其特征在于该统一建模语言接口对象是分析模型,其中接口和它们与其它高层类的关系描述客户应用程序,并且另一对象是实现模型,其中提及所有应用程序类。
CNA038115913A 2002-05-23 2003-05-20 在corba环境中保证uml模型与其实现之间链接的软件开发工具 Pending CN1656447A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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