CN102446099A - 工作软件中的用户界面实体模型的反向工程 - Google Patents

工作软件中的用户界面实体模型的反向工程 Download PDF

Info

Publication number
CN102446099A
CN102446099A CN2011104355697A CN201110435569A CN102446099A CN 102446099 A CN102446099 A CN 102446099A CN 2011104355697 A CN2011104355697 A CN 2011104355697A CN 201110435569 A CN201110435569 A CN 201110435569A CN 102446099 A CN102446099 A CN 102446099A
Authority
CN
China
Prior art keywords
model
window
application
solid model
intended application
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
CN2011104355697A
Other languages
English (en)
Other versions
CN102446099B (zh
Inventor
B·阿莫迪奥
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102446099A publication Critical patent/CN102446099A/zh
Application granted granted Critical
Publication of CN102446099B publication Critical patent/CN102446099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本主题公开涉及捕捉执行中的用户界面应用和/或网站的窗口定义以及生成可编辑的模型表示。通过记录现有应用或网站的操作可快速生成启动器故事板或屏幕。与目标应用的众多用户界面控件分层结构相关联的状态被捕捉,存储在通用用户界面模型中,并被用于实体模型、代码等的生成。在一个方面,应用或网站被捕捉的指示被接收。之后,网站或应用窗口和后续窗口的状态被观察并捕捉。对于在活跃的控件分层结构中经历的每个后续窗口,关于每个项目的基本信息被捕捉。为给定窗口及其控件分层结构收集的信息可被序列化成简单的XML表示。

Description

工作软件中的用户界面实体模型的反向工程
技术领域
本主题公开一般涉及通过对控件分层结构的状态进行建模;通过对跨屏幕的流、导航以及链接进行建模;以及通过使用用于生成目标应用模型的建模来创建用户界面应用的实体模型(mockup)。
背景技术
随着计算技术的发展以及计算设备变得越来越普遍,计算机编程技术可适合用于所使用中的广泛的各种计算设备。例如,根据不同编程语言可产生程序编码来控制大小、容量不同的计算设备,从相对受限的设备(诸如简单的内嵌系统、移动手持设备等)到大的、高性能的计算实体(诸如数据中心或服务器群集)。
通常,当正开发和/或修改应用以供用于计算设备时,可能会创建新的用户界面或网站界面而不引用现有的界面。然而,更普遍的是使用现有的界面并对该界面应用修改。因此,实体模型或模型表示被创建并可用于获取开发过程中涉及的其它人的反馈。
当分析员致力于现有应用的增强时,他们不得不在实体模型工具中手动地重新创建现有应用的屏幕,以便能够修改这些屏幕作为他们想要的规格的一部分。实体模型的创建是耗时的,并且经常得到无法胜任某些目的的实体模型。例如,手动创建的实体模型可花费10分钟至30分钟或更长时间来创建。
在一些情况下,在尝试创建实体模型中可捕获屏幕截图。然而,屏幕截图并不能很好地适应于实体模型的目的,即传递应用或界面的意图以及其中所包含的元素的交互。例如,如果屏幕截图的右边被改变,该部分被删除并且由不再匹配整个屏幕截图的重新创建的形状所替代。这可在屏幕截图部分和手绘部分之间创建一个断开。例如,屏幕截图部分可以是带彩色的,而重新创建的部分是黑白的,这会分散注意。此外,两个部分的质量或粒度可能不是相同的。这可导致更多焦点被放置在琐碎的细节上(例如,像素、颜色等等)而不是放在实体模型或模型表示的整体概念和意图。
因此,期望能够具有快速创建用于现有应用和/或网站的实体模型或模型表示的能力。还期望创建具有统一的粒度量的现有用户界面的实体模型。如另一示例,将实体模型以数字的并且易于使用的格式来创建以允许实体模型能够被容易地共享和操纵是有益的。
现有技术中,已提出了各种用于创建用户界面实体模型的方案。然而,所提出的用于创建用户界面实体模型的解决方案中没有一个能解决全部上述需要,并且期望这样的解决方案显著地改善创建用户界面实体模型的效率。
当今的计算系统和实体模型创建系统技术的上述缺点仅旨在提供常规系统的一些问题的概览,并且不旨在是穷尽性的。常规系统的其他问题以及此处所描述的各非限制性实施例的对应的益处可以在审阅以下描述后变得更显而易见。
发明内容
此处提供了简化的发明内容以帮助能够对以下更详细的描述和附图中的示例性、非限制性实施例的各方面有基本或大体的理解。然而,本发明内容并不旨在作为详尽的或穷尽的。相反,本节发明内容的唯一目的在于,以简化的形式提出与一些示例性、非限制性实施方式相关的一些概念,作为以下各实施方式的更详细的描述的序言。
在一个或多个实施例中,反向工程实体模型系统自动捕获运行中的用户界面应用的窗口定义并生成可编辑的用户界面实体模型。本方法具有多种益处,包括创建实体模型的简便和速度。一个或多个实施例还可对运行中的用户界面应用的多个屏幕之间的流进行记录和反向工程。此外,基于该流,可生成各屏幕间的链接以表示给定情景的导航和交互性。因此,根据一个方面,当设计新的特征请求时,现有的用户界面的实体模型不需要被重新创建。根据一些方面,为了便于窗口定义的捕获,可利用辅助工具应用编程接口(API)。
在一些实施例中,反向工程实体模型系统能够捕获和解释所呈现的控件分层结构的“定义”并且能够将这一表示存储在用户界面的模型中。这提供了诸如以低保真“粗略”(或手绘的)主题重新呈现屏幕的功能,这对于实体模型应用来说是非常期望的特征(例如,从琐碎细节中带走焦点)。所捕获的元数据也可被用于生成启动器应用代码(例如,可扩展应用标记语言(XAML)、超文本标记语言(HTML)等等),这对于在各种技术间迁移用户界面应用和/或重新实现一个现有应用来说是有价值的。
这些和其他实施例在下文中更详细地描述。
附图说明
参考附图进一步描述各非限制性实施方式,在附图中:
图1是示出根据一个或多个实施例的简化的反向工程实体模型系统的框图;
图2是示出根据一个或多个实施例的自测管理器组件的示例功能的框图;
图3是根据一个或多个实施例的界面的框图;
图4是根据一个或多个实施例的捕获在一个应用中开始而在多个应用中中止的状态的非限制性例示;
图5是示出根据一个或多个实施例的自测管理器的另一示例功能的框图;
图6是根据一个或多个实施例的各个应用、各个网站或各个其它界面间的非限制性流的例示;
图7是根据一个或多个实施例的各网站界面间的流的例示;
图8是示出根据一个或多个实施例的实体模型处理组件的示例功能的框图;
图9是例示出用于创建用户界面的实体模型的示例性、非限制性过程的流程图;
图10是示出用于捕获用户界面模型的示例性、非限制性过程的流程图;
图11是示出用于将用户界面模型转换成目标模型的示例性、非限制性过程的流程图;
图12是表示其中可实现在本文中所述的各实施方式的示例性、非限制性联网环境的框图;以及
图13是表示其中可实现在本文中所述的各实施方式的一个或多个方面的示例性、非限制性计算系统或操作环境的框图。
具体实施方式
概览
当设计者想要改动应用、网站和/或与应用或网站相关联的一个或多个界面窗口时,通过故事板(storyboarding)或交互框架(wireframing)来创建实体模型。存在至少三种与成功实体模型创建相关联的属性。第一种属性是创建实体模型的简单性。例如,允许某些具有很少或不了解实体模型创建的人来创建有用的实体模型将是有益的。第二种属性是实体模型创建的速度,以使实体模型成为有价值的和有用的工具。因此,期望减少创建实体模型所耗费的时间量使得益处大于成本。另一种属性是控件库的可用性,并且期望利用这些控件库来创建实体模型。
因此,允许以有限数量的选择(或点击)或以单次选择来创建应用和/或网站的现有用户界面的实体模型将是有益的。如此处所公开的,可通过捕获形状并将形状转换成可编辑的原始格式来创建实体模型。因此,替代通过进行屏幕截图来捕捉像素,可捕捉树的概念或复选框的概念。界面窗口内的元素和/或控件的大概的大小和坐标也可被捕获。因此,可获取控件的类型、控件的状态、和/或界面的布局信息以便高效地捕获用户界面。控件的类型提供与控件和/或元素相关的信息(例如,控件是复选框,控件是文本框,元素是图像,等等)。对该控件专用的控件的状态(例如,复选框被复选还是没有被复选)也可被提供。所捕获的布局信息可以是元素和/或控件的定位和大小。
在一个实施例中,反向工程实体模型系统包括自测管理器组件,其被配置成捕获与目标应用的多个用户界面(UI)控件分层结构相关联的多个状态。反向工程实体模型系统还包括实体模型处理组件以及输出组件,实体模型处理组件被配置成基于多个状态来生成模型表示,输出组件被配置成以可编辑格式呈现模型表示。
在另一示例中,系统还包括姿势组件和观察组件,姿势组件被配置成接收对目标应用的选择,观察组件被配置成获取目标应用的第一窗口的第一状态以及第二窗口的第二状态。第二窗口可被激活或物化作为第一窗口中的动作的触发的结果或作为控件分层结构。系统还包括故事板管理器组件,其被配置成访问多个UI控件分层结构及相关联的信息。实体模型处理组件被进一步配置成将多个UI控件分层结构及相关联的信息序列化成模型表示。
在另一示例中,系统还包括转换器组件,其被配置成将模型表示转换成与目标应用相兼容的格式。输出组件被进一步配置成以与目标应用相兼容的格式传递模型表示以用作为实体模型。
在进一步示例中,自测管理器组件被进一步配置成捕获控件(例如复选框)概念,其中控件概念与多个状态之一相关联。
在一些示例中,实体模型处理组件被进一步配置成将模型表示保持为中间模型以供稍后转换成与目标应用或不同的多个目标应用兼容的格式。
在一些示例中,系统还包括姿势组件,其被配置成根据标识目标应用和目标应用的第一应用窗口的姿势来标识对目标应用的选择。
在进一步的示例中,系统进一步包括跟踪组件和导航组件,跟踪组件被配置成监视目标应用的多个屏幕之间的流,导航组件被配置成生成表示多个屏幕之间的流的链接。
在一个示例中,自测管理器组件被进一步配置成捕获应用的类型、应用的范围、控件或其子控件的状态中的至少一个。在其它示例中,自测管理器组件利用辅助工具应用编程接口。
在另一实施例中,一种用于创建用户界面的模型的方法包括:标识用户界面内的应用,记录表示应用的第一窗口的状态的第一数据集,将第一数据集输入到模型中,以及以可使用格式输出模型。
在一个示例中,标识包括接收对应用和第一窗口的选择以及确定第一窗口的引用,其中第一窗口和应用当前正被执行在用户界面中。
在另一示例中,记录包括记录类型、范围、控件或其子控件的状态中的至少一个。在又一示例中,记录包括利用辅助工具应用编程接口来捕获与第一数据集有关的信息。
在另一示例中,方法进一步包括捕获表示由第一窗口到至少一个第二窗口的过渡的第二数据集,并将第二数据集应用到模型,其中输出包括以可使用格式输出包含第一数据集和第二数据集的模型。
在又一示例中,方法包括捕获表示从第一窗口到至少一个第二窗口的流的第二数据集,获取表示至少一个第二窗口的状态的第三数据集,以及在输出之前将第一数据集、第二数据集以及第三数据集输入到模型中。
在又一示例中,方法进一步包括创建详细说明从第一窗口到后续窗口的移动的导航以及保持第一窗口的第一状态和后续窗口的第二状态。方法还包括将第一状态和第二状态发送给模型,其中以与目标应用兼容的格式输出第一状态和第二状态。
在另一示例中,方法包括在输出之前使用第一数据集生成中间模型。在又一示例中,输出包括将模型映射到目标应用模型,生成目标应用模型,以及将目标应用模型呈现为现有应用的实体模型。
在另一示例中,输出包括以可修改和可使用的数字格式输出模型。
在另一示例中,一种用于对用户界面实体模型进行反向工程的方法包括接收对为之创建实体模型的应用或网站的执行中的用户界面窗口的选择,以及捕获从执行中的用户界面窗口到后续界面窗口的过程的交互细节。在从运行中的用户界面窗口到子界面窗口的过程期间访问多个中间窗口。方法还包括记录多个状态,其中多个状态包括执行中的用户界面窗口、后续界面窗口以及多个中间窗口的每一个的状态。此外,方法包括用于生成包括交互细节和多个状态的模型、将模型映射到目标应用模型、以及呈现目标应用模型作为应用或网站的可修改版本的可修改实体模型的装置。
此处,已在上文中表述了用于对来自工作软件的用户界面实体模型进行反向工程的一些实施例的概览。作为接下来的内容的路标,更详细地描述对用户界面实体模型的反向工程的各示例性、非限制性实施例和特征。随后,为了附加说明,给出一些非限制性实现和示例,之后是其中可实现这些实施方式和/或特征的代表性网络和计算环境。
工作软件中的用户界面实体模型的反向工程
通过对在模块化计算环境中通过反向工程来创建模型表示的一个或多个非限制性方式的进一步描述,图1大致地示出了示例性计算系统的框图。该计算系统包括环境100,它可以是图形用户界面、桌面应用、基于Web的应用或其它编程平台。环境100可包括为之创建模型表示或实体模型的目标应用。例如,用户可提供指示将要被捕获的目标应用的姿势或其它输入(例如,语音命令、文本命令等)。姿势可被提供作为一个或多个将要到达的选择110形式的输入。自测管理器组件120被配置成接收一个或多个将要到达的选择110并捕捉目标应用的多个用户界面控件分层结构(例如,每个窗口一个控件分层结构)的众多状态(例如,窗口和窗口内的所有子组件)。例如,第一窗口可启动第二窗口,第二窗口启动后续窗口。在另一示例中,与第一窗口交互的用户可导航至第二窗口,并且通过与第二窗口(或第一窗口)的交互可导航至第三窗口,依此类推。
自测管理器组件120将众多状态130传递给实体模型处理组件140,实体模型处理组件140被配置成至少部分基于众多状态来生成模型表示。例如,实体模型处理组件140可在通用用户界面模型中生成模型表示。模型表示可以任何可感知的格式输出给用户以供生成实体模型、代码等等。例如,模型表示可以可编辑和开放式可使用格式(例如,用户和/或其他人可读取它并使用它)被呈现在用户设备上。在一个示例中,模型表示可以数字格式输出。在一个实施例中,可大约在捕获众多状态的同时(例如实时)或不同时刻(例如存储以供稍后使用)输出模型表示。在一些实施例中,实体模型处理组件140被进一步配置成保持模型表示作为中间模型,以供稍后用作实体模型或用于其它目的。例如,中间模型是通用的,并且因此可以被标准化且多个应用、第三方等等可使用中间模型。
在一些实施例中,自测管理器组件120被进一步配置成捕获应用的类型、应用的范围、控件或其子控件的状态中的至少一个、或上述的组合。例如,子控件信息可包括给定控件分层结构(例如窗口和该窗口内它的所有子组件)的状态。
根据一些实施例,自测管理器组件120利用辅助工具应用编程接口来捕获众多状态。例如,辅助工具应用编程接口可以是用户界面自动化、超文本标记语言文档对象模型(HTML DOM)、或另一类型的辅助工具应用编程接口。在一个实施例中,自测管理器组件120通过应用或窗口的标识来获取应用或窗口的句柄。所获取的句柄允许使用至少一些可用的控件库,从控件库中可提取来自运行中的应用的信息。
在一实施例中,由图1所示的反向工程实体模型系统在操作上可不同于传统实体模型构建系统,从而提供超越了使用传统实体模型构建系统的计算系统可获得的益处的附加益处。例如,此处公开的反向工程实体模型系统能够通过简单地记录现有应用的操作来快速地生成启动器故事板或屏幕。故事板是可能的输出人造对象,尽管也可利用其它的输出实体模型或模型表示的装置。所公开的方面具有将屏幕编写时间的量从例如每屏十分钟(或更多)减少到例如小于每屏一分钟的益处。所公开的方面的另一益处是能够以简化的形式创建启动器故事板或屏幕。所公开的方面的又一益处是控件库的采用以使得能够提取与运行中的应用相关联的信息。
例示其它方面,图2是示出包含姿势组件、观察组件220、以及故事板管理器组件230的自测管理器组件200的框图。在一个实施例中,姿势组件210被配置成接收对目标应用的选择。在一个示例中,姿势组件210被配置成获取对执行中的用户界面窗口的选择,将为该用户界面窗口创建实体模型或其它模型表示。在一些实施例中,姿势组件210被配置成根据标识目标应用和目标应用的第一应用窗口的姿势来标识对目标应用的选择。例如,姿势组件210可被配置成监视用户可通过其来与反向工程实体模型系统交互的键盘、鼠标或另一设备。根据一些方面,姿势组件210接收指示模型表示应被创建并且标识应当被捕获的界面的口头命令、文本命令或某些其它输入。
例如,如图3的界面300所示出的,当用户想要修改应用310时,用户使应用310执行并显示。用户还可使与自测管理器相关联的工具320被显示。应用310和工具320可被并排定位在显示器上。在一些示例中,应用310和工具320可具有与彼此不同的定向。
为了选择应用310,用户可选择工具320(例如,通过诸如鼠标之类的指示设备)并将工具320拖曳到应用310上(或应用的第一窗口上)。在一些实施例中,工具320具有允许用户精确定位应用内的某位置(诸如一个或多个元素或控件330、340和350)的十字线或其它特征。在360处显示了通过将工具320放置在元素330上来选择元素330。根据一些方面,可通过其它手段(例如,操纵下拉菜单、口头命令等)来进行选择。
再次参考图2,基于所接收到的指示当前执行的应用将被捕捉的姿势,观察组件220被配置成获取目标应用的窗口定义或第一窗口的第一状态(例如,当姿势组件210接收到输入时正在执行的窗口)。根据一些方面,观察组件220被配置成与一个或多个辅助工具应用编程接口(API)交互以获取各状态。例如,一个或多个API可访问一个或多个控件库并因此能够提供与状态有关的非常粒度的信息。
第一窗口可启动一个或多个其它窗口或与一个或多个其它窗口交互,诸如通过控件分层结构或通过用户向下挖掘到应用中(例如,从第一屏幕到第二屏幕(或后续屏幕)的移动)。
观察组件220被配置成获取表示第二窗口的第二状态。在另一示例中,用户可从第一界面窗口经过众多中间界面窗口遍历到后续界面窗口。在这一情况下,观察组件220被配置成记录多个状态,其中多个状态包括执行中的用户界面(例如最初被选择的窗口)、后续界面窗口、以及多个中间界面窗口的每一个的状态。
对于每个被发现的(或通过(或经由)之前的窗口开启的)新窗口,故事板管理器组件230被配置成获取每个窗口的控件分层结构和相关联的信息。例如,当应用穿过其控件分层结构时,故事板管理器组件230被配置成捕捉与分层结构中的每个项目有关的基本信息。这一基本信息可包括控件类型、尺寸、坐标、基于控件类型的状态信息等等。
例如,图4示出了捕捉从一个应用开始并在多个应用中终止的状态非限制性例示。如所例示的,应用(诸如电子邮件应用)的第一窗口400被开启。第一窗口400可包括能够启动另一窗口的链接,诸如联系人链接410。当用户选择或点击联系人链接410时,第一窗口400启动第二窗口420,诸如包括地址簿条目430的地址簿应用。在查看地址簿条目430之后,用户可关闭第二窗口420并返回第一窗口400。如果用户想要查看联系人链接410的公共社交媒体简档,用户在第一窗口400中作出选择,其中诸如浏览器应用之类的第三窗口440被启动。在查看想要的信息之后,用户关闭第三窗口440并进而返回到第一窗口400。然而,根据一些方面,以顺序形式开启各窗口使得每个窗口连续地开启另一个窗口。
例示其它方面,图5是显示包含跟踪组件510和导航组件520的自测管理器500的另一实施例的方框图。在一个实施例中,跟踪组件510被配置成监视目标应用的多个屏幕之间的流。例如,跟踪组件510可标识各屏之间的切换和/或可标识新屏幕是何时被启动和显示的。在另一示例中,目标应用可被选择且目标应用的第一屏可以正在执行。当用户使自测管理器500在应用内移动并且当后续的屏被开启(例如第一屏启动第二屏或与第二屏交互等等)时,跟踪组件510监视流或导航(例如,发生了什么使每个后续窗口开启)。在另一示例中,跟踪组件510被配置成捕捉与从运行中的用户界面窗口到后续界面窗口的流程有关的细节,其中在从运行中的用户界面窗口到后续用户界面窗口的过程期间访问多个中间窗口。
导航组件520被配置成生成表示多个屏之间的流或交互性的链接。链接可包括与什么引起下一屏或后续屏执行(例如,手动地、自动地)有关的细节。例如,当用户使用第一屏上的信息时,用户可能想要开启第二屏和/或启动网站。导航组件520被配置成捕捉用户输入(例如,对网站中的链接的选择、选择下一按钮等等)。以此方式,当实体模型被创建时,除了与应用和/或应用内的每个窗口的状态相关联的元数据之外,还可提供多个屏之间的链接。
图6中示出了各应用、各网站或各其它界面间的流的非限制性例示。如所示出的,应用的第一窗口被选择并且第一窗口600的至少一个状态被捕捉以创建模型表示。例如,第一窗口600的状态可包括与包含在第一窗口600中的每个控件或元素612、614、616、618有关的信息。在一些示例中,控件或元素的概念被捕捉而不是控件或元素的具体的信息(例如,像素的数量、颜色等等)。在一个示例中,概念可包括控件或元素的类型(例如,框、圆、复选框、文本框、图像、链接等等)。在另一示例中,概念可包括布局信息,诸如窗口内的定位和/或元素或控件的大小。在其它示例中,概念同时包括类型和布局信息。
用户可选择下一按钮618,并且基于该选择,第一窗口600启动第二窗口620。从第一窗口600到第二窗口620的流622可被收集并被包含在被创建的实体模型或模型表示中。此外,用户可选择第二窗口620中的下一按钮624,其启动第三窗口626。从第二窗口620到第三窗口626的第二流628可被捕捉作为模型表示的一部分。
图7中示出了各网站界面间的流的非限制性例示。诸如新闻网站之类的第一网站700可呈现各种链接(例如,本地新闻、世界新闻、商业、政治、天气、体育、财经等等),用户能够根据用户的兴趣选择链接以向下挖掘每一种类型的新闻。此外,在网站内可存在其它链接,这一般通过下划线来标识。当用户选择一个诸如天气链接710之类的链接时,从第一网站700到第二网站730的流720被捕捉。在这一示例中,第二网站730是天气网站,其提供链接到后续网站的链接,其中每个到后续网站的链接可被收集并输入到模型表示中。
例示其它方面,图8是显示包含转换器组件810和输出组件820的实体模型处理组件800的框图。在一个实施例中,实体模型处理组件800被配置成将控件分层结构和相关联的信息序列化成模型表示。例如,控件分层结构和相关联的信息可被序列化成简单的可扩展标记语言(XML)表示。
在完成应用的记录和捕捉之后,转换器组件810被配置成解释模型表示并将其转换成另一种具体的表示。例如,转换器组件810被配置成将模型表示转换成与一个或多个目标应用兼容的格式。在一个示例中,目标应用可以是粗略表示、XAML、HTML等。输出组件820被配置成以与目标应用相兼容的格式传递模型表示以用作为实体模型或其他目标应用模型。在一些实施例中,例如形状被捕捉并且转换器组件810将形状转换成可编辑的原始格式。可编辑的原始格式由输出组件820呈现给用户。在一个示例中,输出组件820可呈现目标应用模型作为应用的可编辑的和/或可使用的实体模型。
根据一非限制性示例,如果目标应用是演示程序,则转换器组件810可生成具有形状的幻灯片,其中幻灯片由输出组件820呈现。此外,如果窗口间的交互被捕捉,每个交互可在演示内的适当位置被呈现在幻灯片上。
在另一非限制性示例中,如果目标应用是可视用户界面构建器,则转换器组件810可对模型表示重新格式化并生成可扩展应用标记语言(XAML)或另一种标记语言。在又一非限制性示例中,如果目标应用是图形应用编程接口,则转换器组件810可生成C#代码或另一种类型的代码。
图9是例示出用于创建用户界面的实体模型的示例性、非限制性过程的流程图。在900,标识了执行在应用、网站等的用户界面内的应用。标识可基于接收到的姿势或其它指示,其指示初始化了一个应用的实体模型。在910,表示应用的第一窗口的状态的第一数据集被记录。在920,第一数据集被输入到模型。如果有其它数据集被收集(例如,表示流的第二集、表示第二窗口的第三集等等),其它数据集与第一数据集组合以输出作为表示模型。在930,模型以可使用格式被输出作为实体模型或其它表示。
图10是示出用于捕捉用户界面模型的示例性、非限制性过程的流程图。在1000,执行中的用户界面窗口被选择。可从用户处接收想要捕捉现有应用的实体模型的选择。例如,对应用和第一窗口(例如执行中的用户界面窗口)的选择可被接收,其中第一窗口和应用正被执行在用户界面内。在1010,确定第一窗口的句柄或引用。
在1020,类型、范围、控件或其子控件的状态或以上的组合中的至少一个被捕捉或记录。在一个实施例中,类型、范围、以及控件或其子控件的状态可被记录为第一数据集。在又一实施例中,通过使用访问一个或多个控件库的辅助工具应用编程接口可获取额外信息。还可捕捉与第一窗口相关联的子控件。
在1030,判断是否存在至少一个第二窗口的执行(例如,导航到第二窗口、启动第二窗口等)。如果存在第二(或后续)窗口的执行(“是”),为每个后续窗口捕捉类型、范围、控件或其子控件的状态、或以上的组合中的至少之一。例如,从第一窗口(例如,最初选择的窗口)到第二窗口(例如,第一子控件)的切换被捕捉作为第二数据集。至后续窗口的切换也可被捕捉作为后续数据集。
如果在1030判断没有至第二窗口的流或没有至后续窗口的流(“否”),则在1040,使用被捕捉的信息来生成中间模型。例如,第一数据集和第二数据集(以及后续数据集)被应用到该模型。结果是用户界面模型1050。
图11是示出用于将用户界面模型转换成目标模型的示例性、非限制性过程的流程图。如参考上述实施例所描述的,构建用户界面模型1100。在1110,用户界面模型被映射到目标应用模型。在1120,目标应用模型被生成并可以任何可感知的格式被呈现。因此,创建了现有应用的实体模型。在一个实施例中,以可使用格式输出模型。在另一实施例中,以可修改的数字格式输出模型。
在一示例中,第一窗口的第一数据集被捕捉,并且表示从第一窗口到至少一个第二窗口的流的第二数据集被捕捉。此外,表示第二窗口的状态的第三数据集被捕捉。第一数据集、第二数据集、以及第三数据集被输入到模型中,并且以可使用格式来输出模型。
在另一实施例中,具体描述从第一窗口到后续窗口的移动的导航被创建。此外,第一窗口的第一状态和第二窗口的第二状态被保持。第一状态、第二状态和导航细节被发送给模型,其中以与目标应用兼容的格式输出第一状态、第二状态、以及导航细节。
示例性联网以及分布式环境
本领域技术人员可以理解,此处所述的反向观察实体模型系统和方法的各实施例可结合任何计算机或其他客户机或服务器设备来实现,该任何计算机或其他客户机或服务器设备可作为计算机网络的一部分来部署或者被部署在分布式计算环境中,并且可连接到任何种类的数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与反向工程实体模型机制的应用、对象或资源。
图12提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象1210、1212等以及计算对象或设备1220、1222、1224、1226、1228等,这些计算对象或设备可包括如应用1230、1232、1234、1236、1238以及数据存储1240所表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象1210、1212等以及计算对象或设备1220、1222、1224、1226、1228等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象1210、1212等以及计算对象或设备1220、1222、1224、1226、1228等可经由通信网络1242直接或间接地与一个或多个其他计算对象1210、1212等以及计算对象或设备1220、1222、1224、1226、1228等通信。尽管在图12中被示为单个元件,但通信网络1242可包括向图12的系统提供服务的其他计算对象或计算设备和/或可表示未示出的多个互连网络。每个计算对象1210、1212等或计算对象或设备1220、1222、1224、1226、1228等还可以含有应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于实现或与根据各实施例所提供的反向工程实体模型技术进行通信的应用1230、1232、1234、1236、1238。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络耦合到因特网,因特网为广泛分布的计算提供了基础结构并且包含许多不同的网络,但任何网络基础结构可用于变得与如各实施例中所述的反向工程实体模型系统相关联的示例性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,即大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在附图12的图示中,作为非限制性示例,计算对象或设备1220、1222、1224、1226、1228等可被认为是客户机而计算对象1210、1212等可被认为是服务器,其中计算对象1210、1212等作为提供数据服务的服务器,诸如从客户机计算对象或设备1220、1222、1224、1226、1228等接收数据、存储数据、处理数据、向客户机计算对象或设备1220、1222、1224、1226、1228等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。按照此处所述的技术来利用的任何软件对象可单独提供或分布多个计算设备或对象上。
在通信网络1242或总线是因特网的网络环境中,例如,计算对象1210、1212等可以是其他计算对象或设备1220、1222、1224、1226、1228等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的Web服务器。计算对象1210、1212等作为服务器还可用作例如计算对象或设备1220、1222、1224、1226、1228等的客户机,这可以是如分布式计算环境的特性。
示例性计算设备
如上所述,有利的是,此处所描述的技术可适用于期望在计算系统中执行用户界面实体模型的反向工程的任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象,即,在设备的资源使用可理想地优化的任何地方。因此,以下在图13中所述的通用远程计算机只是计算设备的一个示例。
尽管并非所需,但各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
因此,图13示出了其中可实现各实施例的一个或多个方面的合适的计算系统环境1300的一个示例,尽管如上所述,计算系统环境1300仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。也不应当将计算系统环境1300解释为对在示例性计算系统环境1300中所示的组件中的任何一个或其组合有任何依赖或要求。
参考图13,用于实现一个或多个实施例的示例性远程设备包括计算机1310形式的通用计算设备。计算机1310的组件可包括,但不限于,处理单元1320、系统存储器1330、以及将包括系统存储器的各种系统组件耦合到处理单元1320的系统总线1322。
计算机1310通常包括各种计算机可读介质,并且可以是可由计算机1310访问的任何可用介质。系统存储器1330可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器1330还可包括操作系统、应用、其他程序模块、以及程序数据。根据进一步的示例,计算机1310还可以包括各种其它介质(未示出),可以包括,但不是限制,RAM,、ROM、EEPROM、闪存存储器或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备或其它可用于存储所需信息的有形的和/或非瞬时介质。
用户可通过输入设备1340向计算机1310输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口1350之类的接口连接到系统总线1322。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口1350连接。
计算机1310可使用到一个或多个其他远程计算机(诸如远程计算机1360)的诸如网络接口1370的逻辑连接在联网或分布式环境中操作。远程计算机1370可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体使用或传输设备,并且可包括以上关于计算机1310所述的任何或全部元件。图13所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络1372,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但底层概念可被应用于任何网络系统和任何计算设备或系统。
而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方向。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于以上所述的示例性系统,参考各附图的流程图还可理解根据所述的主题实现的方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,并非全部所示的框都是实现下文中描述的方法所必需的。
除了此处所描述的各实施例之外,可以理解,可以使用其他相似的实施例或者可对所述实施例作出修改和添加以便执行对应的实施例的相同或等效的功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

Claims (15)

1.一种反向工程实体模型系统,包括:
自测管理器组件(120,200,500),其被配置成捕捉与目标应用的多个用户界面(UI)控件分层结构相关联的多个状态(130);
实体模型处理组件(140,800),其被配置成基于所述多个状态(130)来生成模型表示;以及
输出组件(820),其被配置成以可编辑格式呈现所述模型表示。
2.如权利要求1所述的反向工程实体模型系统,其特征在于,还包括:
姿势组件(210),其被配置成接收对于所述目标应用的选择;
观察组件(220),其被配置成获取所述目标应用的第一窗口的第一状态以及第二窗口的第二状态,其中所述第二窗口通过所述第一窗口中的动作而激活;以及
故事板管理器组件(230),其被配置成访问所述多个UI控件分层结构及相关联的信息,
其中所述实体模型处理组件(140,800)被进一步配置成将多个UI控件分层结构及相关联的信息序列化成所述模型表示。
3.如权利要求1所述的反向工程实体模型系统,其特征在于,还包括:
转换器组件(810),其被配置成将所述模型表示转换成与所述目标应用相兼容的格式,其中所述输出组件(820)被进一步配置成以与所述目标应用兼容的格式传递所述模型表示以供用作实体模型。
4.如权利要求1所述的反向工程实体模型系统,其特征在于,所述自测管理器组件(120,200,500)被进一步配置成捕捉控件概念,其中所述控件概念与所述多个状态(130)之一相关联。
5.如权利要求1所述的反向工程实体模型系统,其特征在于,所述实体模型处理组件(140,800)被进一步配置成保持所述模型表示作为中间模型以供稍后转换成与所述目标应用兼容的格式。
6.如权利要求1所述的反向工程实体模型系统,其特征在于,还包括姿势组件(210),其被配置成根据标识所述目标应用和所述目标应用的第一应用窗口的姿势来标识对所述目标应用的选择。
7.如权利要求1所述的反向工程实体模型系统,其特征在于,还包括:
跟踪组件(510),其被配置成监视所述目标应用的多个屏幕(600,620,626)之间的流(622,628);以及
导航组件(520),其被配置成生成表示所述多个屏幕(600,620,626)之间的流(622,628)的链接。
8.如权利要求1所述的反向工程实体模型系统,其特征在于,所述自测管理器组件(120,200,500)被进一步配置成捕捉应用的类型、应用的范围、控件或其子控件的状态中的至少一个。
9.如权利要求1所述的反向工程实体模型系统,其特征在于,所述自测管理器组件(120,200,500)利用辅助工具应用编程接口。
10.一种用于创建用户界面(300)的模型的方法,包括:
标识(900)用户界面(300)内的应用;
记录(910)表示所述应用的第一窗口(400,600)的状态的第一数据集;
将所述第一数据集输入(920)到所述模型中;以及
以可使用格式输出(930)所述模型。
11.如权利要求10所述的方法,其特征在于,所述标识(900)包括:
接收对于所述应用和所述第一窗口的选择,其中所述第一窗口和所述应用当前正执行在所述用户界面内;以及
确定对于所述第一窗口的引用。
12.如权利要求10所述的方法,其特征在于,所述记录(910)包括记录类型、范围、控件及其子控件的状态中的至少一个。
13.如权利要求10所述的方法,其特征在于,所述记录(910)包括利用辅助工具应用编程接口来捕捉与所述第一数据集有关的信息。
14.如权利要求10所述的方法,其特征在于,进一步包括:
创建详细说明从第一窗口(400,600,700)到后续窗口(420,440,620,626,730)的移动(622,628)的导航;
保持第一窗口(400,600,700)的第一状态和后续窗口(420,440,620,626,730)的第二状态;以及
将所述第一状态和所述第二状态发送给所述模型,其中以与所述目标应用兼容的格式输出所述第一状态和所述第二状态。
15.如权利要求10所述的方法,其特征在于,所述输出(930)包括:
将所述模型映射到目标应用模型;
生成所述目标应用模型;以及
呈现所述目标应用模型。
CN201110435569.7A 2010-12-13 2011-12-12 工作软件中的用户界面实体模型的反向工程 Active CN102446099B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/966,902 2010-12-13
US12/966,902 US9262158B2 (en) 2010-12-13 2010-12-13 Reverse engineering user interface mockups from working software

Publications (2)

Publication Number Publication Date
CN102446099A true CN102446099A (zh) 2012-05-09
CN102446099B CN102446099B (zh) 2016-03-30

Family

ID=46008616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110435569.7A Active CN102446099B (zh) 2010-12-13 2011-12-12 工作软件中的用户界面实体模型的反向工程

Country Status (4)

Country Link
US (1) US9262158B2 (zh)
EP (1) EP2652585A4 (zh)
CN (1) CN102446099B (zh)
WO (1) WO2012082663A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064545A1 (en) * 2012-10-23 2014-05-01 International Business Machines Corporation Maintaining integrity of output of code generators
CN104766154A (zh) * 2015-02-13 2015-07-08 上海同筑信息科技有限公司 基于bim的快照图像应用于智能化工程管理的系统和方法
CN107766359A (zh) * 2016-08-17 2018-03-06 广州市动景计算机科技有限公司 一种将页面内容转换为图片的方法、装置以及计算设备
CN108733014A (zh) * 2017-04-21 2018-11-02 西门子股份公司 提出和/或建立艾真体的方法、设备、自动化系统和装置
CN111061475A (zh) * 2019-12-13 2020-04-24 中国南方电网有限责任公司 软件代码生成方法、装置、计算机设备和存储介质
CN113360813A (zh) * 2020-03-02 2021-09-07 深圳中广核工程设计有限公司 核电设计生产管理平台的数据交互方法、装置、设备及存储介质
CN113360813B (zh) * 2020-03-02 2024-05-31 深圳中广核工程设计有限公司 核电设计生产管理平台的数据交互方法、装置、设备及存储介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182981B2 (en) * 2009-11-23 2015-11-10 University Of Washington Systems and methods for implementing pixel-based reverse engineering of interface structure
US20120173997A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation System and method for capturing a state of a running application
KR101819508B1 (ko) * 2011-07-25 2018-03-02 삼성전자주식회사 휴대용 단말기에서 어플리케이션의 테마를 변경하기 위한 장치 및 방법
WO2014070165A1 (en) * 2012-10-31 2014-05-08 Hewlett-Packard Development Company, L.P. Executable software specification generation
WO2014117387A1 (en) * 2013-02-01 2014-08-07 Hewlett-Packard Development Company, L.P. Test script creation based on abstract test user controls
US20160132427A1 (en) * 2013-06-27 2016-05-12 Hewlett-Packard Development Company, L.P. User interface conformance
WO2015042987A1 (en) * 2013-09-30 2015-04-02 Hewlett-Packard Development Company, L.P. Record and replay of operations on graphical objects
US10592580B2 (en) 2014-04-25 2020-03-17 Ebay Inc. Web UI builder application
US10447762B2 (en) * 2014-10-07 2019-10-15 Qordoba, Inc. Remote localization platform
US10606622B1 (en) * 2016-06-30 2020-03-31 EMC IP Holding Company LLC Method and system for web application localization using hierarchical resolution
CN110020356A (zh) * 2017-10-16 2019-07-16 阿里巴巴集团控股有限公司 一种页面模块的代码生成方法、装置及系统
US20190347078A1 (en) * 2018-05-09 2019-11-14 International Business Machines Corporation Generating Application Mock-Ups Based on Captured User Sessions
US11966722B2 (en) * 2022-04-21 2024-04-23 Express Scripts Strategic Development, Inc. Application development system including a dynamic mock engine for service simulation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138603A1 (en) * 2003-12-22 2005-06-23 Cha Jung E. Componentization method for reengineering legacy system
CN1851641A (zh) * 2005-09-28 2006-10-25 华为技术有限公司 嵌入式设备用户界面的实现方法
US20100050152A1 (en) * 2002-11-14 2010-02-25 Sap Ag Modeling system for graphic user interface

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748580B1 (en) * 1999-04-22 2004-06-08 International Business Machines Corporation Method and apparatus for creating software tools using a JTML interface
US8042098B2 (en) 2000-12-06 2011-10-18 Axiomatic Design Software, Inc. Method and apparatus for producing software
US7107279B2 (en) * 2000-12-20 2006-09-12 Insitech Group, Inc. Rapid development in a distributed application environment
US20040111702A1 (en) 2002-12-10 2004-06-10 Chan Kin Ming Method and apparatus for visual programming
US7660817B2 (en) * 2003-05-22 2010-02-09 Microsoft Corporation System and method for representing content in a file system
JP4097263B2 (ja) * 2003-06-11 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブアプリケーションモデル生成装置、ウェブアプリケーション生成支援方法及びプログラム
US7949960B2 (en) * 2003-09-30 2011-05-24 Sap Ag Predictive rendering of user interfaces
US20050138606A1 (en) 2003-12-17 2005-06-23 Sujit Basu System and method for code migration
US7539981B2 (en) 2004-01-30 2009-05-26 Microsoft Corporation XML-based preprocessor
US8307339B2 (en) * 2004-03-15 2012-11-06 Ramco Systems Limited Software reuse in model based software systems
US7818682B2 (en) * 2004-11-29 2010-10-19 Sap Ag Modeling editor
US8239882B2 (en) * 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
DE102006027709B4 (de) * 2006-06-14 2019-01-03 Magna powertrain gmbh & co kg Getriebeeinheit für ein Kraftfahrzeug und Steuerungsverfahren hierfür
US20080006379A1 (en) * 2006-06-15 2008-01-10 The Force, Inc. Condition-based maintenance system and method
US8176467B2 (en) * 2006-07-25 2012-05-08 Harris Corporation Computer program generation system and method thereof
US20080148235A1 (en) * 2006-12-15 2008-06-19 Microsoft Corporation Runtime inspection of user interfaces
US7743071B2 (en) * 2007-02-26 2010-06-22 Microsoft Corporation Efficient data handling representations
US8132147B2 (en) * 2007-05-29 2012-03-06 Sap Ag Semantic interpretation of software models for generating user interfaces
WO2009089240A1 (en) * 2008-01-07 2009-07-16 Tufts University Interactive digital workbook system and method
US20090319958A1 (en) * 2008-06-18 2009-12-24 Microsoft Corporation Machine Readable Design Description for Function-Based Services
US7899847B2 (en) * 2008-12-17 2011-03-01 International Business Machines Corporation System and method for authoring new lightweight web applications using application traces on existing websites
US9056246B2 (en) * 2009-02-13 2015-06-16 Daybreak Game Company Llc Dynamic reverse engineering
US8255384B2 (en) * 2009-09-30 2012-08-28 Fujitsu Limited Client-tier validation of dynamic web applications
US8352875B2 (en) * 2009-11-17 2013-01-08 Hewlett-Packard Development Company, L.P. System and method for integrating a plurality of software applications
EP2504748B1 (en) * 2009-11-23 2018-05-30 EntIT Software LLC System and method for object relationship identification in a user interface
US9116709B2 (en) * 2010-03-04 2015-08-25 Tata Consultancy Services Limited Computationally efficient system for developing configurable, extensible GUI for database centric enterprise business applications
US8825459B2 (en) * 2010-11-29 2014-09-02 Autodesk, Inc. Multi-modal manipulation of a geometric model
US8726285B2 (en) * 2011-01-28 2014-05-13 Ciambella Ltd. Method and apparatus for triggering workflow deployment and/or execution
US8893074B2 (en) * 2011-03-11 2014-11-18 Hewlett-Packard Development Company, L.P. Software development requirements recording
US20130219307A1 (en) * 2012-02-21 2013-08-22 Artisan Mobile, Inc. System and method for runtime user interface management
US20140115506A1 (en) * 2012-02-29 2014-04-24 William Brandon George Systems And Methods For Measurement Of User Interface Actions
US9448908B2 (en) * 2012-09-10 2016-09-20 Applitools Ltd. System and method for model based session management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100050152A1 (en) * 2002-11-14 2010-02-25 Sap Ag Modeling system for graphic user interface
US20050138603A1 (en) * 2003-12-22 2005-06-23 Cha Jung E. Componentization method for reengineering legacy system
CN1851641A (zh) * 2005-09-28 2006-10-25 华为技术有限公司 嵌入式设备用户界面的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AMALFITANO: "An Iterative Approach for the Reverse Engineering of Rich Internet Application User Interfaces", 《2010IEEE》 *
GRILO等: "Reverse Engineering of GUI Models for Testing", 《INFORMATION SYSTEMS AND TECHNOLOGIES(CISTI) 2010 5TH IBRIAN CONFERENCE》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064545A1 (en) * 2012-10-23 2014-05-01 International Business Machines Corporation Maintaining integrity of output of code generators
US9354870B2 (en) 2012-10-23 2016-05-31 International Business Machines Corporation Maintaining integrity of output of code generators
CN104766154A (zh) * 2015-02-13 2015-07-08 上海同筑信息科技有限公司 基于bim的快照图像应用于智能化工程管理的系统和方法
CN104766154B (zh) * 2015-02-13 2018-09-11 上海同筑信息科技有限公司 基于bim的快照图像应用于智能化工程管理的系统和方法
CN107766359A (zh) * 2016-08-17 2018-03-06 广州市动景计算机科技有限公司 一种将页面内容转换为图片的方法、装置以及计算设备
CN108733014A (zh) * 2017-04-21 2018-11-02 西门子股份公司 提出和/或建立艾真体的方法、设备、自动化系统和装置
CN111061475A (zh) * 2019-12-13 2020-04-24 中国南方电网有限责任公司 软件代码生成方法、装置、计算机设备和存储介质
CN111061475B (zh) * 2019-12-13 2023-12-12 中国南方电网有限责任公司 软件代码生成方法、装置、计算机设备和存储介质
CN113360813A (zh) * 2020-03-02 2021-09-07 深圳中广核工程设计有限公司 核电设计生产管理平台的数据交互方法、装置、设备及存储介质
CN113360813B (zh) * 2020-03-02 2024-05-31 深圳中广核工程设计有限公司 核电设计生产管理平台的数据交互方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2012082663A3 (en) 2012-09-20
CN102446099B (zh) 2016-03-30
US9262158B2 (en) 2016-02-16
US20120151433A1 (en) 2012-06-14
EP2652585A2 (en) 2013-10-23
WO2012082663A2 (en) 2012-06-21
EP2652585A4 (en) 2014-05-28

Similar Documents

Publication Publication Date Title
CN102446099A (zh) 工作软件中的用户界面实体模型的反向工程
US7793258B2 (en) Software development using visual interfaces
AU2014202725B2 (en) Methods and apparatus for translating forms to native mobile applications
CN1834906A (zh) 丰富数据绑定应用程序
CN102449598A (zh) 程序包设计和生成
US20060168115A1 (en) Method and system of encapsulating web site transactions for computer-aided generation of web services
CN1684034A (zh) 用以执行命令绑定的数据绑定机制的应用
US20150082271A1 (en) System and method for providing an editor for use with a business process design environment
JP2008305411A (ja) 機能強化されたウィジェットコンポジションプラットフォーム
US20110022943A1 (en) Document object model (dom) application framework
Liu et al. Composing enterprise mashup components and services using architecture integration patterns
CN103645908A (zh) 网构软件全生命周期开发实现系统
US20120169710A1 (en) Process Communication Method and System
CN101876998A (zh) 一种实现数据编辑的方法和系统
CN112861059A (zh) 可视化组件生成方法、装置、计算机设备及可读存储介质
US20210342130A1 (en) Systems and methods for software application generation and delivery
CN113901022B (zh) 一种业务与数据关系模型建立方法、装置、设备及存储介质
Hiller et al. Earth system grid federation: Federated and integrated climate data from multiple sources
CN114817379A (zh) 基于Qunee的配置项关系可视化方法、系统、设备及介质
Honkala Web user interaction: a declarative approach based on XForms
Moyon et al. Design and development of a web GIS-based visualization and analytical platform for Farm-to-Market Road projects of the Philippines’ Department of Agriculture
Ma et al. State-driven and brick-based mobile mashup
CN110648081A (zh) 用于计算系统的业务建模方法、装置和计算机系统
EP4020217A1 (en) Performance monitoring for osgi application with bundles
Liu et al. Using architecture integration patterns to compose enterprise mashups

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: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150717

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

Effective date of registration: 20150717

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant