CN101171571B - 分析和组织软件应用程序中的物件的设备 - Google Patents

分析和组织软件应用程序中的物件的设备 Download PDF

Info

Publication number
CN101171571B
CN101171571B CN200680014893.9A CN200680014893A CN101171571B CN 101171571 B CN101171571 B CN 101171571B CN 200680014893 A CN200680014893 A CN 200680014893A CN 101171571 B CN101171571 B CN 101171571B
Authority
CN
China
Prior art keywords
information
quoting
assembly
user
artifact
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.)
Active
Application number
CN200680014893.9A
Other languages
English (en)
Other versions
CN101171571A (zh
Inventor
E·杂伊
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.)
Oracle International Corp
Original Assignee
Oracle International 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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN101171571A publication Critical patent/CN101171571A/zh
Application granted granted Critical
Publication of CN101171571B publication Critical patent/CN101171571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在一个交互式开发环境(IDE)(30)中,包括导航器(32),文档编辑器(34)和调试器(36),响应通过所述文档编辑器(34)从用户/开发人员处接收的命令/输入以浏览特定物件,所述导航器(32)从数据库(22)中检索物件记录以检索并显示所述文档编辑器(34)中与物件相关的文件。调试器(36)使用物体之间的关系/相关性信息以便于调试物件,并使用文档分析器(14)生成用户界面,来允许开发人员浏览并编辑包括诸如全局变量和其值的物件。

Description

分析和组织软件应用程序中的物件的设备
相关申请交叉引用
本国际申请要求2005年3月18日申请的美国专利申请号11/083,644的优先权。
技术领域
本发明的实施例一般涉及软件开发领域,并具体涉及编程工具。
背景技术
目前,软件应用程序具有几个组件是常见的,这里不是所有组件都以同一种语言编写或使用相同的技术编写。例如,软件应用程序也可具有以Java,C++,XML(可扩展标记语言),HTML(超文本标记语言)等编写的组件,并可进一步包括基于不同技术,如Javaservlet,JavaBeans,Java服务器页面,企业JavaBeans(EJB)等的组件。通常的情形是不是所有组件都是由同一程序员或同一编程队伍编写的。组件甚至可以是促进应用程序开发的框架的一部分。框架提供了作为问题总解决方案的规范或实施(例如,类的集合)。框架的一个例子是Struts框架,其提供促进Web应用程序开发的组件。通常,为了用框架开发软件应用程序,开发人员要向框架中增加组件,因此增加的组件与框架的组件一起执行软件应用程序所要求的逻辑和组合功能。
假定在开发软件应用程序中,开发人员可能必须使用由其他人通常以不同语言编写的组件,则很可能由开发人员编写的代码包括语句或物件引用(reference to artifact)。这里使用的术语“物件(artifact)”指任何代码体,组件或引用代码体外定义的和作为分开实体独立于引用代码体存在的结构。通常物件是在引用代码之前创建的,并以与引用代码的语言不同的语言编写。例如,当为web应用程序创建Java服务器页面时,开发人员可引用所谓“VerifyCardNumber”的物件,其包括在线购买交易进行时校验消费者的信用卡号的逻辑。物件“VerifyCardNumber”可以是框架的一部分,同样可以先于为Java服务器页面编写的代码,并可以用不同的语言编写,如Java或C++。
在上面描述的软件开发方法中,保持语义和句法一致性可能有困难并要求详细了解所用的每个物件。
如果物件之间的一致性错误没有在创建或修改源代码过程中被检测,那么唯一的替代方法是在汇编的物件部署(deployed)后和运行时检测它们。可以用几种方式证明一致性错误,范围包括应用程序的小错误到灾难性失败。这些错误也可以长时间保持不被检测到从而导致应用程序在不合适的时间失效,有可能引起严重的经济后果。
发明内容
按照本发明的第一方面,提供的方法包括产生用户界面从而允许用户作出与应用程序的第一组件有关的输入;且如果该输入涉及物件,则向用户提供选择的关于物件的信息。
按照本发明的第二方面,提供的方法包括收集关于被应用程序第一组件中的语句引用的物件的信息;并为每个被语句引用的物件输出运行时间数据从而促进第一组件的调试。
按照本发明的第三方面,提供的方法包括为应用程序中的每个组件收集关于其中出现的物件的信息并将该信息存储在数据库中。
本发明的其他方面可从下面的详细描述中明显看出。
附图说明
图1示出源代码包括对物件引用的应用程序的组件;
图2示出根据本发明的一个实施例的文档分析器和数据库;
图3根据本发明的一个实施例以交互式开发环境(IDE)形式示出一种设备;
图4示出可根据本发明的一个实施例分析的代表性文档的物件;
图5图解说明了根据本发明一个实施例的技术插件(plug-in);
图6示出根据本发明的一个实施例由文档分析器执行的操作的流程图;
图7示出根据本发明的一个实施例的物件记录的例子;
图8示出根据本发明的一个实施例的数据库视图,其中可看到多个物件记录;
图9示出根据本发明的一个实施例的操作流程图,其用来在物件被编辑和改变时执行实时分析;
图10图解说明了根据本发明的一个实施例由IDE执行的操作的流程图,该操作是为了提供实时一致性检查和验证;
图11图解说明了根据本发明的一个实施例由IDE执行的操作的流程图,该操作是为了辅助开发人员为引用物件的语句作出合法选择;
图12图解说明了JSP源代码是如何通过XML配置文件与Java代码关联的;
图13示出相应于图12中Java源代码的Java方法的例子;
图14示出图12中JSP源代码的代表性代码;
图15示出根据本发明的一个实施例,在开发人员已经选择正确方法后的图12的JSP源代码;
图16和17示出本发明的一个实施例如何辅助从图12中JSP源代码导航到图12中Java源代码;
图18和19示出本发明的实施例如何提供实时一致性分析;以及
图20示出可用来执行本发明的实施例的硬件的例子。
具体实施方式
在下面的描述中,为了解释的目的,给出了多种具体细节以便提供对本发明透彻的理解。然而,显然本领域技术人员没有这些具体细节也可以实施本发明。在其他情形中,结构和装置仅以方框图的形式示出以便避免使本发明晦涩。
说明书中,“一个实施例”是指结合该实施例描述的特定的特征,结构或特性被包括在本发明的至少一个实施例中。在本说明书多个地方出现的短语“在一个实施例中”不一定是指同一个实施例,也不是与其他实施例绝对分开的或可替换的实施例。而且,这里描述的各种特征可由某些而非其他实施例展示。类似地,描述了各种要求,它们可以是对某些实施例而非对其他实施例的要求。
在一个实施例中,本发明提供了分析相关物件之间关系从而判断它们是否彼此一致的设备,即使物件是以不同编程语言实现的。可基于应用程序类型(如,.NET,J2EE)为任意文档集合和物件配置设备。在另一个实施例中,设备可经配置来分析特定架构或框架内的物件,如微软动态服务器页面,或阿帕奇开放源代码Struts框架。设备是可扩展的,并可扩展支持额外的语言或完全不同的架构或框架。
有利地,所述设备提供应用程序类型内所有物件和文档类型的相关性和一致性分析。在一个实施例中,文档分析可在给定物件在编辑器内修改时执行。一旦物件被编辑,通过多种指示符(如控制台信息,文本突出显示,鼠标在非法语句上呈现的信息)提供即时反馈。在关系的每个方向上该分析检查句法错误和语义错误。也就是,由引用不存在物件产生的错误(如,误命名界面引用)或具有一个或多个依赖关系的物件的改变(如被应用程序中其他物件使用的界面的改变)。
基于关于物件的信息和它们在全部文档内和文档间的关系,该设备在应用程序类型内的所有物件和文档类型上提供句法和语义完整性。在一个实施例中,该设备为被引用对象提供候选关键词和合法名称。例如,在J2EE中,当引用Java类界面编辑JSP时,在编辑器中提供类的候选方法名称的列表。
现在参考附图中的图1,参考数字10通常表示应用程序的组件。组件10是源代码包括对物件的引用的代表性组件。例如,在web应用程序情况下,组件10可以是Java服务器页面(JSP)形式的文档,其标题可以是,例如“home.jsp”,并可包括对独立于组件10存在的物件12的引用。如可从附图的图1中看到的那样,物件12中的某些物件是以不同于组件10的Java服务器页面技术的语言/技术编写的。
在本发明的一个实施例中,应用程序包括多个组件/文档10,每个组件/文档引用该应用程序的容器(container)或框架内的一组物件12,分析该应用程序以便确定关于物件的信息。因此,在一个实施例中,提供了文档分析器14,如从附图的图2中看到的那样。参考图2,在物件被创建时,文档分析器14分析物件。在一个实施例中,在物件被修改时,文档分析器14可以分析物件。文档分析器可以从文件系统16中导入物件以便分析。在一个实施例中,文档分析器14使用大量技术插件18,每个插件相应于特定的应用程序类型20。通常,应用程序类型相应于部署容器,如J2EE或.NET。每个技术插件18拥有关于物件的信息,该物件包括文档和确定文档10内部和它们之间的物件一致性的规则。技术插件18将在下面参考图5更详细地描述。
在一个实施例中,提供了数据库22以便存储关于物件的信息,该信息是由于文档分析器14执行分析而产生的。
图3根据本发明的一个实施例以交互式开发环境(IDE)30的形式示出一种设备。除了参考图2描述的组件,IDE 30包括导航组件或导航器32,文档编辑器34和调试器36。在一个实施例中,用户通过文档编辑器34与IDE 30互动。如果用户正在创建新物件,则文档分析器14检查物件的句法和语义错误并在数据库22中创建一个物件记录(或多个记录)。如果物件已经存在,那么文档分析器14检查对物件的改动,且任何检测到的错误被显示在文档编辑器34中。如果用户保存物件,则在文件系统16中存储或更新物件,并在数据库22中添加或更新物件记录。
导航
在一个实施例中,IDE 30支持跨越物件间关系的能力。在该实施例中,响应经文档编辑器34从用户/开发人员处接收以观察特定物件的命令/输入,导航器32在数据库22中检索物件记录,从而确定从文件系统16中得到哪些文件并显示在文档编辑器34中。
在一个实施例中,对于J2EE应用程序类型,数据库22内的Java服务器页面(JSP)文档40(参看图4)包括几个物件42并引用这些物件。物件42可包括文档的JSP文件(如home.jsp),一个或多个包括的JSP文件(如标题(header)header.jsp,导航JSPleftnav.jsp),某些图像文件(如titlebar.gif和logo.gif)和来自属性文件(rsrcs.properties)的资源文本。JSP文档40可以被显示在文档编辑器34中。由用户/开发人员发出并由IDE 30接收的任何查看特定物件42的导航命令使导航器32查询数据库22并从数据库22中检索对物件42的引用。然后导航器22使用该引用从文件系统16中检索物件。最终结果是特定物件42被显示在文档编辑器34中。
因为所有物件关系都保存在数据库22中,导航器32可跨越跨不同技术和不同架构层的关系。
技术分析插件
如上所述,文档分析器14利用技术分析插件18来提供分析和显示物件的逻辑。图5图解说明了根据本发明的一个实施例的技术分析插件18的组件。图5还示出根据一个实施例技术插件18如何与文档分析器14和文档编辑器34交互。参考图5,可以看到每个技术插件18包括阅读器50,编辑器52,验证器54和收集器56。阅读器50和编辑器52为文档编辑器34提供额外的专用技术逻辑。例如,根据该技术和相应于该技术的技术插件18的阅读器50如何被执行,阅读器50可示出图表而非文本。验证器54提供规则来控制由文档分析器14执行的句法和语义检查。收集器56提供设备以收集所有包括被分析技术的物件的元素。
数据库22的导入/创建和更新
图6示出根据本发明的一个实施例由文档分析器14执行的操作的流程图。参考图6,在过程60中,文档分析器14为存储在文件系统16中的应用程序检查每个文件,从而确定该文件是否是经配置由文档分析器14管理的文件。例如,某些文件不由文档分析器14管理。不由文档分析器14管理的文件的例子包括图像文件,如JPEG格式的文件。如果文件由文档分析器14管理,则在62处理流程跳转到过程64,在过程64所有与该文件相关的物件被收集。在执行过程64中,文档分析器14使用适当技术插件18的收集器56。在过程66,文档分析器14分析收集的物件从而确定关于该物件的信息。在本发明的一个实施例中,物件的信息包括诸如物件名称,类型,父物件,物件路径名称,物件引用和物件依赖关系的信息。在一个实施例中,在过程66,文档分析器14生成包括物件信息的物件记录。这样的物件记录70的例子在图7中示出。在过程66中,文档分析器14在数据库22中存储每个物件记录70。图8示出数据库22,其中可看到各种物件记录70。在图8中,箭头72指示物件记录70间的依赖关系信息。
在本发明的一个实施例中,物件记录70提供导航器32和调试器36,和它们要求执行各自功能的信息。
调试器36
在一个实施例中,调试器36使用物件之间的关系/依赖关系信息从而促进一个技术物件的调试,该物件取决于另一个技术的物件。类似于导航器32,调试器36使用数据库22跨越或导航至被引用的物件。调试器36也利用文档分析器14生成用户界面(UI),从而允许开发人员查看和编辑物件,该物件包括诸如全局变量和它们的值的信息,这些值仅作为保持整个应用程序的充分的语义理解的结果确定的。按照这里揭示的技术,在一个实施例中,文档分析器14收集关于被应用程序的第一组件(源代码)的语句引用的物件的信息。
然后,调试器36为该语句引用的每个物件输出运行时间数据以便于第一组件的调试。根据关于存储在数据库22中的每个被引用物件的信息,调试器36能够输出运行时间数据。
交互作用——动态分析
图9示出根据本发明的一个实施例的操作流程图,该操作用于在物件被编辑和被改变时执行实时分析。参考图9,当在文档编辑器34中的输入停止时,超时会引发执行实时一致性检查。在过程80,文档分析器14确定被编辑的物件是否被改变。如果物件已经改变,文档分析器14通过调用收集器56取回所有物件,从而在过程82为相关的文档物件从数据库22收集所有引用。在过程84,文档分析器14为被引用物件调用验证器54以检查一致性并记录任何错误。文档分析器重复过程80,82和84,直到在86的检查确定没有其它引用要被检查。当所有引用都已被检查时,分析完成且一致性或错误日志可以多种方式显示,包括简单拷贝错误日志至控制台或在文档编辑器34中的物件视图中突出显示错误。
附图中的图10图解说明了根据本发明的一个实施例由IDE30执行的操作的流程图,以便提供实时一致性检查和验证。参考图10,在过程90,文档编辑器34接收编辑所开发的应用程序的组件的源代码的输入。响应输入,按照上述技术,文档分析器14执行一致性检查从而确保源代码和所有被源代码引用的物件之间的一致性。如果在92一致性检查发现错误,那么在过程94开发人员被告知该错误。
图11图解说明了根据本发明的一个实施例由IDE 30执行的操作的流程图,以便辅助开放人员为引用物件的语句作合法选择。参考图11,在过程100,接收涉及物件的输入的第一字符,该输入由开发人员输入。例如,输入可以是在物件中定义的变量名称。在过程102,基于对给物件的输入的合法选择,文档分析器14按照上述技术查询数据库22,并在过程104显示输入的可能选择的列表。在过程106,接收开发人员从列表选择的选项并用来自动完成输入。
例子
本发明的实施例如何被开发人员使用的例子将在下面说明。参考图12,Java服务器页面(JSP)包括JSP源代码110,其引用Java源代码112。JSP源代码110和Java源代码112之间的关系是在XML配置文件114中定义的。
图13示出截屏116,其中可看到相应于信用卡处理应用程序的Java源代码112的Java方法的例子。
图14示出相应于用户界面的JSP源代码110的代表性代码118,该用户界面收集并在web页面上显示信用卡信息。代表性代码118引用以Java编写的方法获得信用卡号码。代表性代码118存JSP语句中引用该方法,该JSP语句将文本属性120设定为由Java编写的程序处理的值。上面描述的由本发明的实施例执行的分析保持关于JSP源代码110和Java源代码112之间关系的信息,该信息由XML配置文件114描述。Java源代码112中定义的可应用的方法可显示,如以下拉式列表122显示,从而辅助开发人员输入正确的方法名称。
图15示出开发人员从列表选择适当方法名称并将其加入JSP语句120后的JSP源代码110。
图16和17示出本发明的实施例如何可以辅助从JSP源代码110到Java源代码112的导航。
图16示出程序员选择引用称作“cardNumber”的Java方法参数126的截屏,以便从JSP源代码110导航到Java源代码112。
响应程序员选择Java方法参数126,按照上述技术,查询数据库22从而确定适当的Java源代码112的方法,然后突出显示该方法并显示给程序员,如图17中的参考数字128所示。
图18和19示出本发明的实施例如何提供实时一致性分析。在图18中,示出了在getCardNumber方法已经改变为getCreditCardNumber(如标识号130指示)后的Java源代码112,从而在Java源代码112和其引用的JSP源代码110之间产生不一致性。在一个实施例中,立即显示错误消息132从而警告程序员存在引用已经改变的方法的JSP。图18示出错误消息132,同时显示Java源代码112,而图19示出错误消息132,同时显示JSP源代码。
参考图20,参考数字150通常表示可用来根据一个实施例执行IDE 30或执行这里所述的任何技术的硬件。硬件150通常包括耦合到存储器154的至少一个处理器152。处理器152可表示一个或更多个处理器(如微处理器),存储器154可表示随机存储器(RAM)装置,其包括硬件150的主存储装置,以及任何补充级存储器,如缓存,非易失性存储器或备份存储器(如可编程存储器或闪存),只读存储器等。此外,可以认为存储器154包括物理上位于硬件150中其它地方的存储器,如处理器152中的任何缓存,以及用作虚拟存储器的任何存储容量,如在大容量存储装置160中存储的。
硬件150通常也接收大量输入和输出以便与外部交换信息。为了与用户或操作员接口,硬件150可包括一个或更多个用户输入装置156(如,键盘,鼠标等)和显示器158(如阴极射线管(CRT)监视器,液晶显示器(LCD)面板)。
对于额外的存储,硬件150也可包括一个或更多个大容量存储装置160,如软盘或其他可移动硬盘驱动器,硬盘驱动器,直接存取存储装置(DASD),光驱(如紧凑型光盘(CD)驱动器,数字多用途盘(DVD)驱动器等)和/或磁带驱动器,以及其他装置。而且,硬件150可包括与一个或更多个网络162(如局域网(LAN),广域网(WAN),无线网络,和/或因特网,以及其他网络)的接口,从而允许与耦合到网络的其他计算机传递信息。应该理解,硬件150通常包括本领域公知的在处理器152和组件154,156,158和162中的每个组件之间的合适的模拟和/或数字接口。
硬件150在操作系统164的控制下操作并执行各种计算机软件应用程序166,组件,程序,对象,模块等(如执行上述操作的程序或模块)。而且,各种应用程序,组件,程序,对象等也可在经网络162耦合到硬件150的另一个计算机中的一个或更多个处理器上执行,如在分布式计算环境中,从而使执行计算机程序功能所要求的处理也可经网络分配到多个计算机。
一般地,实施本发明的实施例而执行的例行程序可作为操作系统或专用应用程序,组件,程序,对象,模块或被称为“计算机程序”的指令序列的一部分实施。计算机程序通常包括在不同时间设定在计算机的不同存储器和存储装置中的一个或多个指令集合,且当被计算机中的一个或更多个处理器读取和执行时,使计算机执行操作,该操作是执行涉及本发明的各个方面的元素必须的。而且,虽然已经在全功能计算机和计算机系统的环境中描述了本发明,本领域技术人员可以理解,本发明的各种实施例可以各种形式作为程序产品分销,且无关特定类型的机器和用来实现分销的计算机可读介质,本发明都能等效应用。计算机可读介质的例子包括但不局限于可记录类型的介质,如易失性和非易失性存储器装置,软盘和其他可移动盘,硬盘驱动器,光盘(如紧凑型只读存储器盘(CD ROM),数字多用途盘(DVD)等),以及其他装置,和传输型介质,如数字和模拟通信链路。
虽然已经参考特定的示例性实施例说明了本发明,显然,在不偏离权利要求设定的本发明较宽泛的精神前提下,可以对本发明做出多种改进和变化。因此,说明书和附图应被当作说明性的而非限制性的。

Claims (14)

1.一种实时分析软件应用程序中的物件的方法,其包括:
收集关于被所述软件应用程序的文件所引用的物件的信息,其中,所述信息针对每个物件包括物件名称、物件类型、父物件、物件路径名称、物件引用以及物件依赖关系;
针对每个物件产生包括所述信息的物件记录并且将所述物件记录存储在数据库中;
产生所述物件记录之间的依赖关系信息;
接收所述物件中的第一物件的用户编辑,其中所述编辑改变所述第一物件;
在所述编辑期间,基于所述依赖关系信息执行实时一致性检查以确保变化后的第一物件与被所述第一物件引用的所有物件之间的一致性;
其中,所述一致性检查包括检查物件之间的引用错误;
如果基于所述一致性检查发现错误,则向用户显示错误消息;
其中,如果所述编辑包括输入与引用的第二物件相关的一个或多个字符,则查询所述物件记录并且基于所述物件记录实时显示用于引用的所述第二物件的一个或多个可选选项;
基于所述一个或多个可选选项之一,使用所述第一物件中对所述第二物件的引用,接收导航至所述第二物件的请求;
查询所述数据库中的所述物件记录,以检索对所述第二物件的所述引用;
使用对所述第二物件的所述引用检索所述第二物件;以及
响应于所述请求显示所述第二物件。
2.如权利要求l所述的方法,其中所选择信息包括用于给所述物件的输入的合法选项。
3.如权利要求2所述的方法,其中多个合法选项是以列表的形式给出的,所述用户可从该列表做出选择。
4.如权利要求2所述的方法,其中所述合法选项用于自动完成所述输入。
5.如权利要求2所述的方法,其中响应所述用户移动指向装置至显示屏的特定区域,向所述用户显示所述合法选项。
6.一种实时分析软件应用程序中的物件的方法,其包括:
收集关于物件的信息,该物件被应用程序的第一组件中的语句引用;其中并且将所述信息存储在数据库中,所述第一组件为所述应用程序的源代码;以及
为每个被所述语句引用的物件输出运行时间数据,从而促进所述第一组件的调试,其中,所述输出是基于所述信息的,其中,所述信息包括物件名称、类型、父物件、物件路径名称、物件引用、和物件依赖关系中的至少一个;
执行实时一致性检查以确保所述第一组件与被所述第一组件引用的所有物件之间的一致性,其中,当用户编辑所述第一组件时,所述一致性检查被实时执行;
其中,所述一致性检查包括检查物件之间的引用错误;
如果基于所述一致性检查发现错误,则向用户显示错误消息;
其中,如果所述编辑包括输入与引用的物件相关的一个或多个字符,则查询所述信息并且基于物件记录实时显示用于引用的所述物件的一个或多个可选选项;
基于所述一个或多个可选选项之一,使用所述第一组件中对所述物件的引用,接收导航至所述物件的请求;
查询所述数据库中的所述信息,以检索对所述物件的引用;
使用对所述物件的所述引用检索所述物件;以及
响应于所述请求显示所述物件;
其中,所述第一组件和引用的所述物件以不同的程序语言来实现。
7.如权利要求6所述的方法,其中所述物件包括被所述语句间接引用的物件。
8.如权利要求6所述的方法,其中所述物件包括来自所述应用程序的多个组件的物件,这些组件不同于所述第一组件。
9.如权利要求6所述的方法,进一步包括为所述第一组件中每个语句执行所述收集。
10.一种实时分析软件应用程序中的物件的方法,其包括:
为应用程序中的每个组件收集关于应用程序中出现的物件的信息,其中,所述组件为所述应用程序的源代码,其中所述信息针对每个物件包括物件名称、物件类型、父物件、物件路径名称、物件引用以及物件依赖关系;
执行一致性检查以确保所述源代码和所述物件之间的一致性;
将所述信息存储在数据库中;
其中,当用户编辑所述组件时,所述一致性检查被实时执行,其中,所述一致性检查包括检查物件之间的引用错误;
如果基于所述一致性检查发现错误,则向用户显示错误消息;
其中,如果所述编辑包括输入与引用的物件相关的一个或多个字符,则查询所述信息并且基于物件记录实时显示用于引用的所述物件的一个或多个可选选项;
基于所述一个或多个可选选项之一,使用所述组件中对所述物件的引用,接收导航至所述物件的请求;
查询所述数据库中的所述信息,以检索对所述物件的引用;
使用对所述物件的所述引用检索所述物件;以及
响应于所述请求显示所述物件;
其中,所述组件和引用的所述物件以不同的程序语言来实现。
11.如权利要求10所述的方法,进一步包括生成用户界面从而允许用户输入特定组件的代码;并向所述用户提供向导从而将所述输入控制到所述输入涉及存储在所述数据库中的物件的程度。
12.如权利要求10所述的方法,其中所述信息包括物件的名称,物件的方法和物件的属性。
13.如权利要求11所述的方法,其中所述向导包括根据与输入代码涉及的物件有关的信息提供约束所述输入代码的选项。
14.一种实时分析软件应用程序中的物件的系统,其包括:
用于收集关于被所述软件应用程序的文件所引用的物件的信息的模块,其中,所述信息针对每个物件包括物件名称、物件类型、父物件、物件路径名称、物件引用以及物件依赖关系;
用于针对每个物件产生包括所述信息的物件记录并且将所述物件记录存储在数据库中的模块;
用于产生所述物件记录之间的依赖关系信息的模块;
用于接收所述物件中的第一物件的用户编辑的模块,其中,所述编辑改变所述第一物件;
用于在所述编辑期间基于所述依赖关系信息执行实时一致性检查以确保变化后的第一物件与被所述第一物件引用的所有物件之间的一致性的模块;
其中,所述一致性检查包括检查物件之间的引用错误;
用于如果基于所述一致性检查发现错误则向用户显示错误消息的模块;
用于如果所述编辑包括输入与引用的第二物件相关的一个或多个字符、查询所述物件记录并且基于所述物件记录实时显示用于引用的所述第二物件的一个或多个可选选项的模块;
用于基于所述一个或多个可选选项之一、使用所述第一物件中对所述第二物件的引用接收导航至所述第二物件的请求的模块;
用于查询所述数据库中的所述物件记录以检索对所述第二物件的所述引用的模块;
用于使用对所述第二物件的所述引用检索所述第二物件的模块;以及
用于响应于所述请求显示所述第二物件的模块。
CN200680014893.9A 2005-03-18 2006-03-17 分析和组织软件应用程序中的物件的设备 Active CN101171571B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/083,644 US8010946B2 (en) 2005-03-18 2005-03-18 Apparatus for analysing and organizing artifacts in a software application
US11/083,644 2005-03-18
PCT/US2006/009801 WO2006102123A2 (en) 2005-03-18 2006-03-17 Apparatus for analysing and organizing artifacts in a software application

Publications (2)

Publication Number Publication Date
CN101171571A CN101171571A (zh) 2008-04-30
CN101171571B true CN101171571B (zh) 2014-11-26

Family

ID=37011823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680014893.9A Active CN101171571B (zh) 2005-03-18 2006-03-17 分析和组织软件应用程序中的物件的设备

Country Status (4)

Country Link
US (1) US8010946B2 (zh)
EP (1) EP1861776A4 (zh)
CN (1) CN101171571B (zh)
WO (1) WO2006102123A2 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281236B1 (en) * 2003-09-30 2007-10-09 Emc Corporation System and methods for developing and deploying a remote domain system
AU2010201379B2 (en) * 2010-04-07 2012-02-23 Limelight Networks, Inc. System and method for delivery of content objects
US20060265387A1 (en) * 2005-05-20 2006-11-23 International Business Machines Corporation Method and apparatus for loading artifacts
US20060277525A1 (en) * 2005-06-06 2006-12-07 Microsoft Corporation Lexical, grammatical, and semantic inference mechanisms
US7720931B2 (en) * 2006-10-13 2010-05-18 International Business Machines Corporation System and method of remotely managing and loading artifacts
US7761559B2 (en) * 2006-10-13 2010-07-20 International Business Machines Corporation System and method of remotely managing and loading artifacts
US20130024844A1 (en) * 2006-12-27 2013-01-24 The Mathworks, Inc. Continuous evaluation of program code and saving state information associated with program code
US9645915B2 (en) 2006-12-27 2017-05-09 The Mathworks, Inc. Continuous evaluation of program code and saving state information associated with program code
US8464209B2 (en) * 2007-03-19 2013-06-11 Microsoft Corporation Using collaborative development information in a team environment
US8707260B2 (en) * 2007-05-25 2014-04-22 International Business Machines Corporation Resolving interdependencies between heterogeneous artifacts in a software system
US20090063623A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Determining connection information to use to access an artifact from an application on a remote server
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
US8539443B2 (en) * 2008-05-13 2013-09-17 National Instruments Corporation Edit time analyzer in a loosely typed textual language
US9063808B2 (en) * 2008-05-15 2015-06-23 International Business Machines Corporation Deploying a package for a software application
US20100111441A1 (en) * 2008-10-31 2010-05-06 Nokia Corporation Methods, components, arrangements, and computer program products for handling images
US8726238B2 (en) * 2010-02-22 2014-05-13 International Business Machines Corporation Interactive iterative program parallelization based on dynamic feedback
US8244874B1 (en) 2011-09-26 2012-08-14 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
US8745239B2 (en) 2010-04-07 2014-06-03 Limelight Networks, Inc. Edge-based resource spin-up for cloud computing
US8813027B2 (en) * 2010-04-14 2014-08-19 Microsoft Corporation Static type checking against external data sources
EP2589010A4 (en) * 2010-07-01 2014-04-30 Hewlett Packard Development Co MIGRATION OF ARTIFACTS BETWEEN REFERENTIALS OF ARCHITECTURE ORIENTED SERVICE
US8769501B2 (en) * 2011-12-07 2014-07-01 Siemens Aktiengesellschaft Method for analyzing changes in a software code and software analysis system
US8930899B2 (en) 2012-08-18 2015-01-06 International Business Machines Corporation Artifact divider for large scale application builds
US9053228B1 (en) 2013-10-22 2015-06-09 The Mathworks, Inc. Determining when to evaluate program code and provide results in a live evaluation programming environment
CN104793071A (zh) * 2015-03-28 2015-07-22 合肥天海电气技术有限公司 基于j2ee分布式技术的电网故障诊断系统
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US10909080B2 (en) 2015-05-04 2021-02-02 Microsoft Technology Licensing, Llc System and method for implementing shared document edits in real-time
US10740408B2 (en) * 2016-01-11 2020-08-11 Accenture Global Solutions Limited Method and system for generating an architecture document for describing a system framework
US11100009B2 (en) 2020-01-03 2021-08-24 Bank Of America Corporation Intelligent detection and ejection of unused application components
WO2023046277A1 (en) * 2021-09-22 2023-03-30 Siemens Industry Software GmbH Managing artifact information, especially comparing and merging artifact information, method and system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6373502B1 (en) * 1996-07-01 2002-04-16 Sun Microsystems, Inc. Method and apparatus for facilitating popup links in a hypertext-enabled computer system
US6305008B1 (en) * 1998-11-13 2001-10-16 Microsoft Corporation Automatic statement completion
US7685569B2 (en) * 2001-03-01 2010-03-23 International Business Machines Corporation Navigation in computer software applications developed in a procedural language
US7146355B2 (en) * 2001-03-15 2006-12-05 International Business Machines Corporation Method and structure for efficiently retrieving artifacts in a fine grained software configuration management repository
US7322024B2 (en) * 2002-03-18 2008-01-22 Logiclibrary, Inc. Generating reusable software assets from distributed artifacts
US7194475B2 (en) * 2001-10-30 2007-03-20 International Business Machines Corporation Method, system, and program for performing an impact analysis of program statements in at least one source code file
JP2003241964A (ja) * 2002-02-13 2003-08-29 Fujitsu Ltd ソフトウエア保守資料生成装置および生成プログラム
US20030182651A1 (en) * 2002-03-21 2003-09-25 Mark Secrist Method of integrating software components into an integrated solution
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
US20050081189A1 (en) * 2003-10-14 2005-04-14 Sophia Krasikov Aggregation of document elements into runtime code
US7480897B2 (en) * 2005-03-10 2009-01-20 International Business Machines Corporation Method and system for managing development objects for computer program code

Also Published As

Publication number Publication date
WO2006102123A2 (en) 2006-09-28
WO2006102123A3 (en) 2007-08-02
US20060212843A1 (en) 2006-09-21
EP1861776A4 (en) 2008-11-26
CN101171571A (zh) 2008-04-30
EP1861776A2 (en) 2007-12-05
US8010946B2 (en) 2011-08-30

Similar Documents

Publication Publication Date Title
CN101171571B (zh) 分析和组织软件应用程序中的物件的设备
Mäder et al. Do developers benefit from requirements traceability when evolving and maintaining a software system?
EP1680741B1 (en) Testing tool for complex component based software systems
US7571431B2 (en) Processing macro information and displaying via GUI in different tools
US8732656B2 (en) Development environment for managing database aware software projects
US8539282B1 (en) Managing quality testing
US7725501B1 (en) System and method for rapid database application deployment and use
US20060184918A1 (en) Test manager
de Freitas Farias et al. Identifying self-admitted technical debt through code comment analysis with a contextualized vocabulary
Chen et al. A C++ data model supporting reachability analysis and dead code detection
US7305629B2 (en) Consolidation of computer documentation
US20020073118A1 (en) Method, system, computer program product, and article of manufacture for construction of a computer application interface for consumption by a connector builder
EP3314409B1 (en) Tracing dependencies between development artifacts in a software development project
Mehrpour et al. Active documentation: Helping developers follow design decisions
Khoo et al. Path projection for user-centered static analysis tools
Arya et al. Information correspondence between types of documentation for APIs
US20100145748A1 (en) Information technology planning based on enterprise architecture
Stevanetic et al. Supporting the analyzability of architectural component models-empirical findings and tool support
Dhakal et al. Library Tweets Conversion
Bouwers et al. Multidimensional software monitoring applied to erp
Helming et al. Integrating system modeling with project management-a case study
Chimiak-Opoka et al. Requirements analysis for an integrated OCL development environment
Li Reducing the cognitive and temporal costs of software history exploration
Mahmood et al. Virtual Platform: Effective and Seamless Variability Management for Software Systems
Fletton Documentation for software maintenance and there documentation of existing systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ORACLE INT CORP

Free format text: FORMER OWNER: BEA SYSTEMS CORP.

Effective date: 20110831

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

Effective date of registration: 20110831

Address after: American California

Applicant after: Oracle Int Corp

Address before: American California

Applicant before: Bea Systems Corp.

C14 Grant of patent or utility model
GR01 Patent grant