首页> 中国专利> 用于编辑图状示图的二维树

用于编辑图状示图的二维树

摘要

基于图状视觉语言自动将图形示图动态地布局成二维树状结构以便于用户交互与最优显示。显示包括在树状结构的根开始的至少一个分支的图形树状结构,该分支包括被配置成在垂直方向和水平方向上修改的一个或多个子部分。该子部分按照一个或多个对象、属性、操作和关联的功能关系和内部行为来表示整体对象模型。接收修改除了端部分之外的一个或多个子部分的用户输入。基于该用户输入,水平地、垂直地、或两者兼有地修改一个或多个子部分以便于用户交互、优化图形树状结构的显示或两者。

著录项

  • 公开/公告号CN101416180A

    专利类型发明专利

  • 公开/公告日2009-04-22

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200780012239.9

  • 发明设计人 J·泽曼;

    申请日2007-02-21

  • 分类号G06F17/21(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 21:44:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-28

    未缴年费专利权终止 IPC(主分类):G06F17/21 专利号:ZL2007800122399 申请日:20070221 授权公告日:20151125

    专利权的终止

  • 2015-11-25

    授权

    授权

  • 2015-08-12

    专利申请权的转移 IPC(主分类):G06F17/21 变更前: 变更后: 登记生效日:20150722 申请日:20070221

    专利申请权、专利权的转移

  • 2009-06-17

    实质审查的生效

    实质审查的生效

  • 2009-04-22

    公开

    公开

说明书

背景

计算系统已经彻底改变了人们工作和游戏的方式。计算系统有各种各样形 式,包括膝上型计算机、台式计算机、个人数字助理、电话、甚至传统上不与 计算系统相关联的设备,诸如例如冰箱和汽车等。计算系统甚至可包括经由网 络互连的多个组成的计算系统。因此,某些计算系统可能足够小以适合手掌, 而其他计算系统遍布全球。

已变得日益流行的计算技术的一个领域是图形建模,其允许用户在视觉上 显示诸如众多系统、服务、或过程的流程图等图状示图(graph-like diagram)。 示图的示例包括工作流程图、数据流图、E-R图、业务流程图等等。更具体地, 这些图状示图允许用户在视觉上传达不同计算或其他系统、商业或项目模型等 的各种组件或元素的功能、行为方面、以及关系;因此允许经常是复杂的系统 或过程的高效传达。

例如,图状示图可以可视化销售交易的流程。该流程图的元素和组件可以 表示诸如选择所需产品、下定单、安排递送和支付等事件。该示图还可以可视 化执行以上所列出的任务的实体。对于涉及众多实体的非常复杂的销售交易, 图形化地查看该交易可以比以其他形式更容易理解。

虽然图状示图在可视化系统和过程中很有用,但是存在对其有用性的限 制。例如,随着示图变得更大且更复杂,由于显示设备的大小、分辨率、以及 其他能力可能只是没有足够的空间来显示所有组件和元素。换言之,可用显示 空间和能力限制同时能够查看多少组件和对象。对于用户想在其上显示过程的 开始和结束两者的示图而言这尤其成问题。

一种解决方案将是使用更大的显示设备。然而,由于这将需要的成本,对 于大多数用户这是不切实际的。此外,示图可能变得太大以使得没有实际上的 显示设备能够显示该示图的所有元素。

通常使用的对于该显示限制的另一种解决方案是让用户手动地重新缩放 该示图。例如,用户将经常在新元素被添加到示图的任何时候“放大”。虽然 该解决方案可能对于只有少量元素的图有效,但是对于较大的示图却不然。这 些示图在被放大若干次后经常变得不可阅读。

另一种常见解决方案是制作一起包含可读大小的所有所需示图元素的多 个示图。然而,这经常是费时的。此外,使用多个示图经常丢失示图的流程或 “思维地图(mental map)”,这对于用户是令人沮丧的。

另一个解决方案是创建自动对示图的元素布局的工具以试图将示图缩放 为可读形式。然而,这些工具实现复杂的算法,其计算复杂度使得处理它们非 常缓慢。在新元素被添加到该示图的任何时候,这些工具必须重新处理该算法 并且创建新示图,使得这些工具对于交互式编辑器是不切实际的。此外,这些 算法中的大多数在添加新元素时重新定位该示图的每个元素。结果,用户经常 丢失他或她的该示图的“思维地图”,这是恼人的。

简要概述

以上所标识的现有示图生成和显示方法的缺陷和缺点通过此处所公开的 示例实施例来克服。注意,提供本概述以便用简化的形式介绍将在以下详细描 述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征 或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

一个示例实施例提供基于图状视觉语言自动将图形示图布局成二维树状 结构以便于用户交互与最优显示。在该实施例中,显示图形树状结构。该图形 树状结构包括至少一个分支,该分支从该图形树状结构的根开始并且包括被配 置成在垂直方向和水平方向上修改的一个或多个子部分。该子部分按照一个或 多个对象、属性、操作和关联的功能关系和内部行为来表示总对象模型。然后 接收修改一个或多个子部分的用户输入。基于该用户输入,水平地、垂直地、 或两者兼有地动态修改一个或多个子部分以便于用户交互、优化图形树状结构 的显示或两者。

另一个示例实施例还能够基于图状视觉语言动态地将流程图布局成二维 树状结构以便于用户交互与最优显示。在该实施例中,显示图形树状结构。该 图形树状结构包括从该树状结构的根开始并且包括多个子部分的至少一个分 支。子部分中的至少一个也是端部分。该子部分按照一个或多个对象、属性、 操作和关联的功能关系和内部行为来表示总对象模型。然后接收修改除了端部 分之外的一个或多个子部分的用户输入。基于该用户输入,缩放、展开、或折 叠除了端部分之外的一个或多个子部分而无需也修改该端部分。该修改允许易 于用户交互、优化图形树状结构的显示或两者。

另一个示例实施例能够在显示图形树状结构的应用程序退出时将对该图 形树状结构的一个或多个子分支作出的修改持久保留在存储器中。在该实施例 中,激活显示图形树状结构的应用程序。该图形树状结构包括从该树状结构的 根开始的至少一个分支,该分支包括按照一个或多个对象、属性、操作和关联 的功能关系和内部行为来对系统、服务、或过程建模的一个或多个子分支。接 收修改至少一个子分支的用户输入。基于该用户输入,将该修改保持在持久存 储器中。在用户退出应用程序之后的稍后时间重新激活该应用程序后,图形树 状结构被显示为在该应用程序退出之前其出现的样子。

本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将 是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过 在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其 他特征将通过以下描述和所附权利要求书而变得更加完全明显,或可通过对下 文中所述的本发明的实践来获知。

附图简述

为了描述可获得本发明的上述和其他优点特征的方式,将通过引用附图中 示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以 理解,这些附图仅描述本发明的典型实施例,从而不因此被认为是对其范围的 限制,本发明将通过使用附图用附加的特征和细节来描述和解释,附图中:

图1示出用于动态地将图状视觉语言显示为图形二维树状结构的计算系 统;

图2A示出图状视觉语言的示例;

图2B示出根据各示例实施例被显示为图形二维树状结构的图2A的图状 视觉语言;

图3A示出根据各示例实施例的示例图形二维树状结构;

图3B示出对图3A的图形二维树状结构所作出的修改;

图3C示出对图3A的图形二维树状结构所作出的进一步修改;

图4A示出根据各示例实施例的另一个示例图形二维树状结构;

图4B示出对图4A的图形二维树状结构所作出的修改;

图4C示出对图4A的图形二维树状结构所作出的进一步修改;

图5示出图形一维树状结构;

图6示出根据各示例实施例用于将图状视觉语言的流程图自动布局成图 形二维树状结构的方法的流程图;

图7示出根据各示例实施例用于将对图形树状的一个或多个子分支作出 的修改持久保留在存储器中的方法的流程图;

图8示出根据各示例实施例用于将图形树状结构转换为图形二维树状结 构的方法的流程图;以及

图9示出根据各示例实施例用于将图状视觉语言的流程图自动布局成图 形二维树状结构的方法的流程图。

详细描述

本发明涉及用于将图状视觉语言自动布局成二维树状结构以允许易于用 户交互和最优显示的各种方法、系统和计算机程序产品。本发明的实施例可以 包括含有各种计算机硬件或模块的专用或通用计算机,这将在以下做出进一步 讨论。

示例实施例提供被配置成克服现有工具的各种缺陷、用于以允许动态交互 和最优显示的方式来布局图状视觉语言的若干机制。例如,此处一个实施例提 供一种用于将流程图动态布局成二维树状结构的机制。该图状视觉语言被显示 为二维图形树状结构。该图形树状结构包括从该树状结构的根开始并且包括子 部分的至少一个分支。该子部分用于按照该树状结构的一个或多个对象、属性、 操作和关联的功能关系和内部行为来表示总对象模型。该子部分还可包括至少 一个端部分,尽管这对于所有实施例并不是必需的。

该树状结构以有助于用户交互的方式来显示。例如,可以显示控制子部分 的修改的用户交互式(UI)元素。接收诸如选择UI元素等的修改不是端部分 的一个或多个子部分的用户交互。这些修改包括缩放、折叠、以及展开子部分。

基于该用户交互,动态修改二维树状结构。例如,在某些实施例中,除了 端部分之外的子部分可以被缩放以优化树状结构在可用显示空间中的显示,或 者子部分可以被折叠或展开以允许不论该树状结构有多大都可查看该树状结 构的所需部分。在其他实施例中,可以水平地、垂直地、或两者兼有地修改子 部分。

其他实施例允许甚至在运行该树状结构的应用程序退出时持久保留对树 状结构作出的修改。例如,激活显示图形树状结构的应用程序并且接收以先前 示例的方式修改图形树状结构的用户输入。然而,基于该用户输入,将对该树 状结构的修改保持在持久存储器中。此外,因对其他子部分的后续修改而变为 隐藏的对一个子部分的修改也可被保持在持久存储器中。在用户退出了应用程 序之后的稍后时间重新激活该应用程序后,图形树状结构被显示为在该应用程 序退出之前它出现的样子。对可见和隐藏的修改的保持允许随着时间的推移显 示图形树状结构而不必在应用程序退出和重启时一直重做修改。此外,保持隐 藏的状态保证在应用程序退出时没有子部分丢失。

其他实施例允许不能被修改的图状视觉语言和树状结构转换成能够被动 态修改的二维树状结构。这些实施例还允许包括一个分支并包括端部分的一维 树状结构的转换,该分支从该树状结构的根开始并且包括对系统、服务和过程 建模的多个子部分。该一维树状结构的子部分不能够在也不修改端部分的情况 下修改,这与其子部分能够在无需也修改端部分的情况下修改的二维树状结构 相反。将这些结构转换为二维树状结构给予用户利用该动态修改并且对该二维 树状结构进行显示优化的能力。此外,这允许通过按需在垂直和水平之间自动 切换子部分的方向来自动优化到可用显示屏幕或窗口的高宽比。

虽然如下将参考附图对有利特征的更具体叙述进行更为详尽的描述,但是 本发明范围内的各实施例还包括用于承载或在其上存储计算机可执行指令或 数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计 算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括 RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储 设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码 装置且可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通 信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计 算机将该连接完全视为计算机可读介质。因此,任何这样的连接被适当地称为 计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。

计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设 备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专 用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于 上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例 形式公开的。

如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软 件对象或例程。此处描述的不同的组件、模块、引擎和服务可被实现为在计算 系统上执行的对象或进程(例如,作为分开的线程)。尽管此处描述的系统和 方法较佳地可用软件来实现,但用硬件或软件和硬件的组合的实现也是可能的 且已被想到。在本说明书中,“计算实体”可以是如上文定义的任何计算系统, 或者是在计算系统上运行的任何模块或模块的组合。

现在参考附图,图1示出可用于实现此处所公开的各种实施例的计算系统 100。计算系统100描绘了能够在实现各实施例时使用的各种模块和组件。注 意,计算系统100只是作为示例而示出,并且不应用于限制所附权利要求书或 此处所公开的各实施例中的任一个的范围。换言之,存在可用于实现此处所描 述的各实施例的众多其他计算系统和组件配置。

计算系统100包括可用于对系统、服务和过程的流程图建模的图状视觉语 言110。图状视觉语言的常见示例包括强调在所建模的系统、服务或过程中通 常有什么东西的结构图;强调在所建模的系统、服务或过程中一般发生什么事 情的行为图;或强调在所建模的系统、服务或过程中的东西之间的控制和数据 流的交互图。其他常见图状视觉语言包括各种示图类型的统一建模语言 (UML)、数据库领域中的实体关系图、以及用于业务流程设计的业务流程图。 一般地,此处所描述的各实施例应用于可以是任何通用图状视觉语言的图状视 觉语言110。因此,在本说明书中对特定图状视觉语言的任何引用只是为了说 明并且不应用于限制此处所公开的各实施例的范围。

计算系统100还包括帮助将图状视觉语言110显示成二维树状结构190 的设计工具/应用程序120。设计工具/应用程序120还帮助动态修改所显示的 二维树状结构190。设计工具/应用程序120及其各种模块和/或组件中的任一 个都可被实现为软件、硬件、或两者的任何组合并且可被主存在单个本地或远 程计算设备上或在分布式计算环境中。

设计工具120包括将图状视觉语言110显示成二维树状结构190的布局/ 呈现模块130。在某些实施例中,布局/呈现模块130显示由用户输入到设计器 工具/应用程序120中的元素。设计器工具/应用程序120然后根据由所实现的 图状视觉语言110定义的关系在各元素之间自动绘出互连线。

在其他实施例中,布局模块130接收或以其他方式访问在接收到的时间之 前存在的图状视觉语言110。现有的图状视觉语言110可以从主存设计工具120 的计算机或从通过任何类型的网络连接到计算系统100的某一其他计算机接 收。在这些实施例中,图状视觉语言110可作为具有不能被修改的子部分的树 状结构来接收,或者它可作为如将在以下更详细描述的具有只可被一维地修改 的子部分的一维树状结构来接收。然后可以将现有的图状视觉语言提供给转换 模块150以便转换成如也将在以下更详细解释的二维树状结构。

不论图状语言110是预先存在的还是由用户创建的,布局/呈现模块130 都自动将该图状语言显示成二维树状结构190。树状结构190可包括从该树状 结构的根开始的至少一个分支并且包括多个子部分或子分支。子部分中的一个 也可以是端部分。该子部分按照所建模的系统、服务或过程的对象、属性、操 作和关联的功能关系和内部行为来对由图状语言110显示的系统、服务或过程 建模。

此外,该二维树状结构190由布局/呈现模块130以允许该树状结构的子 部分由设计器工具/应用程序120垂直地、水平地、对角地或三者兼有地动态及 自动地修改的方式来构造或转换。在某些实施例中,也是端部分的子部分不被 修改。二维树状结构190的具体示例将在下文中给出。

设计器工具/应用程序120还包括修改模块140。修改模块140从用户接收 修改树状结构190的子部分的用户输入180。例如,该用户输入可以选择可修 改的子部分以供折叠、展开或缩放。响应于该用户输入,修改模块140动态及 自动地修改正由布局模块130显示的树状结构的子部分中的一个或多个。

例如,该子部分可以被缩放以优化可用显示空间,或者可被折叠或展开以 允许树状结构190的所选子部分的聚焦显示。有利的是,树状结构190的配置 允许修改给定子部分而不必也修改从该给定子部分分叉出来的任何或所有子 部分,因此允许用户在运行中动态地显示所需子部分。可以水平地、垂直地、 对角地(可被认为是垂直或水平的组合)、或用三者的任何组合来修改该子部 分。

此外,所修改的子部分被动态地定位以使得所显示的子部分优化可用显示 空间,这有利地允许流程图维持最优外观。在某些情况下,可以垂直地或对角 地重新定位水平显示的子部分以平衡显示。对垂直和对角显示的子部分的改变 也可被改变。以上优点将在以下对二维树状结构的具体示例的讨论中变得更加 显而易见。

在某些实施例中,修改模块140也接收指定树状结构190将被如何修改和 /或显示的预定义规则160。在这些实施例中,修改模块160基于已经讨论过的 用户交互以及所接收到的规则160动态地缩放、展开或折叠除了至少一个端部 分之外的子部分。一个示例规则160可引导布局模块130在流程图中将第二图 形元素放置在第一图形元素的右侧并且将所有附加对象放置在该第二对象的 下面。

在其他实施例中,设计器工具/应用程序120可以访问持久存储器170。持 久存储器170可以是任何类型的合理持久存储器并且可驻留在主存设计器工具 /应用程序120的计算机上,或者可通过任何类型的网络连接来访问。在这些实 施例中,使用持久存储器170以在用户退出设计器工具/应用程序120时保持对 树状结构190的子部分所作出的任何修改。当该用户重新激活设计器工具/应用 程序120时,如将在以下更详细解释的,树状结构190被显示成在设计器工具 /应用程序120退出之前它出现的样子。

参考图2A,描绘了一具体的图状视觉语言流程图200。流程图200是示 出行动者可以如何使用软件来下定单的用例图(UML的一部分)。该示图中 所示出的是不同的对象和连接器类型。例如,形状201是行动者类型。其他形 状表示该行动者所做的事情或由该过程完成的事情。在各种形状之间的线是表 示各形状之间的关系的连接器。在图2A中,连接器可以是例如<使用>或<扩 展>类型以及其他连接器类型。

例如,用户(行动者)201可以下订单208。如连接器211所示的,下定 单可展开到请求商品目录204。下定单使用提供动作顾客数据202、定购产品 203以及安排支付205,如连接器212-214所示的。支付类型可以是现金206 或可安排信用卡207,如连接器215和216所示的。

如上所述,设计器工具/应用程序120可以接收流程图200并且将该流程 图200转换为二维树状结构,其包括可通过如上所述在垂直和水平方向上并且 可能在对角方向上缩放、折叠和展开来修改的子部分231-237。现在参考图2B, 流程图200被示为在经历了转换和显示过程之后它可能出现在设计器工具/应 用程序120中的样子。注意,可与树状结构190相对应的示图200尽管不是必 需的,但仍旧包括先前描述的对象201-208。还要注意,用户交互式(UI)元 素221-229也已由设计器工具/应用程序120添加到该树状结构。该UI元素用 于允许用户动态地修改树状结构200的子部分。

在图2B中,连接器212、213、和214已基于其作为<使用>类型连接器的 共同性被转换为单个连接分支。以同样的方式,连接器215和216基于其共同 的连接器类型被转换为单个连接分支。这两者都是多连接器的示例,其中在向 二维树状结构的转换期间,各子部分之间的两个或多个连接被组合成表示组合 连接器的连接器。当然,如果情况保证,则不同类型的连接器能够被组合成单 个连接器也是可能的。例如,在图2中,一般对应于子部分237的垂直线将会 是多连接器,而对应于子部分233和234的水平线将会是特定连接器。在这些 实施例中,不同类型的连接器已被组合成单个连接器的指示可被放置在对应于 子部分233和234的水平连接器旁边。

在该图中,用户201充当该树状结构的根。注意,可能存在不止一个根。 例如,“下定单”208可以是从其分叉出的两个分支的根,而“安排支付”205 也可用作从其分叉出的分支的根。树状结构200还包括用作分支的末尾的若干 端部分。例如,“请求商品目录”204可以是端部分,因为它是分支的末尾。 以同样的方式,“提供顾客数据”202、“定购产品”203、“安排支付”207、 以及“支付现金”206也可被认为是端部分,因为它们是分支的末尾。在某些 实施例中,可对除了端部分之外的子部分作出修改。在其他实施例中,可对所 有子部分作出修改。

如上所述,设计器工具/应用程序120将UI元素221-229添加到二维树状 结构200。这些UI元素允许用户水平及垂直地动态地修改各子部分231-237。 该修改通常是缩放、折叠或展开各子部分中的一个。现在将描述若干示例。注 意,尽管示例通常使用折叠作为所示出的修改,但是展开和/或缩放也可甚至在 没有显式提到时执行。

例如,可以选择UI 222,使得在垂直方向上折叠包括对象204的子部分 232。同时,可选择UI 223,使得折叠具有其相对应对象的子部分233-237。因 此,二维树状结构200具有水平或者垂直修改的能力。尽管图2B未示出,但 是如将在以下参考图3描述的,二维树状机构还可在对角方向上修改。

此外,子部分也可在水平和垂直两个方向上修改。例如,可以选择UI 226, 使得在垂直方向上折叠对象206和207。相反,可以选择UI 227和/或228,使 得水平折叠对象206和/或207。以同样的方式,子部分233、234、和237在选 择UI 223的情况下可被垂直修改并且在分别选择UI 224、225、和229的情况 下也可被水平修改。

在某些实施例中,二维树状结构200也具有对该树状结构200的子部分作 出修改而无需也对从被修改的子部分分叉出的子部分自动作出修改的能力。例 如,可以折叠UI 225。这将折叠包括对象205的子部分234。然而,子部分235 和236将不会也被自动折叠。它们可以简单地重新缩放以优化可用查看空间。 当然,用户可能只需要显示对象206,在这一情况下对象207在接收到对于该 端点的用户交互之后也可被水平折叠。

作为又一个示例,包括对象208的子部分231可通过选择UI 221来折叠。 在许多传统的一维树状结构中,这将自动折叠该树状结构的剩余部分。在二维 树中,仍然显示其余子部分直到用户交互指定对它们的修改,尽管在某些实施 例中它们可以被自动缩放以允许优化显示。因此,用户可以动态地修改树状结 构200以便只显示用户所期望的子部分。

注意,在以下的图2B以及图3和4中,为每个对象或子部分只示出了一 个UI元素。所示UI元素允许折叠和展开子部分。可以理解,也可以采用更大 数量的UI元素。可以使用这些附加UI元素来展开和折叠特性标志、用户注释、 对象和/或子部分之间的附加关系等等。因此,此处所公开的各实施例构想了实 现任何数量的UI元素的二维树状结构。

为了进一步示出由设计工具/应用程序120提供的动态修改能力,图3A描 绘了可与图1的树状结构190相对应的通用二维树状结构300。图3A包括各 种形状301-313。注意,这些形状包括或描述各种对象、属性、操作、关联等 等。形状301-313的确切特性对于此处所描述的各实施例并不重要,并且被示 为各种形状以反应这一点。树状结构300还包括UI元素321-333,这些元素放 置于该树状结构中以允许通过展开/折叠以及缩放机制来动态修改该树状结构 的子部分。注意,树状结构300的总体布局只是为了说明并且不应用于限制此 处所公开的各实施例。

形状301可充当该树状结构的根,尽管其他元素也可以是该树状结构的 根。从该根分叉出的是各个子部分350-361。注意,某些子部分是水平方向的, 某些是垂直方向的,而某些是对角方向的。因为树状结构300是二维的,所以 如果情况保证则它可以在这些方向的任一个上修改。如上所述,修改通常是缩 放、折叠、或展开。

参考图3B,描绘了在某些子分支被修改之后的树状结构300。例如,用 户可能期望修改对角子部分350。用户能够提供将选择UI元素321的输入, 因此在对角方向上折叠包括形状302的子部分350。在某些实施例中,当选择 UI 321时子部分351和352也可被对角折叠。在其他实施例中,二维树状结构 300只折叠对角子部分350而仍旧显示子部分351和352。在一维树状结构中, 子部分351和352通常始终将被折叠。稍后,可以选择UI 321以动态地展开 对角子部分350,如果这是所期望的。

以同样的方式,用户也可能期望修改垂直子部分360。用户将提供将选择 UI元素331的输入,因此在垂直方向上折叠包括形状312的子部分360。在一 维树状结构中,子部分360和352通常始终也将被折叠。然而,在某些实施例 中,二维树状结构300只折叠垂直子部分360而仍旧显示子部分361。稍后, 可以选择UI 331以动态地展开垂直子部分360,如果这是所期望的。

类似地,用户也可能期望修改水平子部分354。用户将提供将选择UI元 素326的输入,因此在水平方向上折叠包括形状306的子部分354。如上所述, 在一维树状结构中,子部分355和356通常也将被折叠。在某些实施例中,二 维树状结构300只折叠水平子部分306而仍旧显示子部分307和308。如同对 角和垂直修改,稍后,可以选择UI 326以动态地展开水平子部分354,如果这 是所期望的。

此外,图3B也示出包括形状314和UI元素334的新子部分362已被添 加到二维树状结构300。设计器工具/应用程序120允许用户选择期望向其添加 新子部分的树状结构300的一部分。例如,用户可以使用用户界面,该用户界 面允许用户选择并拖拽一新图形子部分或对象并将其放置在树状结构上所期 望的位置。设计器工具/应用程序120然后可以自动添加该新子部分或对象;且 树状结构300被缩放以优化可用显示空间。因此,该用户可以动态地将新子部 分或对象添加到树状结构300。

参考图3C,示出了对二维树状结构300的进一步修改。在该描绘中,示 出了根形状301以及包括形状311的端部分359。也示出了表示图3A的子部 分350以及超出子部分350的所有子部分的框380。类似地,框390表示图3A 的子部分353以及超出子部分353的所有子部分。注意,使用框380和390只 是为了方便,并且并不意味着暗示设计器工具120的任何实际显示。

图3C示出二维树状结构300修改任何子部分而不必也修改从被修改的部 分分叉出的子部分的能力。尽管只有三个示例修改在树状结构300中示出,但 是图3A所示的其他子部分中的任一个也可按需水平地、垂直地和/或对角地缩 放、折叠、或扩展。用户因此具有动态地展开框380和390的各部分以显示被 认为是该用户所期望的那些部分的能力。这有利地允许该用户聚焦于最感兴趣 的子部分。

此外,图3C示出树状结构300具有如果需要折叠除了根形状和端部分之 外的所有元素的能力。这对于具有几百个子部分的树状结构而期望只显示例如 过程的开头和结尾而言是有利的。注意,当在图3B和3C中作出修改时(尽 管未示出),设计器工具120也动态地缩放树状结构300以最优地适合可用显 示空间。

以上已提到过很多次,此处所公开的某些实施例与具有各子部分的二维树 状相关,这些子部分可被修改而不必也修改端部分或从正被修改的子部分分叉 出的子部分。这与一维树状结构通常如何被修改不同。这些一维树状结构一般 被显示为具有根以及包括从主分支分叉出的各个子部分和/或其他子部分的一 个或多个分支。一维树状结构的示例包括公知的计算机操作系统的文件和文件 夹目录。一维树状结构允许用户折叠和展开各个子部分。然而,与上述二维树 状结构的某些实施例截然相反的是,充当端部分的子部分通常在修改其上方的 任何其他子部分的任何时候也被修改。

例如,图5示出了典型的一维树状结构500。树状结构500包括可以是任 何图形对象的形状501-504。第二子部分522从第一子部分521分叉出并且也 充当该树状结构中的端部分的第三子部分523从该第二子部分522分叉出。如 果用户折叠该第一子部分521,则包括形状502、503和504的该第二和第三子 部分522和523也将自动折叠。以同样的方式,折叠该第二子部分522将自动 折叠包括形状503和504的该第三子部分523。用户仅仅是不能够在仍然显示 该第三子部分523的同时折叠该第二子部分522,或在仍然显示该第二和/或第 三子部分522和523的同时折叠该第一子部分521。以同样的方式,展开子部 分521和/或522也自动展开子部分523。在以上所有场景中,对端部分523以 上的子部分的任何修改都会导致端部分523也被修改。

现在参考图4A-4C,示出了二维树状结构的某些实施例的其它修改方面的 又一个示例。在图4A中,用形状401-405来示出可与图1的树状结构190相 对应的二维树状结构400。如同先前的示例,形状401-405的确切特性并不重 要。在该示例中,形状401表示也包括子部分410-413的树状结构400的根。 如上所述,可接收修改子部分411的用户输入。

参考图4B,修改子部分411得到表示已被折叠的形状402和403的UI 元素460。树状结构400现在包括形状401、404和405。此外,然后创建包括 子部分410、412以及UI元素460的子部分430。

现在参考图4C,示出了用户已修改子部分430,这得到表示已被折叠的 形状401和404的UI元素461以及表示先前折叠的形状的UI元素460。注意, 尽管UI元素460在图4C中被示为在UI元素461内部,但是这不是一个必要 的特征。例如,在某些实施例中,单个UI元素在被用户选择时可使得UI元素 460和461的所有折叠的子部分展开。在其他实施例中,UI元素460可以在 UI元素461中隐藏并且可以直到UI元素461被展开才可见。

在其他实施例中,图4C示出设计器工具120能够记住隐藏子部分的状态。 例如,如果UI元素461稍后被用户展开,则将显示形状401和404,但是形 状402和403将仍然被折叠并由UI元素460来表示直到UI元素460稍后被展 开。

在其他实施例中,如上所述,计算系统100包括可用于保持对二维树状结 构所作出的修改的持久存储器170。例如,回头参考图4A-4C,当子部分411 被折叠成UI元素460时,该修改可被保持在持久存储器中。如果用户要退出 设计器工具/应用程序120,则该修改将不会丢失。稍后,当该用户重新激活设 计器工具/应用程序120时,将如图4B所示地显示树状图400。

类似地,如果用户在退出设计器工具/应用程序120之前将子部分430折 叠成UI元素461,则对子部分430作出的修改以及可被隐藏的对子部分411 作出的修改被保持在持久存储器170中。稍后,当该用户重新激活设计器工具 /应用程序120时,将如图4C所示显示树状图400。有利地,由UI元素460 表示的修改,无论隐藏与否,都被保留以使得如果用户展开UI元素461则将 如图4B所示地显示UI元素460。如果UI元素460然后被展开,则将如图4A 所示地显示树状结构400。因此,甚至在退出运行该树状结构的应用程序时也 持久存储隐藏和非隐藏的修改的能力给予用户修改而不必跟踪在退出该应用 程序时所作出的所有修改的能力。这对于包括几百个嵌套子部分的树状结构而 言尤其有用。如果该修改没有被持久存储,则用户将不得不在每次应用程序启 动时重做修改。

本发明还可按照包括功能性步骤和/或非功能性动作的方法来描述。下文 是可被执行以实践本发明的步骤和/或动作的描述。通常,功能性步骤按照可以 实现的结果来描述本发明,而非功能性动作描述实现特定结果的更为具体的动 作。虽然功能性步骤和/或非功能性动作可以按特定次序描述或声明,但是本发 明不一定要受限于步骤和/或动作的任何特定次序或组合。此外,在权利要求的 叙述中以及在以下对图6-9的流程图的描述中使用步骤和/或动作以指示对这 些术语的期望的特定使用。

如上所述,图6-9示出了用于本发明的各示例性实施例的流程图。以下对 图6-9的描述将不时参考图1-4中的对应元素。虽然可以做出对这些附图中特 定元素的参考,但是这些参考只用于说明性目的,而非旨在限制或以其他方式 缩小所述实施例的范围,除非明确声明。

首先转向图6,示出了方法600的流程图,该方法用于将图状视觉语言的 流程图动态地布局成允许易于用户交互与最优显示的二维树状结构。方法600 包括显示601包括至少一个分支的图形树状结构,该分支从该树状结构的根开 始并且包括多个子部分,其中子部分包括至少一个端部分。该子部分按照一个 或多个对象、属性、操作和关联的功能关系和内部行为来对系统、服务或过程 建模。

例如,设计器工具/应用程序120的布局/呈现模块130可以显示二维树状 结构190。树状结构200、300和400是满足以上定义的二维树状结构的示例。

方法600还包括接收602修改该图形树状结构中除了至少一个端部分之外 的一个或多个子部分的用户交互。例如,设计器工具/应用程序120的修改模块 140可以接收修改树状结构190的子部分的用户输入180。在某些实施例中, 用户交互可以选择一个或多个子部分以供缩放、折叠或展开。这可以通过激活 与将被修改的子部分相关联的UI元素来完成。

在某些实施例中,设计器工具/应用程序120的修改模块140也接收指定 树状结构190将如何被修改和显示的一个或多个预定义规则160。基于该规则 和接收到的用户交互,动态地修改树状结构190。

方法600还包括基于该用户交互,通过缩放、展开或折叠中的一个来动态 地修改603除了端部分之外的一个或多个子部分以便于用户交互、优化显示、 或两者而无需修改端部分。例如,设计器工具/应用程序120的修改模块140 可以动态地修改树状结构190,其然后可由布局模块130来优化以供显示。可 以垂直地、水平地、对角地、或以其任何组合修改子部分。

例如,在某些实施例中,可以垂直地、水平地、对角地、或以其任何组合 折叠一个或多个子部分而无需折叠端部分,如图3B所示的。在这些实施例中, 折叠可包括将子部分中的至少一个自动格式化为诸如以上所描述的UI元素等 单个图形对象。该单个图形对象一般将被配置成可在接收到附加用户交互之后 展开回到该至少一个子部分。该附加用户交互可以与用户展开该UI元素一样 简单。

在其他实施例中,具有耦合到第一子部分的至少一个节点的第二子部分可 被动态地缩放、折叠或展开。该第一子部分然后可在该第二子部分后被动态地 修改而无需修改端部分。这允许如图4A-4C所示的树状数据结构中的隐藏修 改。

在其他实施例中,也可垂直地、水平地、或以其任何组合展开一个或多个 子部分而无需展开端部分。在这些实施例中,展开可包括将诸如UI元素等可 展开图形对象自动格式化为至少一个子部分。

在另外的实施例中,动态修改可包括将新子部分添加到树状结构。例如, 包括形状314的子部分362被添加到二维树状结构300。该新子部分可通过选 择树状结构中的所需位置并且使设计器工具/应用程序120自动定位该新子部 分同时还自动平衡该树状结构来添加。

现在转向图7,示出了方法700的流程图,该方法用于将对视觉树状结构 的一个或多个子分支作出的修改持久保留在存储器中以使得对该树状结构的 显示所作出的改变甚至在用户退出用于修改该树状结构的应用程序时也被保 持。方法700包括激活701显示树状结构的应用程序,该树状结构包括从该树 状结构的根开始并且包括多个子分支的至少一个分支。这些子分支用于按照一 个或多个对象、属性、操作和关联的功能关系和内部行为来对系统、服务或过 程建模。

例如,可激活设计器工具/应用程序120以显示树状结构190,其示例在图 2-4中示出。在某些实施例中,树状结构也可以是一维树状结构。

方法700还包括接收702修改多个子分支中的至少一个的用户输入。例如, 修改模块140接收修改树状结构190的一个或多个子分支的用户输入140。在 某些实施例中,该用户输入可以选择展开或折叠该子分支的UI元素。修改可 包括缩放、折叠和扩展正被修改的子分支。

方法700还包括基于该用户输入,在持久存储器中保持703对该子分支所 作出的修改以使得在用户已退出该应用程序之后的稍后时间重新激活该应用 程序时,该树状结构可与其在应用程序被退出时所出现的完全一样地显示。例 如,对树状结构190所作出的修改可以被保持在持久存储器170中。当设计器 工具/应用程序120退出并然后稍后被重新激活时,树状结构190的显示在设计 器工具/应用程序120退出时再一次被显示。

在某些实施例中,接收修改具有耦合到第一子分支的节点的第二子分支的 用户输入。该第二子分支被修改。在该修改之后,修改第一子分支以使得第二 子分支的修改被隐藏。第二子分支的隐藏的已修改状态然后可以被保存在持久 存储器中。当该应用程序稍后运行时,诸如选择UI元素的用户输入的接收允 许该隐藏的第二子分支被显示。

例如,参考图4A-4C,子部分411可被折叠成UI元素411。在这之后, 如以上所解释的,子部分430可被折叠成隐藏UI元素411的UI元素461。将 包括UI元素461的树状结构400保存在持久存储器170中允许如上所述当应 用程序120被重新激活时恢复子部分411。

参考图8,示出了用于将视觉树状结构转换为二维树状结构的方法800。 方法800包括接收801包括不能够被修改的多个子部分的第一树状结构或图状 视觉语言。在替换方案中,接收第二树状结构,该第二树状结构包括从该树状 结构的根开始并且包括多个子部分的至少一个分支。这些子部分按照一个或多 个对象、属性、操作和关联的功能关系和内部行为来对系统、服务或过程建模。 这些子部分包括只要一个或多个子部分被修改就被修改的至少一个端部分。

例如,设计器工具/应用程序120的布局模块130可以接收图状视觉语言 110,该图状视觉语言可以是不能够被修改的预先存在的树状结构、只能够在 端部分被修改的情况下被修改的预先存在的一维树状结构、或预先存在的任意 图状视觉语言。图状视觉语言110也可以是如上所述由用户创建的这三个中的 任一个。该任意图状视觉语言可包括强调在正在建模的系统、服务或过程中通 常必须有什么东西的结构图;强调在正在建模的系统、服务或过程中必须发生 什么事情的行为图;以及强调在正在建模的系统、服务或过程中的东西之间的 控制和数据流的交互图。它还可包括各种示图类型的统一建模语言(UML)、 数据库领域中的实体关系图、以及用于业务流程设计的业务流程图。

方法800还包括将接收到的第一或第二树状结构或任意图状视觉语言转 换802为二维树状结构。二维树状结构包括至少一个分支,该分支从该二维树 状结构的根开始并且包括包含端部分的多个子部分,其中除了端部分之外的子 部分可通过缩放、折叠或展开来修改而无需也修改该端部分。

例如,转换模块150可以将接收到的树状结构或图状视觉语言转换为二维 树状结构190。如上所述,可垂直地、水平地、对角地、或用三者的任何组合 来修改该二维树状结构。已转换的二维树状结构也允许先前对二维树状结构所 描述的与此处所描述的其他方法和实施例相关的所有功能。

现在转向图9,示出了方法900的流程图,该方法用于将图状视觉语言的 示图动态地布局成允许易于用户交互与最优显示的二维树状结构。方法900包 括显示901包括至少一个分支的图形树状结构,该分支从该图形树状结构的根 开始并且包括被配置成在垂直方向和水平方向上修改的多个子部分。这些子部 分按照一个或多个对象、属性、操作和关联的功能关系和内部行为来对系统、 服务或过程建模。子部分也可被配置成对角地修改。

例如,设计器工具/应用程序120的布局/呈现模块130可以显示二维树状 结构190。树状结构200、300、和400是满足以上定义的二维树状结构的示例。

方法900还包括接收902修改除了该图形树状结构中至少一个端部分之外 的一个或多个子部分的用户交互。例如,设计器工具/应用程序120的修改模块 140可以接收修改树状结构190的子部分的用户输入180。在某些实施例中, 用户交互可以选择一个或多个子部分以供垂直地、水平地以及可能对角地缩 放、折叠或展开。这可以通过激活与将被修改的子部分相关联的UI元素来完 成。

方法900还包括基于该用户交互,水平地、垂直地、或两者兼有地动态修 改903,以允许易于用户交互、以及显示优化、或两者。例如,设计器工具/ 应用程序120的修改模块140可以动态地修改树状结构190,其然后可由布局 模块130来优化以供显示。子部分可以被缩放、展开或折叠。

在其他实施例中,具有耦合到第一子部分的至少一个节点的第二子部分可 被动态地修改。第一子部分然后可以在第二子部分之后以隐藏对该第二子部分 的修改的方式来动态地修改。这允许如图4A-4C所示的树状数据结构中的隐藏 修改。该隐藏的修改稍后可以在接收到附加用户输入时显示。

在其他实施例中,动态修改可包括将新子部分添加到树状结构。例如,包 括形状314的子部分362被添加到二维树状结构300。该新子部分可通过选择 树状结构中的所需位置并且使设计器工具/应用程序120自动定位该新子部分 同时还自动平衡该树状结构来添加。也可实现诸如将多个连接器组合成一个连 接器等其他修改技术。

在另外的实施例中,优化图形树状结构的显示包括将一个或多个子部分从 水平方向自动切换为垂直方向或将一个或多个子部分从垂直方向自动切换为 水平方向以针对显示设备或窗口的高宽比进行优化。例如,在某些情况下,图 形树状结构的一个或多个分支可能使得该图形树状结构的显示对于显示设备 的高宽比并未被优化。例如,该图形树状结构可能在垂直方向上过长,而显示 设备在水平方向上具有未使用的显示空间。在这种情况下,设计器工具/应用程 序120可以将一个或多个垂直子部分自动切换为水平显示。这些子部分可以在 诸如当一新元素被添加到需要切换来保持显示优化的图形树状结构时等情况 保证的稍后时刻切换回到垂直显示。

例如,参考图3A,在某些实施例中,设计器工具/应用程序120可以自动 切换垂直子部分360和361的显示以将其显示为从元素310水平分叉出以便针 对显示设备的高宽比进行优化。以同样的方式,设计器工具/应用程序120可以 自动切换水平子部分354-356(或这些子部分的任何子集)的显示以在情况保 证的情况下将其显示为从元素305垂直分叉出。注意,设计器工具/应用程序 120可在必要时自动切换图3A和3B的元素中的任一个的显示方向以针对显示 设备或窗口的高宽比进行优化。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例 在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附 权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的 所有改变应被权利要求书的范围涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号