CN1254879A - 往返式软件设计的方法与装置 - Google Patents

往返式软件设计的方法与装置 Download PDF

Info

Publication number
CN1254879A
CN1254879A CN99123848A CN99123848A CN1254879A CN 1254879 A CN1254879 A CN 1254879A CN 99123848 A CN99123848 A CN 99123848A CN 99123848 A CN99123848 A CN 99123848A CN 1254879 A CN1254879 A CN 1254879A
Authority
CN
China
Prior art keywords
source code
software model
model
software
mid
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.)
Granted
Application number
CN99123848A
Other languages
English (en)
Other versions
CN1199104C (zh
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.)
Computer Partnership Throught Inc.
Original Assignee
PLATINUM TECHNOLOGY KNOWLEDGE PROPERTY CORP
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 PLATINUM TECHNOLOGY KNOWLEDGE PROPERTY CORP filed Critical PLATINUM TECHNOLOGY KNOWLEDGE PROPERTY CORP
Publication of CN1254879A publication Critical patent/CN1254879A/zh
Application granted granted Critical
Publication of CN1199104C publication Critical patent/CN1199104C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • G06F8/355Round-trip engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)

Abstract

本发明是从一软件模型往返设计源码的一种方法,特别是一种以前的正向设计码反向设计成一软件模型的方法。由此产生更新的源码而没有对模型中的不改变的码的任何变化。同时在源码中不使用突出的码标志符,将一个从由模型表示的初始源码来的元素放入元模型,并与软件模型的类似元模型进行比较,在源码中对元素作适当的变化和增加,该元素已在软件模型中改变,软件模型中的剩余码保持不动。

Description

往返式软件设计的方法与装置
本发明涉及软件设计的模型化,特别涉及往返式的软件设计。在该设计中,软件的应用被反向设计在软件的模型中,软件的模型可以改变,同时由软件模型表示的编码可以再编码。
由于不适当的软件设计模型化,应用开发项目一般很难以任何始终成功的形式来提供。很低百分数的重要应用开发项目能及时并在预算以内完成。但随着项目的范围较大增长,机构已开始对应用和相应的子系统分成多个等级,以每个等级独立于其它等级进行开发与运用。这样就可能使应用扩大到企业的水平。随着第三代比较复杂的语言项目的开发,对有效的分析及设计模型化的相应需求就增加了。因而,为了将各种分离的应用组合成单一的大规模的解,就需要对现有的应用加以具体化与理解,而不依赖于开通源码。同时,项目需要采用以单元为基础的开发技术进行再设计以取得各种涌现的对象技术诸如CORBA,Microsoft Active X(OCX)以及World Wide Web的优点。
要求的第一步涉及对现有的开发过程增加面向对象的分析与设计,随着软件的需求日益复杂,就需要一种环境以便用面向对象的定向分析和设计前端来补充第三代生命周期,使应用编程者能够取得可再使用子序列的优点及跟踪项目开发。为此目的,已经开发了许多模型化产品,诸如PlatinumTechnology,Inc.’s Paradigm Plus,此类产品的一个问题是保持与编码同步的设计信息。
如图1所示,要求的性能是保持软件模型2随着变化的源码4而更新,允许产生易于理解的软件设计的图解表示,这一性能已经包括在大多数(如果不是全部的话)目标模型化工具中。没有这一特征,软件模型就必须不论什么时候当编写源码出现变化时要人工更新,这常常导致忘记更新软件模型,同时软件模型相对于要表述的源码就过时了。
如图2的文氏(Venn)图所示,问题由于以下事实而恶化,即软件模型通常仅代表在源码中表示的信息的子集合,而大量的有关项目的存储在软件模型中的元数据不在源码中表示。例如,与其格式化相关的源码中的说明和对象的性质通常都将不在软件模型中包括。在软件模型中表示的将采用的设计原则以及在模型化方法中对象之间的关系将不显含于源码中。
工业中的若干工具已经增加到往返式设计技术上,该技术能够读源码并且使软件模型与源码同步。然而,这些工具依赖于能够将标志符放入源码4中以便定义对应软件模式2的编码区域。这些标志符以大量的标志搞乱了源码,造成读出能力的问题。此外,当标志符之一被开发者删除或偶然地编辑时这一技术易于出错。
本发明要求的一种往返式设计方法,允许软件模型保持与相应的源码或等效目标同步,而无需搞乱码的标志符。
本发明目的是提供一种系统,以保持表示软件应用的软件模型与源码同步,它表示无需任何种类的限定码的部份的源码标志符,该码就是要与软件模型同步的,分析软件应用中的码。同时产生能在软件模型中合并的应用方面的软件模型。然后利用软件模型再产生由软件模型代表的源码,而且任何在软件模型中不表示的源码就会并到从原始码产生的源码。
本发明的上述和其它目的从本说明书的其余部份将很明显。
下面结合附图详细说明本发明及本发明的实施例
附图的简要描述
图1是表示往返式设计工具的总体要求的图。
图2是表述储存在项目源码中的信息和同一项目的软件模式的文氏
(Venn)图。
图3A以举例方式表示一种输出的PB(Power Builder)对象。
图3B表示一旦它已经根据本发明之前已知的双向设计技术,反向设计
与正向设计的图3A的PB(Power Builder)对象。
图4表示根据本发明的第一实施例的往返式设计过程的概貌。
图5表示以举例方式的C++源码样本。
图6表示由图5所示的源码产生的一种元模型。
图7表示在数据库中表示软件模型的表格。
图8表示在数据库中表示软件模型的修改的表格。
图9A表示从图5所示的源码产生的元模型。
图9B表示从图8所示的软件模型产生的元模型。
图9C表示在图9A和图9B中的元模型基础上的一种更新元模型。
图10表示初始合并码。
图11表示终结合并码。
图12表示反向设计(Power Builder)的概貌。
图13表示正向设计的概貌。
详细描述:
如图1所示,此处描述的本发明的实施例涉及软件模型2与项目源码4之间的软件项目的往返式设计,而软件模型与软件能保持同步。
用于阐明实施例的运行并表述在图5-11中的主要的例子以C++程序语言为基础。虽然没有理由,但本发明不能以其它面向对象的语言或其它型式的语言来运行。这将变得很明显,通常目标以专有二进制格式存储的语言常常能够输出到平面文件格式,诸如带所有目标特征的表示的ASCII文本文件,因此目标能够再输入回到应用中。这些应用的例子为Microsoft’sVisual BASIC,Visual C++,Access以及Sybase Power Builder。通常在这些应用中某些模型以任何方式作为平面源码文件被储存,诸如C++.CCP文件和BASIC.bas文件。
软件模型2无需提供所有源码的语言概念,同时通常将为源码中较高水平概念提供模型化,诸如类,属性,操作/方法等等,或者单元之间的数据流模型。源码的许多方面,诸如目标的格式化通常将不存储在软件模型中,但是很重要的是,这些信息在往返式设计中不丢失。例如,从图3A所示的Sybase Power Builder应用中输出的码包括与视窗式级W一类的宽度,高度及位置有关的信息。这些信息一般不包括在软件模型中,如果此码反向设计到软件模型2中,同时使用软件模型自身再创造,产生的码可以具有图3B所示的码的带有在往返中丢失的许多格式化信息的属性。
而且,在其中产生软件模型2的语言将理想地能够模型化各种软件开发语言,因此未必任何模型化的特殊语言将支持所有被模型化语言支持的概念。
因而,提出了由图2中的文氏(Venn)图举例的情况,使用软件模型和软件开发语言共享的公共概念,但是每一个具有的概念不是由另一个所提供。
例如,如果源码语言为C++,软件模型可能提供C++类模型,结构,合并以及具有类似结构的枚举类。虽然枚举类可以看成一种数据型式而不是软件模型中的类,C++的属性根据传递到反向设计装置的选择和码状态可以映射到软件模型属性,组合和/或集合上。附加的信息,诸如“静止”或“恒定”可以相应地标志在操作特性中。全局的方法可以映射到模型化语言中的整体操作上。C++方法可作为模型化语言中的操作进行模型化,同时过载的方法可以给予一个整型ID,该整型串接其名称以便在软件模型中唯一地识别它们。
许多软件模型化产品,诸如Platinum Technology,Inc.’s Paradigm Plus是目前可获得的产品。该产品允许使用各种不同的模式化方法从源码产生软件模型,同时也允许从软件模型产生源码。以下描述本发明的操作假设需要的功能度已经适合于产生这种软件模型并从这些软件模型再产生源码,因此不对软件模型的实际表示编址,除去用于举例。
软件项目的源码4,该源码包括一系列存储于计算机或网络或计算机中的文件。本发明提供一种使用一可行的改进的正向设计系统进行源码往返式设计方法。
如上所述,使用标准技术以产生软件模型,或者增大已经产生的软件模型2。然后软件模型可以被正向设计以产生所示的项目源码。重要的是,当从源码反向设计软件项目时,同时产生的软件模型被正向设计。组合的码应该基本上相同,而不考虑源码中的什么信息在软件模型中表述。这就允许软件项目的适当的“往返式”设计,因此软件模型和源码能保持同步。当从软件模型产生源码时将维持源码和软件二者的更新。反之亦然,在软件模型中不表示的源码的说明和其它特征不往返移动或者甚至在往返过程中消失。
以宽广的范围描述的本发明的特定实施例的往返设计的操作如图4所示。
以正常的方式实行反向设计10,但重要的是。当正向设计12时,现有的源码4与来自软件模型2的数据合并因此产生新的源码8。该源码然后代替现有的源码,对软件模型2中的每一元素识别源码的相应部份,同时在软件模型中已经完成的且不与源码对应的任何变化,附加或删除被结合在新源码8中,而不影响不由软件模型表示的源码的任何部分。
本发明的特定实施例的操作将参照图5-11在下文描述。本发明涉及以任何软件语言正向,反向和往返式设计表示软件的软件模型。实施例操作的一个例子参照C++程序语言而给出。虽然实施例同样可应用于其它程序语言,同时理想地能够运用多种程序语言。本发明决不局限于由C++程序语言使用的结构。本发明主要涉及源码与软件模型中数据的合并,在那里可能保留初始的源码而不依赖码中的标志符,码的实际内容不与本发明有关。
以特殊程序语言写的源码文件40中的源码4反向设计到新软件模型2中或结合到现有的软件模型2中,然后从软件模型2正向设计到源码文件80的新的序列中,或者与现有的源码文件合并而不依赖新的源码文件。反向设计
根据本实施例,反向设计受分析码和转变所有能够由软件模型表示的码的元素成为通用的元模型的影响,例如使用通常用作对软件整体的通用标准表述格式的CASE Data Interchange Format(CDIF),标准的CDIF序列的细节能够从电子工业协会CDIF技术委员会获得。从通用元模型,能够在选择的软件模型中表示码的元素被输出到软件模型中。从元模型输出数据到软件模型中的方法将取决于软件模型和产生的元模型的格式。但在大多数情况中将简单地涉及提供元素的数据库30。本发明的此实施例的软件模型2使用一个包括表22,23,24和25的数据库以表示数据。
软件模型2无需是数据库格式,可以任何一种数据结构存储。在图7所示的数据库中,应用的不同元素由型式分类成具有适当范围的表22,23,24,25以表示元素的全部性质,并且适当对其它相关元素前后参照它们。这些表的格式将主要取决于被表示将被模型化的软件的软件模型来实施的方法而变化。例如,图7所示的软件模型表示类,属性,操作,集和,相互之间的关系以及它们的其它特征。这些结构可以用来表示在许多面向对象的语言中的结构。例如,C++方法可表示成软件模型的操作,型式类(CLASS),结构(STRUCT),合并(UNION)和枚举(ENUM)的C++结构可全部表示成软件模型中的类。软件模型也可以保持与其它软件整体相关的信息诸如目标或整体之间的数据流。图7所示的四个表,每个表保持与类,属性,操作和集合相关的信息。在类表22中X和Y二类给出软件模型用以识别它们的整型识别符。类的其它特征也存储在表中,诸如所谈及的类的源文件和所谈及的类的型式,如类(CLASS)或结构(STRUCT)。由软件模型对每一类所提供的某一域可能不可用于将被模式化的软件语言,并可以使它空着。
属性表23的每一条目具有一个表示属性名称的域,以及拥有的类,其它域可能是属性、型式和源文件的范围。由于属性可能过载,即不同类中的不同属性共享相同的名称,给予软件模型中的属性的名称可能需要修正以便在普通命名的属性与给予所谈及的属性的名称之间加以区别。换句话说,属性可以给予任意的识别符如表中的关键值。因此几个属性可以共享同一名称,可以将相同的原则用于可能过载的其它结构,诸如操作。
在操作表24中的记录包含操作,在本例中该操作将持有C++方法和功能。这些记录同样具有对持有类的域,如果有一个的话。本例中,在C++基础上,此表中源文件的域将属于包含对该方法的源码的实际文件,而不是包含方法的说明的源文件,因为后者可能从拥有类的源文件而导出。
最后,集合表25包含类之间的组合,在此例中,类型式的属性作为组合而存储。虽然它们可以对类名称设的型式存储在属性表中,拥有的类域存储在其中定义属性的类,并通过它而选取的类。成员类存储属性是一种型式的类,也就是说,属性的类型式。
基于目标的语言的反向设计,而不是源码,可以通过将封存在目标中的全部信息输出到平面文件格式中来实现。例如ASCII,然后从输出的文件将任何可以用软件模型2表示的任何信息输入到CDIF元模型中并从那里输入到软件模型中。可以避免在CDIF格式中表示数据的步骤。但是,使用产生一个CDIF格式文件的中间步骤具有优点,也就是可以使用为从不同源语言传递数据到CDIF格式中已经存在的标准装置。然后可以使用单一功能将数据从CDIF格式输入到软件模型中。如果直接从源码产生软件模型,就需要对由任何特殊软件模型格式所支持的每一种源语言产生一个不同的装置。图12表示根据本发明在一系列PB(Power Builder)对象上进行反向设计的操作一个例子。如果本发明在C++源码上操作,输出的步骤将不是必需的,码可以直接传递到CDIF格式中。
如果当数据从源文件输入到软件模型时已经存在软件模型2,且从源文件来的数据是要合并入软件模型,而不是取代它。在为已经在数据库中的相应元素增加元素到数据库中之前要进行一次校验,如果找不到相应的元素,则简单地将元素加到数据库上。
如果在数据库中找到相应的元素且数据域相适应,该数据域被定义在要合并的元素与已经在目录中的对应元素二者中,仅在要输入的元素中定义的任何数据域为相应元素结合到现存数据域中而其它数据域保留不动。
如果在数据库中找到相应的元素且数据域不相适应,该数据域被定义在要合并的元素与已经在目录中的对应元素二者中,则采用争用控制以便确定输入的元素或已经存在元素哪一个优先。例如,可以显示数据箱报告争用或询问哪些数据应该在软件模型中使用。输入的数据与已经存在具有的数据哪一个优先也可以在输入说明之前预设,因此无需争用分解。
此外,当在与源文件或要输入的源文件相关联的软件模型中的所有数据实际上是在输入的元素中时也可以作一次校验。任何不适应将既对应加到软件模型上的元素也对应从源码移去的元素,因为软件模型和源码最终同步。如果作了附加元素存入到软件模型中,则存入附加元素的简单校验将允许输入装置以确定元素是否已经加到软件模型上或从源码中除去并采取适当的行动。在后一种情况下,数据箱可用于询问是否元素应从软件模型中除去。正向设计
正向设计是当需要创造新码8时由将软件模型2中的数据与任何现有的源码4合并,增加新码,改变码或去除码来完成。重要的是,现有的不被软件模型中的变化影响的源码保留不变。根据图12的反向设计之后,可以用来产生Power Builder项目的正向设计过程的如图13所示的一个例子。正向设计过程将一般用来在修改软件模型的基础上修改源码,或者创造新的源码。本发明提供一系统以便进行前者,同时参照图8至11来解释过程。其中图8表示是一种图7所示的软件模型的修改方案的软件模型2。
正如已经提到的,软件模型2中的数据域也许是不可传递到源码中的。例如,可以在软件模型中类的表述中设置一数据域,识别包含所谈到的类的功能的解释的文件。这些数据域可在软件模型中提供以帮助软件的设计而不结合到源码中,同时,如以上讨论的,将不受源码反向设计的影响因为可能导致争用的相应数据将永不从源码输入。
回到图9A和9B,当完成源码文件的正向设计时,首先要产生一个源文件中或要正向设计的文件中的数据的通用元模型80,以及一个软件模型中的数据的通用元模型82。可以由图8所示的修改的软件模型和图5所示的初始源码产生的元模型分别如图9A和9B所示。元模型可以例如在CDIF格式中产生的。正如以上参照反向设计过程所讨论的,使用的通用元模型格式必须允许能在软件模型中表示的源码的所有元素的表示,反之亦然。通用元模型的使用使之有可能比较两种不同的数据源,开发从每一个特定的环境映射到通用元模型以确保没有数据丢失,同时比较了适当的信息。此外,只有从应该在要正向设计的源码文件中表示的软件模型中来的元素被取出,例如,所有存储在软件模型2中的类及其对应源码文件的源码文件域将被带入元模型82,以及被那些类所拥有的所有属性,操作和集合。类和其它从源码文件来的目标与刚产生的源码文件不同,不放在元模型中,例如,如图9A所示,类Z不放在元模型中,因为它不构成源码文件A的一部份(见图8)。如果在正向设计过程中要产生多个源文件,对每个源文件实行正向设计描述的方法,同时取出的适当的数据构成每一情况中的软件模型2。
元模型产生的操作以及产生的元模型的性质将取决于程序语言的结构和其中的构造,以及在软件模式中使用的构造。一定有可能通过源码元模型80中的元素来搜索和识别从软件模型2和源码4来的相应元素。例如,不同的类、变量和其它在源码中独立的结构诸如STRUCT和UNION结构可以存储在一连接的目录中,由这些结构拥有的元素可以放在由在主要连接目录中的适当元素指定的连接目录中,然后通过放下连接目录容易地完成对元素的搜索,找到适当的元素。同时如果必须的话,审核与元素相关的附加的连接目录。
重要的是,从源码产生的通用元模型中的每个元素具有与之结合的行数目84和“改变状态”86,行数目与初始源码中谈及的元素的行数目相对应。在本发明的另一实施例中,与任何特殊元素相结合的码中的实际开始与终止点可以存储在软件模型中,而不仅是直行数目。因此在一行上的多个元素可以独立地被合并。例如,从图9A所示的源码中产生的元模型例子中,行数目84表示在中央列中。
改变状态86对图9A中的每一个元素表示在右列中,可以具有4个数值中的一个;加、删除、修改和无。最初,当产生元模型时,元素将全具有一个未定义的改变状态,以表示合并尚未开始,同时对元模型尚未进行变化,如图9A所示。
对软件模型2产生的元模型82不要求行数目84和改变状态86,这将变得明显,对软件模型2产生的元模式的表述如图9B所示。
对源码4的整个通用元模型80为一个相应的元素对每一个元模型82中的元素对软件模型2作搜索。
如果没有找到相应的元素,将元素加到源码的元模型上,同时元素的“改变状态”置于“Added”。
如果找到元素但有一参数不匹配,就将参数改变到最新的参数,同时对应元素的改变状态置于“Modified”。替代参数的表示将存储在文件,或元模型中,因此在正向设计过程的终点可以作一适当的存入。
如果找到元素,且元素的参数匹配,改变状态置于“None”以反映无变化。
一旦所有的元素被搜索过,任何不具有其变化状态设置的元素必须从软件模型中清除,这些元素具有其改变状态置于“Deleted”。在搜索之前所有元素的改变状态可初始地置于“Deleted”代替留下空白,以避免第二次通过所有的元素。
为避免必须产生第二个通用元模型82,从软件模型2产生的元模型格式中的元素可以由与元模型80比较后的元素代替。当比较每一元素时,以上描述的相同行为将被实行以设置改变状态,导致相同的合并的元模型。
应该注意,在上述过程中假设软件模型为正确的版本,同时设想源码是过时的,但是,二者可以同步,如果更新源码,同时软件模型在以前存入,而且存入的信息经常决定当软件模型与源码不一致时二个相应元素的哪一个在二个元模型中具有优先。然后必须执行反向设计以使软件模型与新产生的源码一致。这实际上将是反的往返式设计。以正向设计开始,在通常的顺序中对于往返式设计一般这是较简单的,同时因此与此有优先的软件模型的相关合并过程是此处详细处理的过程。
由此过程引起的更新的元模型88如图9C所示,且具有操作“do That()added”以及从源码元模式删除的属性3。
然后从图5所示的初始源码文件和通用元模型产生源码的新版本。新版本可以在一个文件中,在一个每行码带一个入口的一维文本序列中构造,或者通过将源码放入每行码带一个入口的连接目录中。可以使用两种基本不同的方法以便在源码中插入新的码行。新源码可加在末尾,以及从一个目录产生的适当的目录,或者所谈及的数据结构的下部下移扩大时插入新码。如果结构发生在连接目录或一序列中一般是比较容易的。在此例中假设新码加到文件的末尾,以及文件中对每个适当更新码行的位置目录,如图10所示,然后对码的通用元模型中的每一元素实行以下过程:
如果改变状态是“None”对相关源码不做什么。
如果改变状态是“Deleted”,使用目录在新源码文件中找到适当的行,并使用句法特定说明(即commented out)除去该行,例如,在C++中,这就涉及在行的开始和末尾使用说明/*and*/。另一方面,可以实际上消除码,同时消除的文本可以记录在存入文件中。在这种情况下,对消除的行的目录位置可以删除,同时它以下的其它目录位置向上移一行。
如果改变状态是“Added”,就建立以适当的域加新码,例如,如果新元素是一个类的成员,类中的最后行通过经类中的全部元素的扫描来找出并在找到的最高行数目上加1,另一方面,类的末尾可以实际上与所谈及的类元素一起包括在通用元模型中,与类中的第一行数目一起,或者对实际源码进行扫描以找到类中的末一行。新的一行或几行加到源码的末尾同时在那一点上输入元素的适当码。在目录中找到与初始源码中类中的末一行相关的适当的点,并参考插入码的新行,在这一点以下的所有目录条款适当地向下移,插入方法“do That()的此操作的结果如图10所示。
如果改变状态是“Changed”,找到对该行的适当的目录入口,同时对码作适当的变化。
一旦所有的必须的变化和增加已作完,经目录作一通过同时从合并的源码文件来的码的相应行或表示它的数据结构被取出,并以正确的顺序写到新文件中,如图11所示。然后以新的源码文件置换初始源码文件。
除去在软件模型中已经作的变化之外产生的码将与初始码相同。
在本实施例的一个修改方案中,从源码产生的初级源码,以及因此而产生的源码与初始源码合并,二组源码的合并可以通过对初始的和产生的源码组二者产生上述的元模型来完成。在这种情况下,对产生的源码的元模型与对软件模型的元模型82精确地对应。同时过程将准确地同上述一样进行。在实行中,转换成源码的附加步骤将被插入到从软件模型2产生软件模型的过程中。
另一方面,将二源码组转换成元模型的步骤可能被消除,同时一种装置可以通过找寻相应元素的源的二组进行分析并适当地更新初始源码。此装置的操作与比较上述二个元模型的系统的操作类似。但是要求跟踪哪一类或结构形成被扫描的码的一部分,但是,通常在数据结构中创造代表码的元模型要比实际地试图分析运行中的码要简单得多。同时合并软件模型与源码的这种方法不能认为是最佳的。
尽管已经说明并描述本发明的最佳实施例,但不难理解,该领域中的技术人员在不偏离本发明范围内,可以作更动与修改。本发明各种特征已在权利要求中陈述。

Claims (16)

1、一种通过产生更新的源码而使软件模型与现有源码同步的方法,其特征在于,所述源码包括能在所述软件模型中表示的元素与不能在所述软件模型中表述的元素,所述软件模型允许图解表示所述源码的所述可表示的元素之间的相互传递;所述方法包括以下步骤:
a)将每个软件模型元素与源码中的相应元素,如有的话,进行比较;
b)如果所述元素不同于其在现有源码中的相应元素,因为所述元素已经在软件模型中更新,则对每个所述软件模型元素产生新的源码;以及
c)将所述新的源码结合到所述现有的源码中;以及
d)将组合的新的源码和剩余的现有源码存储在一存储媒介中。
2、一种根据权利要求1的方法,其特征在于,所述比较表示的步骤包括以下步骤:
1)使用一种中间模型结构产生第一组表示所述初始源码在第一中间模型中的元素的元素,所述中间模型能够表示可在所述软件模型中表示的所述元素,在第一中间模型中的每个元素的所述表示包括一个在相应元素的源码中的参考位置;
2)产生表示在所述中间模型结构中的所述软件模型的元素的比较元素;以及
3)将比较元素的每一个与所述第一中间模型中的所述元素进行比较;
以及其中所述产生的步骤包括:
如果所述相应的比较元素与那里的不同,则对在所述第一中间模型中的所述元素的每一个产生新的源码。
3、根据权利要求2的一种方法,其特征在于,其中如果在所述第一组元素中找不到所述比较元素,则将一个元素加到对应所述比较元素的所述第一组元素上,同时其中在所述模型中的所述增加的元素,当产生所述更新的源码时被合并到所述源码中的一个适当的地方。
4、根据权利要求1的一种方法,其特征在于,其中找不到对应软件模型元素的源码元素要从现有的源码中消除。
5、根据权利要求4的一种方法,其特征在于,其中的所述源码元素通过将所述源码元素转换成源码说明而消除。
6、根据权利要求1的一种方法,其特征在于,其中的所述源码元素的每一个代表所述源码的一行内容。
7、根据权利要求1的一种方法,其特征在于,其中所述源码元素的每一个代表所述源码中的一个单一整体。
8、根据权利要求1的一种方法,其特征在于,其中的比较、产生与结合步骤之前是从所述现有的源码产生一个初始软件模型,同时更新在所述初始软件模型中的元素以产生所述软件模型的步骤。
9、通过产生更新的源码而使软件模型与现有源码同步的装置,其特征在于,所述源码包括能够在所述软件模型中表示的元素和不能在所述软件模型结构中表示的元素,所述软件模型允许所述源码的所述可表示的元素之间的相互传递的图解表示;所述装置包括:
a)对每一软件模型元素与源码中相应元素,如果有的话,的表示比较的装置;
b)如果所述元素不同于其在现有源码中的对应元素因为所述元素已经在软件模型中更新,对每一个所述软件模型元素产生新的源码的装置;以及
c)将所述新源码结合到所述现有源码中的装置;以及
d)存储组合的新源码和剩余的现有源码的装置。
10、根据权利要求1的装置,其特征在于,其中所述比较表示的装置包括:
1)使用一种中间模型结构产生第一组表示所述初始源码在第一中间模型中元素的元素的装置,所述中间模型能够表示在所述软件模型可以表示的所述元素,在第一中间模型中的每个元素的所述表示包括在对应元素的源码中的一个参考位置;
2)产生表示所述软件模型在所述中间模型结构中的比较元素的装置;以及
3)为比较每一个所述比较元素与所述第一中间模型中的元素的装置;
以及其中为产生的所述装置包括:
为对每一个在所述第一中间模型中的所述元素产生新源码的装置,如果所述对应的比较元素在那里不同的话。
11、根据权利要求10的装置,其特征在于,包括为将一个元素加到对应所述比较元素的所述第一组元素上的装置,如果在所述第一组元素中找不到所述比较元素,以及当产生所述更新的源码时为结合在所述模型中在所述源码中的一个适当位置的所述增加的元素的装置。
12、根据权利要求9的装置,其特征在于,进一步包括为从现有源码中消除源码元素的装置,对该现有源码找不到相应软件模型元素。
13、根据权利要求12的装置,其特征在于,其中所述消除装置通过将所述源码元素转换为源码说明来消除源码元素。
14、根据权利要求9的装置,其特征在于,其中所述源码元素的每一个代表所述源码的一行的内容。
15、根据权利要求9的装置,其特征在于,其中所述源码元素的每一个代表在所述源码中的一个单一整体。
16、根据权利要求9的装置,其特征在于,进一步包括从所述现有源码产生一个初始软件模型的装置,并允许在所述初始软件模型中更新元素以产生所述软件模型。
CNB991238486A 1998-11-12 1999-11-12 往返式软件设计的方法与装置 Expired - Fee Related CN1199104C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/190,761 1998-11-12
US09/190761 1998-11-12
US09/190,761 US6502239B2 (en) 1998-11-12 1998-11-12 Method and apparatus for round-trip software engineering

Publications (2)

Publication Number Publication Date
CN1254879A true CN1254879A (zh) 2000-05-31
CN1199104C CN1199104C (zh) 2005-04-27

Family

ID=22702655

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991238486A Expired - Fee Related CN1199104C (zh) 1998-11-12 1999-11-12 往返式软件设计的方法与装置

Country Status (10)

Country Link
US (1) US6502239B2 (zh)
EP (1) EP1001338B1 (zh)
JP (1) JP2000148461A (zh)
CN (1) CN1199104C (zh)
AT (1) ATE376212T1 (zh)
AU (1) AU756363B2 (zh)
BR (1) BR9905606A (zh)
CA (1) CA2289347C (zh)
DE (1) DE69937332T2 (zh)
IL (1) IL132847A0 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014169628A1 (zh) * 2013-04-18 2014-10-23 南京大学 一种基于代码变更的软件模型同步方法
CN106682869A (zh) * 2015-11-05 2017-05-17 财团法人资讯工业策进会 流程模型整合系统的变量定义更改装置与方法
CN114036781A (zh) * 2022-01-04 2022-02-11 阿里云计算有限公司 数据处理方法、数据展示方法、装置以及电子设备

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978228B1 (en) * 1998-12-18 2005-12-20 Graham Paul Gordon Method of performing a system reverse engineering process
US7055131B2 (en) * 1999-10-05 2006-05-30 Borland Software Corporation Methods and systems for animating the interaction of objects in an object oriented program
US7181454B1 (en) * 1999-12-29 2007-02-20 International Business Machines Corporation Asset locator
EP1225508A1 (en) * 2001-01-19 2002-07-24 Thinkingcap Technology Limited A universal software application
US7110936B2 (en) * 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
US20020170487A1 (en) * 2001-05-18 2002-11-21 Raanan Zehavi Pre-coated silicon fixtures used in a high temperature process
US7108746B2 (en) * 2001-05-18 2006-09-19 Integrated Materials, Inc. Silicon fixture with roughened surface supporting wafers in chemical vapor deposition
US7849394B2 (en) * 2001-10-25 2010-12-07 The Math Works, Inc. Linked code generation report
US7076762B2 (en) * 2002-03-22 2006-07-11 Sun Microsystems, Inc. Design and redesign of enterprise applications
AU2002950444A0 (en) * 2002-07-29 2002-09-12 Interad Technology Limited Bi-directional programming system/method for program development
KR100456623B1 (ko) * 2002-08-02 2004-11-10 한국전자통신연구원 설계 모델과 소스코드의 일관성을 유지시켜 동시순환공학을 지원하기 위한 장치 및 방법
US7480893B2 (en) * 2002-10-04 2009-01-20 Siemens Corporate Research, Inc. Rule-based system and method for checking compliance of architectural analysis and design models
US20040158820A1 (en) * 2003-02-11 2004-08-12 Moore John Wesley System for generating an application framework and components
JP4403794B2 (ja) * 2003-02-28 2010-01-27 株式会社デンソー 制御プログラムの検査方法及び検査装置及び検査プログラム
US7827524B2 (en) * 2003-04-22 2010-11-02 Computer Associates Think, Inc. System and method for integrating object-oriented model profiles and object-oriented programming languages
US20040216087A1 (en) * 2003-04-22 2004-10-28 Wilson Kirk D. System and method for integrating object-oriented models and object-oriented programming languages
US6976144B1 (en) * 2003-05-06 2005-12-13 Pegasystems, Inc. Methods and apparatus for digital data processing with mutable inheritance
US7328426B2 (en) 2003-08-13 2008-02-05 International Business Machines Corporation Editor with commands for automatically disabling and enabling program code portions
US20050091642A1 (en) * 2003-10-28 2005-04-28 Miller William L. Method and systems for learning model-based lifecycle diagnostics
US20050114832A1 (en) * 2003-11-24 2005-05-26 Microsoft Corporation Automatically generating program code from a functional model of software
US7533365B1 (en) * 2004-02-03 2009-05-12 Borland Software Corporation Development system with methodology for run-time restoration of UML model from program code
US7856621B2 (en) * 2004-05-19 2010-12-21 International Business Machines Corporation Method for synchronization of concurrently modified interdependent semi-derived artifacts
US20050262485A1 (en) * 2004-05-19 2005-11-24 International Business Machines Corporation Duplicate merge avoidance in parallel development of interdependent semi-derived artifacts
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US20060101402A1 (en) * 2004-10-15 2006-05-11 Miller William L Method and systems for anomaly detection
US20060136894A1 (en) * 2004-12-21 2006-06-22 Microsoft Corporation Diagram artifact synchronization resiliency with orphaned shapes
US7509346B2 (en) * 2004-12-29 2009-03-24 Microsoft Corporation System and method to re-associate class designer shapes to the types they represent
US20060168555A1 (en) * 2005-01-21 2006-07-27 Represas Ferrao Lucio E Software development system and method
US8335704B2 (en) 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
US20070112878A1 (en) * 2005-11-11 2007-05-17 International Business Machines Corporation Computer method and system for coherent source and target model transformation
US7640222B2 (en) * 2006-03-03 2009-12-29 Pegasystems Inc. Rules base systems and methods with circumstance translation
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20070288889A1 (en) * 2006-06-08 2007-12-13 Christopher Harrison Source Code Commenting Via Speech Recording and Recognition
JP2008059367A (ja) * 2006-08-31 2008-03-13 Fujitsu Ltd システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法
US9207933B2 (en) * 2006-10-10 2015-12-08 International Business Machines Corporation Identifying authors of changes between multiple versions of a file
US8756561B2 (en) * 2006-12-05 2014-06-17 International Business Machines Corporation Software model normalization and mediation
US8930890B2 (en) * 2006-12-05 2015-01-06 International Business Machines Corporation Software model skinning
US8713513B2 (en) * 2006-12-13 2014-04-29 Infosys Limited Evaluating programmer efficiency in maintaining software systems
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US8196100B2 (en) * 2007-04-06 2012-06-05 International Business Machines Corporation Content management system for computer software with dynamic traceability between code and design documents
JP4412674B2 (ja) * 2007-04-18 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション モデル駆動型開発を支援する装置及び方法
US8219971B2 (en) * 2007-08-20 2012-07-10 International Business Machines Corporation System and method for source code sectional locking for improved management
US8996349B2 (en) * 2007-10-11 2015-03-31 Microsoft Technology Licensing, Llc Synchronizing an abstract model and source code
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8776016B2 (en) * 2009-10-29 2014-07-08 Red Hat, Inc. Integration of structured profiling data with source data in the eclipse development environment
US8561032B2 (en) * 2009-11-04 2013-10-15 Red Hat, Inc. Visualizing thread life time in eclipse
US8789024B2 (en) * 2009-11-04 2014-07-22 Red Hat, Inc. Integration of visualization with source code in the Eclipse development environment
CA2734199C (en) * 2010-03-18 2017-01-03 Accenture Global Services Limited Evaluating and enforcing software design quality
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US9563714B2 (en) 2011-06-16 2017-02-07 Microsoft Technology Licensing Llc. Mapping selections between a browser and the original file fetched from a web server
US9753699B2 (en) * 2011-06-16 2017-09-05 Microsoft Technology Licensing, Llc Live browser tooling in an integrated development environment
US9460224B2 (en) 2011-06-16 2016-10-04 Microsoft Technology Licensing Llc. Selection mapping between fetched files and source files
EP2587368A1 (de) * 2011-10-25 2013-05-01 Siemens Aktiengesellschaft Verfahren und Vorrichtung für einen Austausch von Programmcode zwischen einer Programmerzeugungseinheit und einer Programmierumgebung
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
JP6011712B2 (ja) * 2012-07-31 2016-10-19 日本電気株式会社 修正管理装置、修正管理方法、及び修正管理プログラム
GB2507273A (en) * 2012-10-23 2014-04-30 Ibm Maintaining integrity of output of code generators
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
EP4089525A1 (en) * 2021-05-12 2022-11-16 Siemens Aktiengesellschaft System and method for generating program code for an industrial controller

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3711863A (en) * 1972-01-21 1973-01-16 Honeywell Inf Systems Source code comparator computer program
US5249275A (en) * 1986-04-21 1993-09-28 Texas Instruments Incorporated Apparatus and method enabling a compiled program to exactly recreate its source code
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
JP2797698B2 (ja) * 1990-11-14 1998-09-17 株式会社日立製作所 ソフトウェア再利用支援方法
US5371747A (en) * 1992-06-05 1994-12-06 Convex Computer Corporation Debugger program which includes correlation of computer program source code with optimized object code
US5675803A (en) * 1994-01-28 1997-10-07 Sun Microsystems, Inc. Method and apparatus for a fast debugger fix and continue operation
US5999938A (en) * 1997-01-31 1999-12-07 Microsoft Corporation System and method for creating a new data structure in memory populated with data from an existing data structure
US6145124A (en) * 1997-08-12 2000-11-07 Veronex Technologies, Inc. Software optimization system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014169628A1 (zh) * 2013-04-18 2014-10-23 南京大学 一种基于代码变更的软件模型同步方法
CN106682869A (zh) * 2015-11-05 2017-05-17 财团法人资讯工业策进会 流程模型整合系统的变量定义更改装置与方法
CN114036781A (zh) * 2022-01-04 2022-02-11 阿里云计算有限公司 数据处理方法、数据展示方法、装置以及电子设备
CN114036781B (zh) * 2022-01-04 2022-05-06 阿里云计算有限公司 数据处理方法、数据展示方法、装置以及电子设备

Also Published As

Publication number Publication date
AU5937099A (en) 2000-05-18
DE69937332T2 (de) 2008-07-24
JP2000148461A (ja) 2000-05-30
ATE376212T1 (de) 2007-11-15
US20020170048A1 (en) 2002-11-14
US6502239B2 (en) 2002-12-31
EP1001338A3 (en) 2001-09-26
CA2289347A1 (en) 2000-05-12
AU756363B2 (en) 2003-01-09
EP1001338B1 (en) 2007-10-17
CA2289347C (en) 2005-10-18
BR9905606A (pt) 2002-07-23
EP1001338A2 (en) 2000-05-17
IL132847A0 (en) 2001-03-19
CN1199104C (zh) 2005-04-27
DE69937332D1 (de) 2007-11-29

Similar Documents

Publication Publication Date Title
CN1199104C (zh) 往返式软件设计的方法与装置
CN101365994B (zh) 可编程控制器的外围装置、置换方法和程序
CN1276375C (zh) 用于显示和选择层次数据库段和字段的系统和方法
US5604899A (en) Data relationships processor with unlimited expansion capability
CN1280745C (zh) 软件构建支持系统
CN101661460B (zh) 管理系统报表生成方法和装置
CN1251088C (zh) 目标集成管理系统
CN105224663A (zh) 一种基于多个数据源的数据访问任务管理方法及装置
CN100346315C (zh) 基于脚本的三维建模软件自动测试方法
CN101288072A (zh) 数据结构的移植和转换
CN115061772A (zh) 一种多领域仿真模型集成方法及系统
CN100527131C (zh) 一种ims数据库互动式访问方法和工具
AL-Msie'deen et al. Detecting commonality and variability in use-case diagram variants
CN110502735A (zh) 一种电子设备通用工艺文件快速制作方法及系统
CN107025110B (zh) 一种基于软件开发要素及要素之间的联系的时态建模方法
CN101055521A (zh) 映射规则的可视化生成方法及系统
CN111277650B (zh) 一种结合功能指标和非功能指标的自动化微服务识别方法
CN113971044A (zh) 组件文档生成方法、装置、设备及可读存储介质
CN112783486B (zh) 航空发动机软件全过程证据链复用生成方法及系统
CN1169073C (zh) 图文编辑方法以及系统
CN1115638C (zh) 用于简化多媒体制造的方法和装置
CN1432948A (zh) 一种物料清单电脑软件整合方法
EP0726517A1 (en) A computer aided program generating system
CN113360489A (zh) 一种基于细粒度的归一化数据治理方法
CN1087454C (zh) WinCE作业环境下的数据结构处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: COMPUTER JOINT CONCEPT CO.,LTD.

Free format text: FORMER OWNER: PLATINUM TECHNOLOGY KNOWLEDGE PROPERTY CORP.

Effective date: 20050527

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20050527

Address after: American New York

Patentee after: Computer Partnership Throught Inc.

Address before: Illinois, USA

Patentee before: Platinum Technology Knowledge Property Corp.

C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee