CN1831766A - 用于管理计算机程序代码的开发对象的方法和系统 - Google Patents

用于管理计算机程序代码的开发对象的方法和系统 Download PDF

Info

Publication number
CN1831766A
CN1831766A CNA2006100582116A CN200610058211A CN1831766A CN 1831766 A CN1831766 A CN 1831766A CN A2006100582116 A CNA2006100582116 A CN A2006100582116A CN 200610058211 A CN200610058211 A CN 200610058211A CN 1831766 A CN1831766 A CN 1831766A
Authority
CN
China
Prior art keywords
group
mentioned
attribute
dom
row
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
CNA2006100582116A
Other languages
English (en)
Other versions
CN100363892C (zh
Inventor
E·H·莱茵哈特
S·卢克
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1831766A publication Critical patent/CN1831766A/zh
Application granted granted Critical
Publication of CN100363892C publication Critical patent/CN100363892C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种用于管理计算机程序代码的开发对象的方法和系统。一个开发对象包括以位置语言编写的源代码,而另一开发对象包括对应于该源代码的文档对象模型(DOM)。使用一组同步器对象使这两个开发对象同步。具体地,使用由位置语言定义的各字符范围来有效地将源代码的一部分映射到DOM的相应部分。结果,同步器对象可容易地以所接收的对于一个开发对象的修改来更新另一开发对象。

Description

用于管理计算机程序代码的开发对象的方法和系统
技术领域
本发明总体涉及管理计算机程序代码的开发对象,更具体地,涉及用于维护以位置语言编写的源代码与对应的文档对象模型(DOM)之间的同步的改进的解决方案。
背景技术
位置语言通过文本在一行内的字符位置来定义该文本的含意。例如,对于由纽约Armonk的国际商业机器公司提供的iSeries类中阶服务器来说,示例性的位置语言为报告程序生成器(RPG)。以RPG编写的应用对数据库和诸如显示器及打印机的设备进行读和写数据。对于这些数据库和设备的接口由称为数据描述规范(DDS)的一系列行所描述,该数据描述规范(DDS)是另一示例性位置语言。
通常,位置语言包括一些最早的程序设计语言。近来,基于标记的语言(例如Java、C++等)已经变得普遍。无论在哪一种情况下,传统上都使用文本编辑器来修改源代码。然而,用于各种程序设计语言的综合开发环境(IDE)已被增强来向用户提供更加有成效的、直观的开发环境。这些增强取决于与源代码对应的文档对象模型(DOM)的生成。具体地,IDE中包括的编译器的分析器能够被用来将特定程序设计语言的源代码转换为DOM。该DOM包括源代码的表示,该表示捕获源代码中包括的全部语义信息。当进行编译时,该DOM被用来生成程序产品。
IDE使用DOM向用户提供各种增强。例如,DOM能够被用来生成一个或多个图形视图,这些图形视图使得用户能够可视化语言的各方面。就这方面,IDE能够显示正被开发的程序产品的概观、正被开发的屏幕和/或报告的准确表示等。此外,IDE可提供一个或多个更加用户友好的可视编辑器,诸如属性视图、图形编辑器等。在此情况下,允许用户在源代码编辑器和可视编辑器之间容易地切换是所期望的。
可视编辑器对DOM中的数据进行修改。结果,IDE必须维护源代码和DOM之间的同步。到目前为止,通常使用增量编译器。具体地,增量编译器重新分析修改后的源代码并且更新DOM,和/或在DOM被修改之后,重新生成受影响的源代码。通常,对源代码执行基于标记的分析,并且将结果与现有的DOM合并。由于这种操作可能是复杂的,因此可能存在性能问题,诸如在修改DOM/源代码与看到在相应的源代码/DOM中所反映出的变化之间的用户可察觉的延迟。另外,增量编译器是易于出错的并且维护起来是代价高的。
然而,对于位置语言来说,DOM和源代码之间的同步能够被更有效地维护。就这方面,需要一种用于维护以位置语言编写的源代码和DOM之间的同步的改进方案,该方案使利用源代码中数据的字符位置来简化同步过程。
发明内容
本发明提供一种用于管理计算机程序代码的开发对象的解决方案。具体地,本发明使用一组(一个或多个)同步器对象使包括以位置语言编写的源代码的开发对象的数据与包括对应于源代码的文档对象模型(DOM)的开发对象的数据同步。在一个实施例中,DOM包括对于源代码中每一行的模型对象,并且每一模型对象包括一组属性,每一属性对应于由位置语言定义的行的字符范围。当接收到对于源代码的修改时,同步器对象可根据该修改的位置更新对应的模型对象的适当属性。类似地,当接收到对于模型对象的属性的修改时,同步器对象可根据该属性的对应字符范围和该模型对象的对应行,更新源代码中的适当行和字符范围。就这方面,同步器对象提供用于使源代码和对应的DOM同步的有效方案。另外,同步器对象可根据源代码生成DOM和/或根据DOM生成源代码。结果,本发明提供一种利用位置语言的各方面的用于管理计算机程序代码的开发对象的解决方案。
本发明的第一方面提供一种管理计算机程序代码的开发对象的方法,该方法包括:获得包括该计算机程序代码的源代码的第一开发对象,其中该源代码以位置语言编写并包括一组行;获得包括文档对象模型(DOM)的第二开发对象,其中该DOM包括对应于上述一组行的一组模型对象;以及使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步。
本发明的第二方面提供一种管理计算机程序代码的开发对象的方法,该方法包括:获得包括该计算机程序代码的源代码的第一开发对象,其中该源代码以位置语言编写并包括一组行;获得包括对应于该源代码的文档对象模型(DOM)的第二开发对象,其中该DOM包括:一组模型对象,其中每一模型对象对应于上述一组行中的一唯一行;以及一组用于每一模型对象的属性,其中该组属性中的每一属性对应于相应行的一字符范围;以及使用一组同步器对象来使上述源代码和上述DOM同步,其中该组同步器对象中的每一同步器对象对应于上述一组模型对象中的一唯一模型对象。
本发明的第三方面提供一种用于管理计算机程序代码的开发对象的系统,该系统包括:用于获得包括该计算机程序代码的源代码的第一开发对象的系统,其中该源代码以位置语言编写并包括一组行;用于获得包括文档对象模型(DOM)的第二开发对象的系统,其中该DOM包括对应于上述一组行的一组模型对象;以及用于使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步的系统。
本发明的第四方面提供一种存储在计算机可读介质上的程序产品,当该程序产品执行时,其管理计算机程序代码的开发对象,该程序产品包括:用于获得包括该计算机程序代码的源代码的第一开发对象的程序代码,其中该源代码以位置语言编写并包括一组行;用于获得包括文档对象模型(DOM)的第二开发对象的程序代码,其中该DOM包括对应于上述一组行的一组模型对象;以及用于使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步的程序代码。
本发明的第五方面提供一种部署用于管理计算机程序代码的开发对象的应用的方法,该方法包括:提供计算机基础结构,其可操作地:获得包括该计算机程序代码的源代码的第一开发对象,其中该源代码以位置语言编写并包括一组行;获得包括文档对象模型(DOM)的第二开发对象,其中该DOM包括对应于上述一组行的一组模型对象;以及使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步。
本发明的第六方面提供一种包括在传播信号中的用于管理计算机程序代码的开发对象的计算机软件,该计算机软件包括使计算机系统执行以下功能的指令:获得包括该计算机程序代码的源代码的第一开发对象,其中该源代码以位置语言编写并包括一组行;获得包括文档对象模型(DOM)的第二开发对象,其中该DOM包括对应于上述一组行的一组模型对象;以及使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步。
本发明的第七方面提供一种计算机可读介质,其包括计算机程序代码以使计算机基础结构能够管理计算机程序代码的开发对象。
本发明的第八方面提供一种用于管理计算机程序代码的开发对象的商业方法。
本发明的第九方面提供一种生成用于管理计算机程序代码的开发对象的系统的方法。
本发明的示例性方面被设计来解决这里所描述的问题以及其他本领域技术人员能够发现的未讨论问题。
附图说明
从下面结合附图所作的本发明各方面的详细描述中,本发明的这些和其他特征将更加容易理解,这些附图示出了本发明的各实施例,其中:
图1示出用于管理计算机程序代码的开发对象的示例性系统;
图2示出示例性源代码编辑器;
图3示出文档对象模型(DOM)的示例性结构;
图4示出具有图3所示结构的示例性DOM;
图5示出示例性可视编辑器;
图6示出用于使可由图1的各系统实现的开发对象同步的示例性数据流;以及
图7示出用于使可由图1的各系统实现的开发对象同步的可选数据流。
应该指出,本发明的附图并不是按比例的。这些附图仅旨在示出本发明的典型方面,因此不应被认为限制本发明的范围。在这些附图中,附图之间相同的标号表示相同的组件。
具体实施方式
如以上所指出,本发明提供一种用于管理计算机程序代码的开发对象的解决方案。具体地,本发明使用一组(一个或多个)同步器对象使包括以位置语言编写的源代码的开发对象的数据和包括符合源代码的文档对象模型(DOM)的开发对象的数据同步。在一个实施例中,DOM包括对于源代码中每一行的模型对象,并且每一模型对象包括一组属性,每一属性对应于由位置语言定义的行的字符范围。当接收到对于源代码的修改时,同步器对象可根据该修改的位置来更新对应模型对象的适当属性。类似地,当接收到对于模型对象的属性的修改时,同步器对象可根据属性的对应字符范围和模型对象的对应行,来更新源代码中的适当行和字符范围。就这方面,同步器对象提供用于使源代码和对应的DOM同步的有效解决方案。此外,同步器对象可根据源代码生成DOM和/或根据DOM生成源代码。结果,本发明提供一种利用位置语言的各方面的用于管理计算机程序代码的开发对象的解决方案。
如这里所使用的,术语“开发对象”包括用来生成计算机程序代码的源代码。在一个实施例中,源代码存储在文件系统中的一个或多个文件中。在此情况下,每个文件都可包括开发对象。此外,开发对象可包括一个或多个并不作为文件存储的内存中对象。例如,开发对象可包括一个或多个对应于源代码的内存中对象。就这方面,文档对象模型(DOM)包括开发对象。可以理解,各种其他对象也可包括开发对象。例如,开发对象可包括根据源代码生成的和/或作为库/组件提供的对象文件、包括计算机程序代码的可执行文件等。
转到附图,图1示出用于管理计算机程序代码54的开发对象的示例性系统10。就这方面,系统10包括可执行这里所描述的用于管理开发对象的各过程步骤的计算机基础结构12。具体地,计算机基础结构12被示为包括计算设备14,该计算设备14包括通过执行本发明的过程步骤而使计算设备14能够管理开发对象的开发系统30。
计算设备14被示为包括处理器20、存储器22、输入/输出(I/O)接口24和总线26。此外,计算设备14被示为与外部I/O设备/资源28及存储系统29通信。通常,处理器20执行存储在存储器22和/或存储系统29中的计算机程序代码,诸如开发系统30。当执行计算机程序代码时,处理器20能够对存储器22、存储系统29和/或I/O接口24读和/或写数据,诸如源代码50。总线26提供计算设备14中的每一组件之间的通信链路。I/O设备28可包括使用户16能够与计算设备14交互的任何装置(例如,键盘、指示器、显示器等)或使计算设备14能够与一个或多个其他计算设备通信的任何装置(例如,网卡、调制解调器、无线通信装置等)。
在任何情况下,计算设备14可包括由用户16(例如,个人计算机、服务器、手持设备等)安装的能够执行计算机程序代码的任何通用计算制造物品。然而,可以理解,计算设备14和开发系统30仅是可以执行本发明的各过程步骤的各种可能计算设备的代表。就这方面,在其他实施例中,计算设备14可包括具有用于执行特定功能的硬件和/或计算机程序代码的任何特定用途的计算制造物品,以及具有特定用途和通用硬件/软件的组合的任何计算制造物品等。在每一情况下,可分别利用标准程序设计和工程技术来生成程序代码和硬件。
类似地,计算机基础结构12仅是用于实现本发明的各种类型的计算机基础结构的示例。例如,在一个实施例中,计算机基础结构12包括通过共享存储器等在网络上进行通信以执行本发明的各过程步骤的两个或多个计算设备(例如,服务器集群)。在前一情况下,该网络可包括一种或多种类型的网络(例如,因特网、广域网、局域网、虚拟专用网等),并且上述计算设备之间的通信可利用各种类型的通信链路和/或传输技术(例如,有线、无线等)。
如上面所提及并在下面进一步讨论的,开发系统30使计算设备14能够管理计算机程序代码54的开发对象(例如,源代码50、DOM 52等)。就这方面,开发系统30被示为包括使用户16能够管理(例如,添加、删除等)与计算机程序代码54相关的各开发对象的管理系统32、生成使用户16能够修改源代码50的文本编辑器的文本编辑器系统34、生成使用户16能够修改DOM 52的可视编辑器的可视编辑器系统36、维护源代码50和对应的DOM 52之间的同步的同步系统38、和生成计算机程序代码54的转换系统40。下面进一步讨论这些系统中的每一个系统的操作。然而,可以理解,图1所示的各系统中的某一些可以单独地实现或组合在一起,和/或存储在用于通过网络进行通信的一个或多个单独计算设备14的存储器中。此外,可以理解,可以不实现这些系统和/或功能中的某一些,或者可以作为系统10的一部分而包括附加的系统和/或功能。
在一个实施例中,开发系统30被实现为用于位置语言的综合开发环境(IDE)应用。IDE应用提供单个用户接口,该单个用户接口允许用户16生成并修改源代码50,并且根据位置语言和源代码50生成计算机程序代码54。具体地,IDE应用通常包括一个或多个用于编辑源代码50的编辑器、帮助用户16定位和/或校正任何错误的调试器、和对源代码50应用位置语言的语义以生成计算机程序代码54的编译器。该编译器通常包括分析源代码50以生成DOM 52的分析器,以及根据DOM 52生成计算机程序代码54的后端。
就这方面,管理系统32可获得包括根据由程序设计语言定义的规则编写的源代码50的一组开发对象。在本发明的情境下,源代码50以例如数据描述规范(DDS)的位置语言编写。无论怎样,管理系统32可生成和/或显示用户接口,该用户接口使用户16能够添加、移除、删除和/或修改包括源代码50的该组开发对象的某一些或全部。例如,管理系统32可定义并且随后管理包括一组文件的项目,其中该组文件包括源代码50。然后,该组文件可被用来生成计算机程序代码54。管理系统32可使用户16能够定义新的项目,对该组文件添加和/或移除文件,和/或允许用户16选择查看/编辑该组文件中的一个或多个,如本领域中所公知的那样。
以位置语言编写的源代码50包括一组(一个或多个)行。在一个实施例中,由包括在存储于文件中的数据中的回车符和/或换行符来定义每一行。无论怎样,每一行都包括多个字符,并且一个特定字符的位置(例如,该字符所出现的列)定义其意义。当用户16选择查看/编辑源代码50时,管理系统32要求文本编辑器系统34生成源代码编辑器,以便向用户16进行显示。
例如,图2示出了示例性源代码编辑器60。参照图1和2,文本编辑器系统34可生成源代码编辑器60。随后,源代码编辑器60可通过文本编辑器系统34被显示给用户16和/或被提供给另一系统(例如,管理系统32)以便进行显示,如本领域中所公知的那样。在任何情况下,源代码编辑器60都使用户60能够查看和/或修改包括在源代码50中的一组行64的数据。就这方面,当对数据进行修改时,用户16可改变一个或多个现有行64的数据,添加一个或多个新的行64,删除一个或多个行64,等等。
当使用源代码编辑器60查看和/或修改该组行64的数据时,用户16(图1)了解数据的字符位置是重要的。就这方面,源代码编辑器60被示为包括允许用户16容易地确定特定数据的字符位置(例如,列)的一行列指示符62。然而,可以理解,各种可选方案都是可能的。例如,源代码编辑器60可在状态栏中显示光标的当前列位置等。为了进一步帮助用户16对齐数据,源代码编辑器60通常使用其中所有字符都具有一致宽度的字体(例如courier字体)来显示源代码50。
如前所述,在位置语言中,数据所处的特定字符位置(例如,列)确定其意义。就这方面,行64包括基于DDS位置语言输入的示例性数据行。在这种情况下,DDS可定义:第一字符位置用来指示行的类型。例如,第十七字符位置中的空白字符可将行64标识为定义记录内的一个字段。对于该字段来说,可存在定义它的多个不同属性。具体地,第十九到第二十八字符位置可包括字段的名称,第三十到第三十四字符位置可包括字段的数据长度,第三十五字符位置可包括字段的数据类型,第三十六和第三十七字符位置可包括字段的小数位数,第三十八字符位置可包括字段的输入/输出(I/O)使用,等等。
返回到图1,可获得基于源代码50的DOM 52。在一个实施例中,转换系统40可包括根据源代码50生成DOM 52的分析器等。图3示出了DOM 52A的示例性结构。具体地,DOM 52A包括节点的分层结构,该分层结构包括一组模型对象70A、70B。该组模型对象70A-B可对应于源代码50(图1)中的该组行64(图2)。在一个实施例中,每一模型对象70A-B以一对一的关系对应于单个行64。然而,可以理解,各种可选方案都是可能的,例如,模型对象70A-B可对应于多个行64,一行64可对应于多个模型对象70A-B,等等。此外,模型对象70A-B可包括以分层方式嵌套的一个或多个模型对象70A-B,如本领域中所公知的那样。例如,对应于一个记录的模型对象70A-B可包含对应于该记录中的每一字段的一组模型对象70A-B。
此外,DOM 52A中的每个模型对象70A-B都可包括一组属性72A、72B。就这方面,模型对象70A被示为包括属性72A-B。在一个实施例中,每一属性72A-B可对应于行64(图2)上的一个字符范围,该字符范围对应于模型对象70A。具体地,该字符范围可包括以位置语言定义具有特定意义的属性的整个字符范围。
就这方面,图4示出了基于源代码50生成的示例性DOM 152A。具体地,DOM 152A被示为包括对应于行64(图2)的模型对象170A。如上所示,模型对象170A对应于特定类型的行64,例如,命名字段。就这方面,模型对象170A可包括一组属性172A-E。每个属性172A-E包括该类型的行64的属性中的一个属性的数据。例如,每个属性172A-E可标识该属性的类型(例如,名称、数据长度、数据类型等)、与该属性对应的字符范围以及存储在行64上该字符域的数据。
返回到图1,在基于源代码50生成DOM 52时,转换系统40可基于DOM 52生成计算机程序代码54。具体地,转换系统40可包括遍历DOM52并以公知方式生成计算机程序代码54的后端。然而,DOM 52也可用来帮助用户16开发源代码50。就这方面,管理系统32可使用户16能够基于DOM 52选择可选的显示/编辑格式。具体地,管理系统32可使用户16能够选择一种或多种类型的可视编辑器,这些可视编辑器使用户16能够修改和/或查看存储在DOM 52中的数据。当被选择时,管理系统32可请求可视编辑器系统36生成所期望的可视编辑器。
例如,图5示出由可视编辑器系统36(图1)生成的示例性可视编辑器80。随后,可视编辑器80可通过可视编辑器系统36被显示给用户16(图1)和/或被提供给另一系统(例如图1的管理系统32)以便进行显示,如本领域中所公知的那样。在任何情况下,可视编辑器80都可允许用户16修改图4的DOM 152A中的属性172A-E的数据。如图5所示,可视编辑器80可包括各种属性名和文字框,这些属性名和文本框使得用户16(图1)能够以用户友好的方式查看和/或修改属性172A-E的数据。可以理解,对于本领域技术人员显而易见的是,可视编辑器80仅是示例性的,各种可选编辑器/显示器都是可使用的。
返回到图1,由于管理系统32可允许用户16查看和/或修改源代码50(例如,利用图2的源代码编辑器60)和DOM 52(例如,利用图5的可视编辑器80)的数据,因此,所期望的是,对于一个开发对象的修改被反映在其他开发对象中。就此方面,本发明提供一种用于使源代码50和DOM52同步的有效解决方案。具体地,同步系统38利用一组同步器对象,这些同步器对象基于源代码50的一组行中的一行中的字符范围和DOM 52的一组模型对象中的相应模型对象,使源代码50和DOM 52同步。
例如,图6示出了用于使源代码50和可由图1的各系统实现的DOM52同步的示例性数据流。具体地,如前所述,文本编辑器系统34可生成使用户16能够修改源代码50的源代码编辑器60。类似地,可视编辑器系统36可生成使用户16能够修改DOM 52的可视编辑器80。同步系统38可生成一组同步器对象82A-B,在源代码50或DOM 52的任一个被修改时,这些同步器对象82A-B基于该修改更新另一开发对象。
在一个实施例中,该组同步器对象中的每个同步器对象82A-B对应于DOM 52中的单个模型对象70A-B和源代码50中的单个行64A-B。在这种情况下,同步系统38能够接收对于源代码50的一组行64A-B中的一行的数据的修改,并且将该修改提供给对应于源代码50中被修改行64A-B的同步器对象82A-B。同步系统38可利用本领域中公知的各种解决方案中的任何一种来接收该修改。例如,同步系统38可监控用户16和源代码编辑器60之间的交互,监控由实现源代码50中的该修改的源代码编辑器60所生成的消息,接收来自文本编辑器系统34的消息,等等。
根据该修改,同步器对象82A-B可选择需要进行更新的相应模型对象70A-B的适当属性72A-B。例如,同步器对象82A-B可初始确定对于行64A-B的该修改的字符位置。随后,同步器对象82可选择对应于包括该字符位置的字符范围的属性72A-B。一旦被选择出,同步器对象82A-B便可更新具有被修改数据的被选属性72A-B的数据。
类似地,同步系统38可例如通过监控用户16和可视编辑器80之间的交互,监控由实现DOM 52中的修改的可视编辑器80生成的消息,来接收对一组属性72A-B中的一个属性的数据的修改,接收来自可视编辑器系统36的消息等。无论怎样,一旦接收到修改,同步系统38便可获得对应于被修改属性72A-B的模型对象70A-B,并且将该修改提供给对应于该模型对象70A-B的同步器对象82A-B。基于该修改,同步器对象82A-B可选择需要进行更新的源代码50中的适当行64A-B。随后,同步器对象82A-B可更新具有被修改数据的被选行64A-B的数据。具体地,同步系统82A-B可获得对应于被修改属性72A-B的字符范围,并且更新具有被修改数据的行64A-B上的该字符范围。
图7示出用于使可由图1的各系统实现的开发对象同步的可选数据流。具体地,每一同步器对象82A可包括一组属性项83A-B,每一属性项83A-B包括对应行64A上的字符范围与对应模型对象70A中的属性72A-B之间的映射。在这种情况下,可以一般性地(例如经由明确定义的元模型)来定义模型对象70A的属性72A-B。此外,用于更新每一属性72A-B的源代码也可以是一般性的。结果,不需要编写单独的源代码来实现每个属性72A-B。而是,给定一个一般属性标识符,模型对象70A的任何属性72A-B都可以一般性地与行64A中的字符范围同步。因此,同步器对象82A仅变成为一组已经被初始化为指向行64A上的特定字符范围和相应属性72A-B的类属性项83A-B。在一个实施例中,用于模型驱动的体系结构开发的架构,诸如由Eclipse Modeling Framework提供的特征标识符,能够被用来实现这种解决方案。
除了维护源代码50和DOM 52之间的同步之外,同步系统38可利用该组同步器对象82A,来基于源代码50生成DOM 52和/或基于DOM 52生成源代码50。例如,同步系统38可接收源代码50中的每一行64A的数据,生成每一行64A的同步器对象82A,并且将行64A的数据提供给同步器对象82A。然后,基于行64A的数据,同步器对象82A可生成模型对象70A和其对应的一组属性72A-B。
就这方面,同步器对象82A可为行64A确定多种类型中的一个(例如,基于如上所述的第十七字符位置的数据)。然后,同步器对象82A可选择一组模型对象类型中的一个,其中每一模型对象类型对应于单个类型的行,并且同步器对象82A可创建具有该模型对象类型的新的模型对象70A。同步器对象82A还生成与该新的模型对象70A的模型对象类型相关的一组属性72A-B。最后,同步器对象82A可基于行64A的数据和属性72A-B的字符范围获得每一属性72A-B的数据。具体地,同步器对象82A可确定属性72A-B的字符范围,获得来自行64A的该字符范围的数据,并将所获得的数据存储为属性72A-B的数据。
另外,用户16可请求使用可视编辑器80来生成新的模型对象70A。在这种情况下,同步系统38可生成新的同步器对象82A,而该新的同步器对象82A可基于所请求的模型对象70A的类型来生成新的模型对象70A和相应属性72A-B。新的模型对象70A可包括对于每一属性72A-B的默认数据。此外,同步器对象82A可基于新的模型对象70A在源代码50中创建新行64A。随后,用户16可修改一个或多个属性72A-B的数据并且同步器对象82A可基于该修改来更新行64A的数据。
尽管这里本发明被示出及描述为用于管理计算机程序代码的开发对象的方法和系统,但是,可以理解,本发明可进一步提供各种可选实施例。例如,在一个实施例中,本发明提供一种包括计算机程序代码的计算机可读介质,该计算机程序代码使得计算机基础结构能够管理开发对象。就这方面,该计算机可读介质包括实现本发明的各过程步骤中的每一个的程序代码,例如开发系统30(图1)。可以理解,术语“计算机可读介质”包括该程序代码的一个或多个任意类型的物理实现。具体地,该计算机可读介质可包括程序代码,该程序代码包括在一个或多个便携存储制造物品(例如,光盘、磁盘、磁带等)上、诸如存储器22(图1)和/或存储系统29(图1)的计算设备的一个或多个数据存储部分(例如,硬盘、只读存储器、随机存储器、高速缓冲存储器等)上、和/或作为在网络上传播的数据信号(例如,在程序代码的有线/无线电子分布期间)。
在另一实施例中,本发明提供一种以订阅、广告和/或收费为基础的执行本发明的过程步骤的商业方法。也就是,服务提供者,诸如因特网服务提供者,可提供以管理计算机程序代码的开发对象,如上所述的那样。在这种情况下,服务提供者能够为一个或多个客户创建、维护、支持实现本发明的过程步骤的计算机基础结构,诸如计算机基础结构12(图1)。作为回报,在订阅和/或付费协议下,服务提供者可收到来自客户的支付,和/或服务提供者可收到来自对于一个或多个第三方的广告空间出售的支付。
在又一实施例中,本发明提供一种生成用于管理计算机程序代码的开发对象的系统的方法。在这种情况下,可获得诸如计算机基础结构12(图1)的计算机基础结构(例如创建、维护、使之可用等),并且可获得一个或多个用于执行本发明的过程步骤的系统(例如创建、购买、使用、修改等)并且将其部署到该计算机基础结构中。就这方面,每个系统的部署可包括(1)在诸如计算设备14(图1)的计算设备上从计算机可读介质安装程序代码;(2)对该计算机基础结构添加一个或多个计算设备;以及(3)合并和/或修改计算机基础结构的一个或多个现有系统,以使得该计算机基础结构能够执行本发明的过程步骤。
如这里所使用的,可以理解,术语“程序代码”和“计算机程序代码”是同义的,指一组指令的以任何语言、代码或符号的任何表达,该组指令旨在使具有信息处理能力的计算设备执行特定功能,该特定功能的执行是直接的或者在下面全部或任一之后进行的:(a)转换为另一种语言、代码或符号;和/或(b)以不同的材料形式再现。就这方面,程序代码可被实现为一种或多种类型的程序产品,诸如应用/软件程序(例如,IDE)、分软件/功能库、操作系统、用于特定计算设备的基本I/O系统/驱动器和/或I/O设备等。
本发明的各方面的上述描述是为了说明和描述的目的而提出的。其并不旨在穷举或将本发明限制在所公开的确切形式,显而易见地,各种修改和变换都是可能的。这种对于本领域的技术人员来说显而易见的修改和变换都旨在包括在由所附权利要求定义的本发明的范围内。

Claims (27)

1.一种管理计算机程序代码的开发对象的方法,该方法包括:
获得包括该计算机程序代码的源代码的第一开发对象,其中该源代码以位置语言编写并包括一组行;
获得包括文档对象模型(DOM)的第二开发对象,其中该DOM包括对应于上述一组行的一组模型对象;以及
使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步。
2.如权利要求1所述的方法,其中上述获得第二开发对象步骤包括使用上述一组同步器对象基于上述源代码来生成上述DOM。
3.如权利要求1所述的方法,进一步包括基于上述DOM生成上述计算机程序代码。
4.如权利要求1所述的方法,进一步包括对于上述源代码中的每一行生成上述一组同步器对象中的一唯一同步器对象。
5.如权利要求4所述的方法,其中上述一组同步器对象中的每一同步器对象对应于上述一组模型对象中的一唯一模型对象。
6.如权利要求5所述的方法,其中上述DOM进一步包括与上述一组模型对象中的每一模型对象相关的一组属性,其中该组属性中的每一属性对应于相应行的一字符范围。
7.如权利要求6所述的方法,其中上述使用步骤包括:
在上述一组同步器对象中的相应一个处接收对于上述一组属性中的一个属性的数据的修改;以及
利用该组同步器对象中的该一个同步器对象,
根据上述相应模型对象选择上述一组行中的一行;以及
更新选定行上对应于上述一组属性中的该一个属性的字符范围的数据。
8.如权利要求6所述的方法,其中上述使用步骤包括:
在上述一组同步器对象中的相应一个处接收对于上述一组行中的一行的数据的修改;以及
利用该组同步器对象中的该一个同步器对象,
根据上述修改的字符位置和对应于上述一组属性中的每一属性的字符范围,选择相应模型对象的上述一组属性中的一个;以及
更新上述一组属性中选定属性的数据。
9.一种用于使计算机基础结构能够管理计算机程序代码的开发对象的计算机可读介质,该计算机可读介质包括用于执行权利要求1的方法步骤的计算机程序代码。
10.一种生成用于管理计算机程序代码的开发对象的系统的方法,该方法包括:
获得计算机基础结构;以及
对于权利要求1的每一步骤,向该计算机基础结构部署用于执行该步骤的装置。
11.一种管理计算机程序代码的开发对象的方法,该方法包括:
获得包括该计算机程序代码的源代码的第一开发对象,其中该源代码以位置语言编写并包括一组行;
获得包括对应于该源代码的文档对象模型(DOM)的第二开发对象,其中该DOM包括:
一组模型对象,其中每一模型对象对应于上述一组行中的一唯一行;以及
一组用于每一模型对象的属性,其中该组属性中的每一属性对应于相应行的一字符范围;以及
使用一组同步器对象来使上述源代码和上述DOM同步,其中该组同步器对象中的每一同步器对象对应于上述一组模型对象中的一唯一模型对象。
12.如权利要求11所述的方法,其中上述使用步骤包括:
在上述一组同步器对象中的相应一个处接收对于上述一组行中的一行的数据的修改;以及
利用该组同步器对象中的该一个同步器对象,
根据上述修改的字符位置和对应于上述一组属性中的每一属性的字符范围,选择相应模型对象的上述一组属性中的一个;以及
更新上述一组属性中选定属性的数据。
13.如权利要求12所述的方法,其中上述接收步骤包括生成用于使用户能够修改上述一组行的数据的源代码编辑器。
14.如权利要求11所述的方法,其中上述使用步骤包括:
在上述一组同步器对象中的相应一个处接收对于上述一组属性中的一个属性的数据的修改;以及
利用该组同步器对象中的该一个同步器对象,
根据上述相应模型对象选择上述一组行中的一行;以及
更新选定行上对应于上述一组属性中的该一个属性的字符范围的数据。
15.如权利要求14所述的方法,其中上述接收步骤包括生成用于使用户能够修改上述一组属性的数据的可视编辑器。
16.如权利要求11所述的方法,进一步包括基于上述DOM生成上述计算机程序代码。
17.如权利要求11所述的方法,其中上述获得第二开发对象步骤包括:
对于上述一组行中的每一行,
生成用于该行的同步器对象;
将该行的数据提供给该同步器对象;以及
使用该同步器对象生成对应于该行的模型对象和一组属性。
18.如权利要求17所述的方法,其中上述生成模型对象步骤包括:
基于上述数据选择一组模型对象类型中的一个;
创建具有该模型对象类型的新模型对象;以及
基于上述行的数据和上述一组属性中的每一属性的字符范围,为该新模型对象获得该属性的数据。
19.一种用于使计算机基础结构能够管理计算机程序代码的开发对象的计算机可读介质,该计算机可读介质包括用于执行权利要求11的方法步骤的计算机程序代码。
20.一种生成用于管理计算机程序代码的开发对象的系统的方法,该方法包括:
获得计算机基础结构;以及
对于权利要求11的每一步骤,向该计算机基础结构部署用于执行该步骤的装置。
21.一种用于管理计算机程序代码的开发对象的系统,该系统包括:
用于获得包括该计算机程序代码的源代码的第一开发对象的系统,其中该源代码以位置语言编写并包括一组行;
用于获得包括文档对象模型(DOM)的第二开发对象的系统,其中该DOM包括对应于上述一组行的一组模型对象;以及
用于使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步的系统。
22.如权利要求21所述的系统,进一步包括用于生成用于使用户能够修改上述一组行的数据的源代码编辑器的系统。
23.如权利要求21所述的系统,进一步包括用于生成用于使用户能够修改上述一组模型对象中的至少一个模型对象的数据的可视编辑器的系统。
24.如权利要求21所述的系统,其中上述用于获得第二开发对象的系统包括:
用于生成与上述一组模型对象中的每一模型对象相关的一组属性的系统;以及
用于基于相应行上的字符范围的数据获得上述一组属性中每一属性的数据的系统。
25.如权利要求21所述的系统,进一步包括用于基于上述DOM生成上述计算机程序代码的系统。
26.一种存储在计算机可读介质上的程序产品,当该程序产品执行时,其管理计算机程序代码的开发对象,该程序产品包括:
用于获得包括该计算机程序代码的源代码的第一开发对象的程序代码,其中该源代码以位置语言编写并包括一组行;
用于获得包括文档对象模型(DOM)的第二开发对象的程序代码,其中该DOM包括对应于上述一组行的一组模型对象;以及
用于使用一组同步器对象,基于由位置语言定义的一组字符范围使上述源代码和上述DOM同步的程序代码。
27.如权利要求26所述的程序产品,其中该程序产品被实现为用于基于位置语言和上述源代码生成计算机程序代码的综合开发环境应用。
CNB2006100582116A 2005-03-10 2006-02-24 用于管理计算机程序代码的开发对象的方法和系统 Expired - Fee Related CN100363892C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/906,872 2005-03-10
US10/906,872 US7480897B2 (en) 2005-03-10 2005-03-10 Method and system for managing development objects for computer program code

Publications (2)

Publication Number Publication Date
CN1831766A true CN1831766A (zh) 2006-09-13
CN100363892C CN100363892C (zh) 2008-01-23

Family

ID=36972489

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100582116A Expired - Fee Related CN100363892C (zh) 2005-03-10 2006-02-24 用于管理计算机程序代码的开发对象的方法和系统

Country Status (3)

Country Link
US (1) US7480897B2 (zh)
JP (1) JP2006252557A (zh)
CN (1) CN100363892C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515278A (zh) * 2021-06-16 2021-10-19 深圳奥哲网络科技有限公司 低代码模型处理方法、系统、电子设备及存储介质

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010946B2 (en) * 2005-03-18 2011-08-30 Oracle International Corporation Apparatus for analysing and organizing artifacts in a software application
US7681178B1 (en) * 2005-07-22 2010-03-16 Adobe Systems Incorporated Cascading style sheets (CSS) prototype pointer chaining in object-oriented environment
US8775974B2 (en) * 2005-12-21 2014-07-08 International Business Machines Corporation Multi-contextual delta navigation in a compare view
US7966346B1 (en) * 2006-01-23 2011-06-21 Coverity, Inc. Updating groups of items
US7770146B2 (en) * 2006-05-19 2010-08-03 Sap Ag Computer software development incorporating core and compound services
US20080088877A1 (en) * 2006-10-16 2008-04-17 Michael Cacenco System and Method for Updating Reference to a Data-Source In a Component-Based Application
CA2564054A1 (en) 2006-10-16 2008-04-16 Research In Motion Limited System and method for updating reference to a data-source in a component-based application
US7904418B2 (en) * 2006-11-14 2011-03-08 Microsoft Corporation On-demand incremental update of data structures using edit list
US7949949B2 (en) * 2006-11-20 2011-05-24 Intentional Software Corporation Domain transformation languages
US7926026B2 (en) * 2006-12-20 2011-04-12 Sap Ag Graphical analysis to detect process object anomalies
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 インターナショナル・ビジネス・マシーンズ・コーポレーション モデル駆動型開発を支援する装置及び方法
US8996349B2 (en) * 2007-10-11 2015-03-31 Microsoft Technology Licensing, Llc Synchronizing an abstract model and source code
JP4971095B2 (ja) * 2007-10-12 2012-07-11 株式会社野村総合研究所 コーディング支援装置
JP4971096B2 (ja) * 2007-10-12 2012-07-11 株式会社野村総合研究所 コーディング支援装置
US8365140B2 (en) * 2007-12-20 2013-01-29 Hsbc Technologies Inc. Automated methods and systems for developing and deploying projects in parallel
US8166449B2 (en) * 2008-01-17 2012-04-24 Microsoft Corporation Live bidirectional synchronizing of a visual and a textual representation
US9535692B2 (en) 2008-03-14 2017-01-03 Adobe Systems Incorporated Systems and methods for managing related files in a software development environment
US8356277B1 (en) 2008-04-04 2013-01-15 Adobe Systems Incorporated System and method for freezing operation of dynamic code of a run-time web page
US8713520B2 (en) * 2008-04-04 2014-04-29 Adobe Systems Incorporated Web development environment that enables a developer to interact with run-time output presentation of a page
US9639331B2 (en) 2008-07-09 2017-05-02 International Business Machines Corporation Service interface creation and modification for object-oriented services
US8135690B2 (en) * 2009-01-05 2012-03-13 Microsoft Corporation Concurrency object classification
US20110173589A1 (en) * 2010-01-13 2011-07-14 Microsoft Corporation Cross-Browser Interactivity Testing
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
US9460224B2 (en) 2011-06-16 2016-10-04 Microsoft Technology Licensing Llc. Selection mapping between fetched files and source files
US9753699B2 (en) * 2011-06-16 2017-09-05 Microsoft Technology Licensing, Llc Live browser tooling in an integrated development environment
US9176937B2 (en) * 2012-04-05 2015-11-03 International Business Machines Corporation Ensuring user interface specification accurately describes user interface after updates to user interface
US9501263B2 (en) * 2014-12-18 2016-11-22 Oracle International Corporation Automated model derivation and alignment
CN113918427B (zh) * 2021-12-14 2023-03-31 阿里云计算有限公司 一种数据变更响应方法以及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146221A (en) 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
CA2175711A1 (en) 1996-05-01 1997-11-02 Lee Richard Nackman Incremental compilation of c++ programs
US6367068B1 (en) 1998-11-13 2002-04-02 Microsoft Corporation Dynamic parsing
US6675354B1 (en) * 1999-11-18 2004-01-06 International Business Machines Corporation Case-insensitive custom tag recognition and handling
US6745208B2 (en) * 2001-05-31 2004-06-01 International Business Machines Corporation Method and apparatus for synchronizing an XML document with its object model
US20020181507A1 (en) 2001-06-01 2002-12-05 Jones Clifton T. System and method of incremental parsing
US20040168124A1 (en) * 2001-06-07 2004-08-26 Michael Beisiegel System and method of mapping between software objects & structured language element-based documents
US6862588B2 (en) 2001-07-25 2005-03-01 Hewlett-Packard Development Company, L.P. Hybrid parsing system and method
US7058567B2 (en) 2001-10-10 2006-06-06 Xerox Corporation Natural language parser
US6798362B2 (en) 2002-10-30 2004-09-28 International Business Machines Corporation Polynomial-time, sequential, adaptive system and method for lossy data compression
CA2418255A1 (en) 2003-01-31 2004-07-31 Ibm Canada Limited - Ibm Canada Limitee Tracking and maintaining related and derivative code
US7617450B2 (en) * 2004-09-30 2009-11-10 Microsoft Corporation Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515278A (zh) * 2021-06-16 2021-10-19 深圳奥哲网络科技有限公司 低代码模型处理方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
JP2006252557A (ja) 2006-09-21
US20060206865A1 (en) 2006-09-14
CN100363892C (zh) 2008-01-23
US7480897B2 (en) 2009-01-20

Similar Documents

Publication Publication Date Title
CN1831766A (zh) 用于管理计算机程序代码的开发对象的方法和系统
CN109840429B (zh) 智能合约部署、调用方法和装置
CN1257473C (zh) Html文档中增加可访问性的主动alt标记的方法和系统
CN102455913B (zh) 显示模板的定制
CN101122899B (zh) 报表的生成方法和设备
CN111178023A (zh) 一种可视化自定义报表设计系统
CN113297825A (zh) 动态可视化的表单应用设计系统和计算机可读存储介质
CN1159665C (zh) 创建定制数据库的方法和设备
CN102609264A (zh) 一种调用应用程序编程接口生成调用代码的方法及装置
CN112650766A (zh) 数据库数据操作的方法、系统及服务器
CN113419728B (zh) 营销页面的搭建方法、装置、设备及存储介质
CN103197932A (zh) 一种开发无模式文档型数据库应用的业务组件模型
CN112148343B (zh) 规则发布方法、装置及终端设备
CN109857398A (zh) 一种前端页面的生成方法、装置、存储介质及计算机设备
CN113568925B (zh) 一种报文数据的转换方法、装置、电子设备及存储介质
CN101876998B (zh) 一种实现数据编辑的方法和系统
US7802181B2 (en) Document processing device and document processing method
CN1809811A (zh) 用于借助中心xml配置文件生成分布式java应用的方法和装置
CN102486731B (zh) 增强软件的软件调用栈的可视化的方法、设备和系统
CN1567287A (zh) 一种基于可扩展标记语言的集中式广谱报表生成方法
CN103678687A (zh) 基于配置系统的项目创建方法及装置
CN114817803A (zh) 一种页面跳转方法、装置和电子设备
CN104156209A (zh) 跨平台应用界面建模方法及装置
CN114281539A (zh) 一种资源配置方法、系统及存储介质
CN114047999A (zh) 页面配置的方法、系统、电子设备和存储介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080123

Termination date: 20190224