CN110462583B - 自动化界面设计 - Google Patents
自动化界面设计 Download PDFInfo
- Publication number
- CN110462583B CN110462583B CN201780088773.1A CN201780088773A CN110462583B CN 110462583 B CN110462583 B CN 110462583B CN 201780088773 A CN201780088773 A CN 201780088773A CN 110462583 B CN110462583 B CN 110462583B
- Authority
- CN
- China
- Prior art keywords
- design
- user interface
- tree
- node
- candidate user
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
自动化界面基于预定的功能和关系信息的预定集合生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作。确定多个候选用户界面设计,每个候选用户界面设计实施所接收的多个功能,通过沿着从树的根节点到树的相应叶节点的多个遍历路径遍历树并且沿着遍历路径执行分支表示的相应设计动作。基于预定选择算法从多个完成界面设计中选择完成界面设计,并且基于选择的候选用户界面设计生成最终用户界面。
Description
背景技术
本申请要求于2017年3月20日提交的标题为“AUTOMATED INTERFACE DESIGN(自动化界面设计)”的、序列号为15/464,279的美国专利申请的权益和优先权,出于所有目的,其公开内容通过引用整体并入本文。
用户界面设计和构造通常是耗时的。用户界面设计的自动化是复杂的,使用固定的规则并且难以在没有显着成本的情况下扩展(scale)。
发明内容
主题技术提供一种用于自动化用户界面设计的系统和计算机实施的方法。在一些实施方式中,方法包括:接收用于要生成的用户界面的多个功能和描述多个功能如何彼此相关的关系信息;基于多个功能和关系信息生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作;通过沿着从树的根节点到树的相应叶节点的多个遍历路径遍历树并且沿着遍历路径执行分支表示的相应设计动作,确定多个候选用户界面设计,每个候选用户界面设计实施接收的多个功能;中基于预定选择算法从多个完成界面设计选择所选择的完成界面设计;以及基于所选择的候选用户界面设计生成用户界面。
该方法还可以包括:通过沿着从树的根节点到树的相应叶节点的相应遍历路径遍历树并且沿着遍历路径执行分支表示的相应设计动作,创建实施接收的多个功能的相应候选用户界面设计;使用预定评估算法基于相应候选用户界面设计的评估计算相应候选用户界面设计的设计分数;重复创建和计算步骤以生成多个候选用户界面设计和相对应的多个设计分数;以及基于多个设计分数从多个完成界面设计中选择所选择的完成界面设计。其他方面包括用于计算机实施方法的实施方式的相对应的系统、装置和计算机程序产品。
在一个或多个实施方式中,系统包括:一个或多个处理器;以及存储器,包括存储在其上的指令,所述指令在被所述一个或多个处理器执行时,使所述一个或多个处理器执行操作,例如,以实施描述的方法中的任何一个。在一些实施方式中,所述操作包括:接收用于要生成的用户界面的多个功能和描述多个功能如何彼此相关的关系信息;基于多个功能和关系信息生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作;通过沿着从树的根节点到树的叶节点的遍历路径遍历树并且沿着遍历路径执行分支表示的相应设计动作,确定实施接收的多个功能的候选用户界面设计;使用预定算法基于候选用户界面设计的评估来计算候选用户界面设计的设计分数;重复确定和计算以生成多个候选用户界面设计和相对应的多个设计分数;基于多个设计分数从多个完成界面设计中选择所选择的完成界面设计;以及基于所选择的候选用户界面设计生成用户界面。其他方面包括用于操作的实施方式的相对应方法、装置和计算机程序产品。
在一个或多个实施方式中,一种非暂时性计算机可读介质,具有存储在其上的指令,所述指令在被执行时使计算设备执行描述的方法中的任何一个,例如包括:接收用于要生成的用户界面的多个功能和描述多个功能如何彼此相关的关系信息;基于多个功能和关系信息生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作;通过沿着从树的根节点到树的叶节点的遍历路径遍历树并且沿着遍历路径执行分支表示的相应设计动作,确定实施接收的多个功能的多个候选用户界面设计;使用预定算法基于候选用户界面设计的评估计算候选用户界面设计的设计分数;重复确定和计算步骤预定迭代次数,以生成多个候选用户界面设计和相对应的多个设计分数;基于多个设计分数从多个完成界面设计中选择所选择的完成界面设计;以及基于所选择的候选用户界面设计生成用户界面。其他方面包括用于机器可读介质的实施方式的相对应的方法、系统、装置和计算机程序产品。
要理解,本领域技术人员从以下详细描述中将容易明白本主题技术的其他配置,其中通过图示的方式示出和描述了本主题技术的各种配置。如将认识到的,本主题技术能够具有其他和不同的配置,并且其若干细节能够在各种其他方面进行修改,所有这些都不脱离本主题技术的范围。因此,附图和详细描述本质上被认为是说明性的而不是限制性的。
附图说明
将参考附图进行详细描述:
图1描绘了用于基于候选用户界面设计自动生成最终用户界面的示例设计者界面。
图2描绘了得到用于目标计算设备的完成用户界面的示例性缩略系列设计“动作”。
图3描绘了表示可以在示例最终用户界面设计中实施的所有可能界面的设计空间的示例设计树。
图4A-图4D描绘了由示例设计者界面创建的最终用户界面的示例。
图5描绘了用于基于候选用户界面设计自动生成最终用户界面的第二示例处理。
图6是示出用于基于候选用户界面设计自动生成最终用户界面的示例电子系统的示图。
具体实施方式
以下阐述的详细描述旨在作为主题技术的各种配置的描述,并且不旨在表示可以实践主题技术的仅有的配置。附图并入本文并且构成详细描述的一部分。详细描述包括用于提供对主题技术的透彻理解的具体细节。然而,对于本领域技术人员来说清楚并且明显的是,本主题技术不限于本文阐述的具体细节,并且可以在没有这些具体细节的情况下实践。在一些实例中,以框图形式示出了公知的结构和组件,以避免模糊本主题技术的概念。
主题技术提供了一种自动用户界面设计系统,其基于规范快速生成用户界面。首先,设计界面(例如,从用户)捕获设计规范,该设计规范包括将在要生成的用户界面中将要实施的多个功能,以及描述功能如何彼此相关的关系信息。设计规范可以是组的层级结构的形式,其中,每个组包括一个或多个状态变量、命令和/或文本信息。关系信息可以包括层级结构本身。
一旦捕获了设计规范,本主题技术的系统就基于设计规范中包括的多个功能和关系信息生成设计动作的数据结构。数据结构可以是“设计树”,其包括分支和节点,其中,根节点表示设计规范并且每个叶节点表示候选用户界面设计。设计树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作。树中给定节点等级的节点的每个分支对应于相同类型的设计动作。
可以实施几种类型的设计动作,其中,设计树的每个节点等级的节点实施不同类型的设计动作。例如,第一节点等级的第一节点的每个分支可以对应于对设计规范中提供的组的层级结构执行不同的合并操作的设计动作。根据一个示例,第一组和第二组可以处于子-父(child-parent)关系,并且第一组可以合并到第二组中。第二节点等级的第二节点的每个分支可以对应于为多个功能的相应功能选择小部件类型的设计动作。当选择第二节点的分支时,将用于分支的小部件类型的小部件放入生成的用户界面中。
沿着从树的根节点到叶节点的遍历路径自动地遍历设计树,并且沿着遍历路径执行分支表示的相应设计动作。在第一次遍历树时选择哪些分支可以随机地确定。通过沿遍历路径选择的所有设计动作的总和自动地生成用户界面设计。
在随后的设计树遍历期间,遍历算法可以忽略其子项(children)已经被充分探索的节点和分支。为了引导树的未来遍历,可以将分配给候选用户界面设计的设计分数分配给引到候选用户界面设计的遍历路径中的每个中间节点。设计分数可以与使用包括中间节点的遍历路径生成的候选用户界面设计的其他设计分数聚合。关于这点,当遍历设计树时,可以基于分配给分支的节点的聚合分数从多个分支中选择分支。
当遍历算法到达叶节点时,已经确定了候选用户界面设计。然后,系统基于使用一个或多个预定评估算法的候选用户界面设计的评估来计算候选用户界面设计的设计分数。预定评估算法可以包括例如与用户界面设计质量或人类表现的生理模型相关的预定启发法。
可以遍历设计树多次以生成多个候选用户界面设计和相对应的多个设计分数。然后基于多个设计分数选择完成的界面设计中的一个,并且基于选择的候选用户界面设计生成用户界面。
图1描绘了根据本主题技术的一个或多个方面的用于基于候选用户界面设计106自动生成最终用户界面104的示例设计者界面102。在计算设备108的操作期间,可执行指令110被加载到运行时环境112中并且被执行。指令110在被执行时创建设计者界面102,并且可以对提供用于在设计者界面102中显示的数据执行多个操作。
可执行指令110可以实施作为设计者界面102的一部分的自动设计界面114,其从用户接收输入数据并且基于一系列算法操作自动地生成最终用户界面104。根据一些实施方式,通过上载界面118将设计规范116上载到设计界面102。另外地或替代地,可以通过文本输入和/或菜单选择120的方式来接收输入以定义设计规范116。设计规范116可以包括,例如,被指定在最终用户界面104中实施的多个功能,以及描述多个功能如何彼此相关的关系信息。可以以组的层级结构的形式接收关系信息,每个组包括状态变量、命令和文本信息中的一个或多个。
规范116可以基于例如Jeffrey Nichols和Brad A.Myers描述的PUC规范语言编写,Creating a lightweight user interface description language:An overview andanalysis of the personal universal controller project,ACM Trans.Comput.-Hum.Interact.(2009),16(4).1-37.10.1 145/1614390.1614392,其主题通过引用并入。与PUC语言类似,规范116可以包括可以包含状态变量或命令的组的层级结构。状态变量可以具有诸如布尔值或串的类型。在该语言中,可以为大多数项目指定文本标签。
自动设计界面114包括软件(例如,作为可执行指令110的一部分),其基于设计规范116可以生成设计动作的设计树122。设计树122可以基于响应于设计树的不同遍历路径和/或与设计者界面102相关联的输入而改变的设计动作来生成候选用户界面设计106。树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作。
可执行指令110可以确定多个候选用户界面设计106和用于设计的相对应的多个设计分数。每个候选设计106表示实施所接收的规范116的功能的完成(原型)用户界面。为了生成每个候选界面设计,沿着从树的根节点到树的叶节点的不同路径遍历树,并且沿遍历路径执行分支表示的相应设计动作。关于这点,每个分支表示构建用户界面104所采取的潜在动作,树内的节点表示部分设计的界面,并且树中的每个叶节点表示完成用户界面。例如,一种类型的动作可能是在屏幕上放置特定的UI小部件(诸如按钮)以表示所需的功能。基于使用预定评估算法的候选用户界面设计的评估,为每个候选用户界面设计116计算设计分数。评估器用于对候选界面设计的质量进行排序,并且可以基于启发法、人类表现模型或两者。
树可以遍历预定次数的迭代(例如,十、二十、一百、一千等),直到达到预定的阈值设计分数,或者直到遍历了每个可能的路径。一旦确定了候选用户界面设计116,则基于多个设计分数从候选界面设计中选择所选择的完成界面设计,并且指令110基于所选择的候选用户界面设计生成用户界面104。
图2描绘了根据本主题技术的各个方面的得到用于目标计算设备202的完成用户界面的示例性缩减系列设计“动作”200。在所描绘的示例中,规范116被接收204,基于例如规范中的功能划分用户界面屏幕206,在界面屏幕上定位文本字段208,以及根据在遍历设计树122期间进行的设计选择来采取和实施其他动作210。在最终步骤212中,可以实施诸如认证的最终设计选择。然后,最终用户界面104可以通过设计者界面102在计算设备108上显示。示例设计动作200仅代表一种可能的设计方案,并且主题技术不限于此。不同的设计选择最终将导致任意数量的不同用户界面设计。由主题技术确定的用户界面可以包括例如电子邮件客户端、FTP客户端、照片共享客户端、播客应用、打印机对话框、待办事项列表应用、音乐应用等。
图3描绘了根据本主题技术的各个方面的示例设计树122,表示可以在示例最终用户界面设计中实施的所有可能界面的设计空间。在设计树122内,具有子项的每个节点302表示用户界面的部分设计,叶节点304表示完成候选用户界面设计106,并且每个分支306表示在树的遍历中在该点采取的特定设计动作308。设计树122作为示例给出,并且树的实际应用在宽度和深度方面可以大得多。树的宽度可能受到任何步骤中可用动作的数量的影响,这在实际场景中将是实质性的并且随着树的加深而呈指数增长。深度对应于产生最终用户界面104所采取的动作的数量。完成界面所需的动作的数量可能与最终设计中使用的界面元素的数量成比例,对于复杂界面而言可能是小几千。与高度相比,设计树的宽度可能更大。
设计动作
设计动作308可以包括用户可以进行以修改当前正在构建的用户界面的任何事情。对于动作类型的参数的每个组合,分支306可以存在于设计树122中。例如,对于小部件分配操作类型,可能存在规范中尚未分配小部件的每个项目的分支以及可能分配给该项目的每个小部件类型的分支。动作类型具有的参数选项越多,设计树122中的分支因子越大。在设计树122中支持的设计动作的数量和类型可以影响生成器的性能和可以创建的设计的多样性两者。
一些示例设计动作类型包括将规范组合并为单个较大的组,选择屏幕的整体布局模式(例如,列表或网格),将小部件分配给规范中的项目,将小部件作为下一个项目放置在屏幕上,在与小部件相关联的屏幕上放置标签,以及增加或减少标签或小部件的文本大小。这些和其他在下面的表1中描述。
动作类型 | 描述 |
组合并 | 将规范组的子项合并到其父项中,删除该组 |
页面布局 | 为面板选择网格或列表样式布局 |
兄弟姐妹项分开 | 选择如何分开屏幕上显示的子组;分隔符、卡片等 |
子组导航 | 选择顶级以下的子组是否需要导航,如果是,则什么类型 |
文本大小 | 选择标签或小部件的文本大小 |
顶组导航 | 选择应用程序的顶级导航样式:选项卡、转盘等。 |
小部件类型 | 选择状态变量或命令的小部件类型 |
表1:动作类型
设计树122的每个节点等级可以实施不同类型的设计动作。根据各种实施方式,树的第一节点等级处的第一节点的分支对应于用于将组的层级结构的第一组合并到组的层级结构的第二组中的不同设计动作。如图3中描绘地,规范116可以代表第一节点或根节点,并且组合并动作可以是对规范116采取的第一动作。
例如,可以通过计算设备108或存储在其上的设计软件来实施设计动作。在一些实施方式中,一个或多个设计动作可以与其他设计动作分开实施,并且可以由一个或多个不同的处理器或计算设备实施。此外,出于解释的目的,设计动作被描述为串行或线性发生。然而,多个设计动作可以并行发生,并且设计动作不需要以特定顺序执行和/或不需要执行本文描述的一个或多个设计动作。
在一些实施方式中,树的第二节点等级处的第二节点的分支可以对应于用于多个功能的相应功能的不同小部件类型。关于这点,当遍历第二节点的相应分支时,自动设计界面114选择由节点的分支提供的不同小部件类型的小部件类型。因此,当对应于小部件类型的分支在遍历路径中时,将选择的小部件类型的小部件放置到用于相应功能的生成的用户界面中。
树的另一节点等级处的另一节点的分支可以对应于用户界面的面板的不同页面布局。页面布局可以包括例如网格布局和列表样式布局。当与选择的页面布局相对应的分支在遍历路径中时,选择这些页面布局中的一个。
树的另一节点等级处的另一节点的分支可以对应于用户界面的面板的不同分隔符。当遍历设计树122时,自动设计界面114可以标识要在用户界面的面板上显示的项目的不同子组,并且基于对应于选择的分隔符的分支的遍历为所标识的不同子组选择不同分隔符的所选择的分隔符。因此,可以基于所选择的分隔符将两个或更多个不同的子组彼此分开。
树的另一节点等级处的另一节点的分支可以对应于用户界面的预定导航类型。导航类型可以包括例如顶级导航标签和顶级导航转盘。当遍历设计树122时,自动设计界面114可以基于对应于选择的导航类型的分支的遍历为用户界面选择导航类型。
自动设计界面114的设计软件可以实施用于在用户界面设计中布置组件的一些强大动作或许多不太强大的动作。在一些实施方式中,简单的强大动作可以支持将给定小部件放置在屏幕上的特定像素位置处的单个动作。通过该动作的多个协调使用,系统可以通过将每个小部件放置在确定的位置来创建完成的布局,如列表和网格。另外地或者替代地,不太强大的动作可以比强大动作包括更多的设计选择粒度,但可以包括两个动作:一个用于选择给定屏幕的布局样式,诸如列表或网格;而另一个用于将小部件放置在布局样式中的下一个可用开放空间中。许多不太强大的操作可能更经常得到有效的界面设计。限制设计空间的大小可以使设计树更小,使得由界面生成算法进行的树探索更加完整并且花费更少的时间。
自动设计界面114可以包括反转由先前动作引入的变化的动作类型。例如,“删除小部件”动作可以撤消为规范中的项创建小部件的先前动作。在另一个示例中,“改变字体大小”多次应用于相同的内容。可以在设计空间树中排序预定动作和/或动作类型。自动设计界面114可以实施预定的动作排序约束,诸如要求按照它们在规范中出现的顺序将小部件分配给项目。约束动作的顺序可以减少设计树的分支因子,节省资源并且改善运行时间。
设计为树搜索
如前所述,设计树122可以从根遍历到叶节点,沿着路径执行每个动作,从而得到完成的用户界面。可以根据预定的原理或算法集合自动评估界面。可以存储关于搜索遍历和结果界面的信息以指导将来的搜索。可以重复前述步骤,直到达到停止条件,例如,经常在预定次数的迭代之后。
评估用户界面设计
当由设计软件生成时,自动设计界面114可以自动地评估用户界面设计。可以在每次遍历设计树122之后执行评估方法,并且其结果用于引导树的后续遍历。在一些示例中,可以在选择最终设计之前生成数千个分数。
一些评估方法可以包括:
·易于计算可能与设计质量相关的启发法,诸如:滚动屏幕的界面区域、屏幕上可见的未使用区域、总屏幕数量等。
·在用作任务一部分的界面元素之间获取所需的交互步骤的数量。
·人类表现的生理模型(例如,视觉杂波、视觉搜索、目标获取、网格对称和颜色和谐)。这些中的一些,诸如目标获取和视觉搜索,可以根据要用界面执行的任务或基于整体设计来计算。
·比较子树与UI控件的已知设计模式或频繁分组的相似性度量。UI控件的这种模式和分组可以来自现有的设计挖掘项目。
·深度神经网络模型从真实用户界面的人类分数训练,例如,类似于价值网络。
可以同时使用多种评估方法,并且可以将相应评估分数与加权因子组合以获得最终评估分数。例如,可以基于视觉搜索和目标获取将一系列启发法分数与生理模型评估分数组合。在一些实施方式中,自动设计界面114可以利用分层评估方法,其中评估来自搜索的前n个结果以确定最终结果。在没有时间约束的情况下,可以通过众包平台或传统的用户研究实验室环境由真实人类对设计进行评估和评分。
下面在表2中进一步描述了一些示例评估算法。
表2:示例评估算法
如前所述,基于使用预定评估算法的候选用户界面设计的评估来计算每个候选用户界面设计的设计分数。设计树122的每个叶304可以发起表2中列出的一个或多个评估算法,以评估对应于叶的候选界面设计106。在一些实施方式中,可以利用多个评估算法来计算候选用户界面设计的设计分数。
作为另一示例,第一评估算法可以基于由相应候选用户界面设计106实施的多个功能和关系信息的量来计算设计分数。第二评估算法可以标识相应候选用户界面设计106是否包括没有在接收的多个功能和关系信息中的默认信息,并且当标识或未标识默认信息时减少或增加计算的设计分数。第三评估算法可以基于在相应候选用户界面设计中实施的屏幕的量来计算设计分数。第四评估算法可以基于在相应候选用户界面设计中实施的屏幕的高宽比来计算设计分数。第五评估算法可以基于相应候选用户界面设计中的未使用屏幕空间来计算设计分数。第六评估算法可以标识相应候选用户界面设计是否包括一个或多个屏幕的水平滚动,并且如果标识水平滚动则减少计算的设计分数。第七评估算法可以基于接收的多个功能和关系信息以及发起和完成任务所需的用户交互的数量来标识任务,并且基于所标识的用户交互的数量来计算设计分数。第八评估算法可以确定基于相同的用户交互输入做出的不同决策的计数,并且基于所确定的计数减少计算的设计分数。第九评估算法可以基于所接收的多个功能和关系信息来标识任务,并且在相应候选用户界面设计的屏幕中标识与任务相关联的目标,确定用户移动到目标并且选择目标的估计时间量,以及根据估计的时间量计算(和/或调整)设计分数。
可以基于评估算法的线性组合来计算设计分数。应用于每个算法的设计分数的计算可以包括计算新的设计分数,或者重新计算或调整现有的计算设计分数。这些评估器的每个的结果可以线性组合成加权分数,并且基于具有最低分数的候选界面设计106生成最终用户界面104。在一些实施方式中,权重可以基于实验手动设置。
搜索设计空间
为了发现理想的最终用户界面104,可以进行设计树122的穷举搜索。另外地或替代地,自动设计界面114可以利用蒙特卡罗树搜索(MCTS)来确定候选界面设计106。在遍历主题技术的设计树122时使用MCTS的一些益处包括:
·设计树122可以递增地构建,因此不需要树(可能非常大)被完全实例化。
·可以根据策略不对称地探索设计树122,该策略对树的未知区域的探索与利用已知的良好分支进行平衡。
·可以不必评估树中的中间状态的值,并且可以仅确定终点状态的值。这可以对应于评估候选用户界面106,如上所述。许多优化和进行游戏的算法可能需要评估中间状态,这可能对应于评估未完成的用户界面设计的任务。
·算法可能不需要域知识,并且在默认情况下,当MCTS没有任何信息来指导其下一个选择时,MCTS可以随机地选择。可以通过基于先前搜索提供关于哪些动作可能更有成效的信息来改进算法。
在树太大而不能完全实例化的实例中(例如,由于存储器约束),遍历算法可以实施MCTS方法的增量属性。在这样的实施方式中,设计树的部分可以在搜索期间被探索时被构造。
MCTS的基本实施方式可能包括以下步骤:
·选择:从根开始,可以递归地应用选择策略以遍历策略认为与下一个扩展最相关的节点。这可称为最紧急的可扩展节点。
·扩展:可以从可用动作中选择一个动作,从而产生扩展树的子节点。
·模拟:可以应用模拟策略以递归方式向下树继续,直到到达终点节点。可以评估所得到的界面以产生设计分数。
·反向传播:分数可以通过遍历的节点传播回(或“备份”)以更新其统计信息,这可能会影响选择策略的未来选择。
树的上限置信区间方法(UCT)可以用作选择策略。关于这点,可以忽略已经访问过的节点以支持探索新节点。模拟策略可以包括跨所有可用操作的随机采样,或者对从其他规范的先前搜索结果中学习的所有可用动作的加权采样。后一种方法根据在先前搜索中被发现有益的动作来偏向模拟策略。
在一些实施方式中,对于每次遍历,可以保存整个遍历的结果和完成的候选用户界面设计106,而不仅仅是遍历算法的选择策略选择扩展的节点。在一些实施方式中,跟踪已经完整地探索的子树,并且遍历算法不允许进一步遍历这些子树。可以跟踪并且返回在所有遍历中找到的最佳整体界面设计作为输出。
规范116可以用可选的偏好部分来增强,允许设计者指定给定上下文的优选动作。例如,设计者可以表达所有布尔状态应该被渲染为单选按钮而不是复选框的偏好。在模拟期间,与其他动作相比,优选动作可以收到增加的权重,使得在统计上很可能在其对等体当中首先探索优选动作。如果偏好得到良好(低)评分界面,则MCTS可能继续探索包括此偏好的替代方案。仍然有机会找到更好的选择,在这种情况下,可以忽略偏好。另外地或替代地,在合并偏好时,候选界面设计可以收到对其分数略微加分(bonus)。可以包括该加分以添加阈值,替代设计必须提供超过阈值的优势,以便忽略偏好。
图4描绘了由主题技术的示例设计者界面102创建的最终用户界面104的示例。图4A描绘了打印机对话框,图4B描绘了课堂演示,图4C描绘了音乐应用,以及图4D描绘了照片共享应用。通过随机地生成规范116来创建示例界面,使用设计者界面102从该规范116中确定多个候选用户界面设计106,然后基于为每个候选界面设计106生成的设计分数来选择所描绘的界面。
图5描绘了根据主题技术的各方面的用于基于候选用户界面设计自动生成最终用户界面的第二示例处理。出于解释的目的,本文参考图1至图3以及本文描述的组件和/或处理描述示例处理400的各种块。处理500的一个或多个块可以例如由计算设备108实现,计算设备108包括处理器和设备108使用的其他组件。在一些实施方式中,一个或多个块可以与其他块分开并且由一个或多个不同的处理器或设备实施。进一步出于解释的目的,示例处理500的块被描述为串行或线性发生。然而,示例处理500的多个块可以并行发生。另外,示例处理500的块不需要以所示顺序执行和/或不需要执行示例处理500的一个或多个块。
在所描绘的示例流程图中,对于要生成的用户界面,自动设计界面114接收多个功能和描述多个功能如何彼此相关的关系信息(502)。可以以组的层级结构的形式接收关系信息,每个组包括状态变量、命令和文本信息中的一个或多个。
自动设计界面114基于多个功能和关系信息生成设计动作的树122(例如,自动地)(504)。树的每个中间节点可以表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作。
设计树122的每个节点等级可以代表不同类型的设计动作。相应节点等级的每个节点可以对树122的不同遍历路径执行相同或相似类型的设计动作。出于解释的目的,在第一节点等级和第二节点等级处分别地讨论关于第一节点或第二节点的设计动作。然而,第二节点等级不需要是来自第一节点的后续节点,或者直接位于第一节点之下或之上的节点等级。
根据各种实施方式,树的第一节点等级处的第一节点的分支306可以对应于用于将组的层级结构的第一组合并到组的层级结构的第二组中的不同设计动作。树的第二节点等级处的第二节点的分支对应于用于多个功能的相应功能的不同小部件类型。在该示例中,自动设计界面114可以基于对与选择的小部件类型相对应的第二节点的分支的遍历来选择不同小部件类型的所选择的小部件类型,并且对应于小部件类型的分支位于选择的候选用户界面设计的遍历路径中时,将选择的小部件类型的小部件放置到为相应功能生成的用户界面中。
树的第二节点等级的第二节点的分支306对应于用户界面的面板的不同页面布局,页面布局包括网格布局和列表样式布局。关于这点,自动设计界面114可以基于对应于选择的页面布局的第二节点的分支的遍历来选择不同页面布局的所选择的页面布局。
树的第二节点等级的第二节点的分支对应于用户界面的面板的不同分隔符。关于这点,自动设计界面114可以标识要在用户界面的面板上显示的项目的不同子组,并且基于对应于选择的分隔符的第二节点的分支的遍历为所标识的不同子组选择不同分隔符的所选择的分隔符。根据各种实施方式,基于所选择的分隔符,将所标识的不同子组中的两个或更多个彼此分隔。
树的第二节点等级的第二节点的分支可以对应于用户界面的预定导航类型。关于这点,自动设计界面114可以基于对应于选择的导航类型的第二节点的分支的遍历来为用户界面选择预定导航类型的所选择的导航类型。可以从包括顶级导航标签和顶级导航转盘的多个预定顶级导航类型中选择所选择的导航类型。
自动设计界面114通过沿着遍历路径自动地遍历树122来确定(例如,自动地)实施所接收的多个功能的候选用户界面设计106(506)。遍历路径可以从树的根节点到树的叶节点,并且沿着遍历路径执行分支表示的相应设计动作。在遍历期间,可以基于与节点相关联的分数来选择沿着遍历路径的分支。关于这点,自动设计界面114可以对相应中间节点确定聚合分数,该聚合分数聚合使用包括相应中间节点的相应遍历路径确定的候选用户界面设计的设计分数。当遍历树122时,基于与多个分支中的每个分支相关联的每个节点的相应聚合分数,从多个分支306中选择沿着遍历路径的分支。另外地或者替代地,自动设计界面114可以确定中间节点,对于该中间节点已经探索了中间节点的所有分支,并且从未来的遍历路径中排除该中间节点。
自动设计界面114计算(例如,自动地)每个候选用户界面设计106的设计分数(508)。设计分数可以基于使用预定算法的候选用户界面设计的评估。根据各种实施方式,预定评估算法包括一组评估算法中的一个或多个。例如,第一评估算法可以基于由相应候选用户界面设计实施的多个功能和关系信息的量来计算设计分数。第二评估算法可以标识相应的候选用户界面设计是否包括没有在所接收的多个功能和关系信息中的默认信息,并且在标识默认信息时减少计算的设计分数。
第三评估算法可以基于在相应候选用户界面设计中实施的屏幕的量来计算设计分数。第四评估算法可以基于在相应候选用户界面设计中实施的屏幕的高宽比来计算设计分数。第五评估算法可以基于相应候选用户界面设计中的未使用屏幕空间来计算设计分数。第六评估算法可以标识相应候选用户界面设计是否包括一个或多个屏幕的水平滚动,并且如果标识水平滚动则减少计算的设计分数。第七评估算法可以基于接收的多个功能和关系信息以及发起和完成任务所需的用户交互的数量来标识任务,并且基于所标识的用户交互的数量来计算设计分数。第八评估算法可以确定基于相同的用户交互输入做出的不同决策的计数,并且基于所确定的计数减少计算的设计分数。另外,第九评估算法可以基于所接收的多个功能和关系信息来标识任务,并且在相应候选用户界面设计的屏幕中识别与任务相关联的目标,确定用户移动到目标并且选择目标的估计时间量,并且根据估计的时间量调整设计分数。
根据各种实施方式,预定评估算法可以包括前述评估算法的任何组合(例如,两个或更多个)。另外地或替代地,可以基于评估算法的线性组合来计算相应候选用户界面设计的设计分数。
(例如,自动地)重复确定和计算步骤以生成多个候选用户界面设计和相对应的多个设计分数(510)。这些步骤可以重复预定次数,或者直到多个设计分数中的至少一个满足阈值设计分数。
然后,自动设计界面114基于多个设计分数从多个完成界面设计106中选择(例如,自动地)所选择的完成界面设计(512),并且基于所选择的候选用户界面设计生成用户界面(514)。
许多上述示例500以及相关特征和应用也可以被实施为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件处理,并且可以自动地执行(例如,无需用户干预)。当这些指令由一个或多个处理单元(例如,一个或多个处理器、处理器核心或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括通过无线或有线连接传递的载波和电子信号。
术语“软件”意味着在适当时包括驻留在只读存储器中的固件或存储在磁存储器中的应用程序,其可以被读入存储器以供处理器处理。此外,在一些实施方式中,本主题公开的多个软件方面可以实施为较大程序的子部分,同时保留本主题公开的不同软件方面。在一些实施方式中,多个软件方面也可以实施为单独的程序。最后,一起实现本文描述的软件方面的单独程序的任何组合都在本主题公开的范围内。在一些实施方式中,当安装以在一个或多个电子系统上操作时,软件程序定义执行软件程序的操作的一个或多个特定机器实现。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,声明或程序语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在文件的一部分中,该文件保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
图6是示出根据本主题技术的一个或多个方面的用于基于候选用户界面设计自动生成最终用户界面的示例电子系统600的示图。电子系统600可以是用于执行与处理600的一个或多个部分或步骤相关联的软件或者由图1至图3提供的组件和处理的计算设备。电子系统600可以结合关于图1至图5的公开内容表示计算设备108或计算设备202。关于这点,电子系统600或计算设备108或202可以是个人计算机或移动设备,诸如智能电话、平板型计算机、膝上型计算机、PDA、增强现实设备、可穿戴设备(诸如手表或带或眼镜)或其组合,或具有其中嵌入或耦合到其中的一个或多个处理器的其他触摸屏或电视,或具有网络连接的任何其他种类的计算机相关电子设备。
电子系统600可以包括各种类型的计算机可读介质和用于各种其他类型的计算机可读介质的接口。在所描绘的示例中,电子系统600包括总线608、处理单元612、系统存储器604、只读存储器(ROM)610、永久存储设备602、输入设备接口614、输出设备接口606以及一个或多个网络接口616。在一些实施方式中,电子系统600可以包括其他计算设备或电路,或者与其他计算设备或电路集成,用于操作先前描述的各种组件和处理。
总线608共同表示通信地连接电子系统600的众多内部设备的所有系统、外围设备和芯片组总线。例如,总线608将处理单元612与ROM 610、系统存储器504和永久存储设备602通信地连接。
从这些各种存储器单元,处理单元612检索要执行的指令和要处理的数据,以便执行本主题公开的处理。处理单元可以是不同实施方式中的单个处理器或多核处理器。
ROM 610存储处理单元612和电子系统的其他模块所需的静态数据和指令。另一方面,永久存储设备602是读写存储设备。该设备是即使在电子系统600关闭时也存储指令和数据的非易失性存储器单元。本主题公开的一些实施方式使用大容量存储设备(诸如磁盘或光盘及其相应的磁盘驱动器)作为永久存储设备502。
其他实施方式使用可移动存储设备(诸如软盘、闪存驱动器及其相应的盘驱动器)作为永久存储设备602。与永久存储设备602类似,系统存储器604是读写存储器设备。然而,与存储设备602不同,系统存储器604是易失性读写存储器,诸如随机存取存储器。系统存储器604存储处理器在运行时需要的一些指令和数据。在一些实施方式中,本主题公开的处理存储在系统存储器604、永久存储设备602和/或ROM 610中。从这些各种存储器单元,处理单元612检索要执行的指令和要处理的数据,以执行一些实施方式的处理。
总线608还连接到输入和输出设备接口614和606。输入设备接口614使用户能够向电子系统传送信息和选择命令。与输入设备接口614一起使用的输入设备包括例如字母数字键盘和指示设备(也称为“光标控制设备”)。输出设备接口606使得例如显示由电子系统600生成的图像。与输出设备接口606一起使用的输出设备包括例如打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施方式包括诸如触摸屏的设备,其用作输入和输出设备两者。
最后,如图6所示,总线608还通过网络接口616将电子系统600耦合到网络(未示出)。网络接口616可以包括例如无线接入点(例如,蓝牙或WiFi)或用于连接到无线接入点的无线电电路。网络接口616还可以包括用于将计算机连接到计算机网络(诸如局域网(“LAN”),广域网(“WAN”),无线LAN或内联网)的一部分或多个网络的一个网络(诸如互联网)的硬件(例如,以太网硬件)。电子系统500的任何组件或所有组件可以与本公开一起使用。
上述这些功能可以在计算机软件、固件或硬件中实施。可以使用一个或多个计算机程序产品来实施这些技术。可编程处理器和计算机可以包括在移动设备中或作为移动设备打包。处理和逻辑流可以由一个或多个可编程处理器和一个或多个可编程逻辑电路执行。通用和专用计算设备和存储设备可以通过通信网络互连。
一些实施方式包括电子组件,诸如微处理器,将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质,机器可读介质或机器可读存储介质)中的存储设备和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM,DVD-RW,DVD+RW等)、闪存(例如,SD卡,mini-SD卡,micro-SD卡等),磁性和/或固态硬盘驱动器、只读和可记录光盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机,电子组件或微处理器使用解释器执行的更高级代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施方式由一个或多个集成电路执行,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方式中,这种集成电路执行存储在电路自身上的指令。
如在本说明书和本申请的任何权利要求中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”均指电子或其他技术设备。这些术语不包括人或人群。出于说明书的目的,术语显示或显示着意味着显示在电子设备上。如在本说明书和本申请的任何权利要求中所使用的,术语“计算机可读介质”和“计算机可读介质”完全限于以计算机可读的形式存储信息的有形物理对象。这些术语不排除任何无线信号、有线下载信号和任何其他短暂信号。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户可以通过它们向计算机提供输入的键盘以及指示设备(例如,鼠标或跟踪球)的计算机上实施。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学,语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求将网页发送到用户的客户端设备上的web浏览器。
本说明书中描述的主题的实施例可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可通过图形用户界面或Web浏览器与本说明书中描述的主题的实现进行交互),或者包括一个或多个这样的后端,中间件或前端组件的任何组合的计算系统中实施。系统的组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),网络间(例如,互联网)和对等网络(例如,自组对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
本领域的技术人员将了解,本文中所描述的各种说明性块、模块、元件、组件、方法和算法可以实施为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上面已经在功能方面对各种说明性的块、模块、元件、组件、方法和算法进行了总体描述。将此功能性实现为硬件还是软件依赖于特定应用和强加于整个系统的设计约束。技术人员可以针对每个特定应用以不同方式实施所描述的功能。在不脱离本主题技术的范围的情况下,各种组件和块可以不同地布置(例如,以不同的顺序布置,或以不同的方式划分)。
要理解的是,所公开的处理中的步骤的特定顺序或层级结构是示例性方法的说明。基于设计偏好,应当理解,可以重新排列处理中的步骤的特定顺序或层级结构。一些步骤可以同时进行。所附方法权利要求以样本顺序呈现各个步骤的要素,并不意味着限于所呈现的特定顺序或层级结构。
提供先前的描述是为了使所属领域的技术人员能够实践本文中所描述的各种方面。前面的描述提供了主题技术的各种示例,并且主题技术不限于这些示例。对于本领域技术人员来说,对这些方面的各种修改是显而易见的,并且本文定义的一般原理可以应用于其他方面。因此,权利要求不旨在限于本文所示的方面,而是应符合与语言声明一致的全部范围,其中对单数元素的引用并非旨在表示“一个和仅一个”,而是“一个或多个”,除非具体如此陈述。除非另外特别说明,否则术语“一些”是指一个或多个男性中的代词(例如,他的)包括女性和中性(例如,她和它),反之亦然。标题和副标题(如果有的话)仅用于方便,并不限制本发明。
如本文所使用的术语网站可以包括网站的任何方面,包括一个或多个网页,用于托管或存储网络相关内容的一个或多个服务器等。因此,术语网站可以与术语网页和服务器互换使用。谓词“被配置为”,“可操作地”和“被编程为”并不意味着对象的任何特定的有形或无形修改,而是旨在可互换地使用。例如,被配置为监视和控制操作或组件的处理器还可以意味着处理器被编程为监视和控制操作,或者处理器可操作以监视和控制操作。同样地,被配置为执行代码的处理器可以被解释为被编程为执行代码或可操作以执行代码的处理器。
本文使用的术语自动可以包括计算机或机器的性能而无需用户干预;例如,通过响应计算机或机器或其他启动机制的谓词动作的指令。本文使用的词语“示例”意味着“用作示例或说明”。本文中描述为“示例”的任何方面或设计不必被解释为比其他方面或设计更优选或更具优势。
诸如“方面”的短语并不暗示这样的方面对于主题技术是必不可少的,或者这样的方面适用于主题技术的所有配置。与一方面有关的公开内容可适用于所有配置或一个或多个配置。一方面可提供一个或多个示例。诸如方面的短语可以指代一个或多个方面,反之亦然。诸如“实施例”的短语并不暗示这样的实施例对于主题技术是必不可少的,或者这样的实施例适用于主题技术的所有配置。涉及实施例的公开可以适用于所有实施例或一个或多个实施例。实施例可以提供一个或多个示例。诸如“实施例”的短语可以指代一个或多个实施例,反之亦然。诸如“配置”的短语并不暗示这样的配置对于主题技术是必不可少的,或者这样的配置适用于主题技术的所有配置。与配置有关的公开内容可以适用于所有配置或一个或多个配置。配置可以提供一个或多个示例。诸如“配置”的短语可以指代一个或多个配置,反之亦然。
本领域普通技术人员已知或以后将为本领域普通技术人员所知的各个方面的元件的所有结构和功能等同物通过引用明确地并入本文,并且旨在被权利要求包含。此外,无论在权利要求中是否明确地叙述了这样的公开内容,本文所公开的内容都不旨在致力于公众。任何权利要求要素均不得根据35U.S.C.§112第六段的规定解释,除非使用短语“用于…的装置”明确叙述该要素,或者在方法权利要求的情况下,使用短语“用于…的步骤”来叙述该要素。此外,在说明书或权利要求书中使用术语“包括”,“具有”等的范围内,该术语旨在以类似于术语“包括”的方式包括在内,因为当用作权利要求中的过渡词时解释“包括”。
Claims (19)
1.一种用于自动化用户界面设计的方法,包括:
基于用于生成图形用户界面的设计规范来在计算机存储器中生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作,其中,树的不同节点等级的节点的每个分支对应于不同类型的设计动作,其中,设计规范包括多个功能,并且其中,树的第一节点等级的第一节点的分支对应于多个功能的相应功能的不同小部件类型,
通过沿着从树的根节点到树的相应叶节点的多个遍历路径自动地遍历设计动作树并且沿着遍历路径执行分支表示的相应设计动作,自动地确定多个候选用户界面设计,每个候选用户界面设计实施设计规范;
标识多个候选界面设计中的所选择的候选界面设计;
基于标识的所选择的候选用户界面设计生成图形用户界面;以及
基于对与所选择的小部件类型相对应的第一节点的分支的遍历来选择不同小部件类型的所选择的小部件类型;以及
当与小部件类型相对应的分支在所选择的候选用户界面设计的遍历路径中时,将所选择的小部件类型的小部件放置到生成的用于相应功能的图形用户界面中。
2.根据权利要求1所述的方法,还包括:通过沿着从树的根节点到树的相应叶节点的相应遍历路径遍历树并且沿着遍历路径执行分支表示的相应设计动作,确定实施设计规范的相应候选用户界面设计;
基于对相应候选用户界面设计的评估自动地计算相应候选用户界面设计的设计分数;
自动地重复确定和计算步骤以生成多个候选用户界面设计和相对应的多个设计分数;以及
基于多个设计分数来从多个候选界面设计中自动地选择所选择的候选界面设计。
3.根据权利要求2所述的方法,还包括:
为相应中间节点确定聚合分数,所述聚合分数聚合使用包括相应中间节点的相应遍历路径确定的候选用户界面设计的设计分数,
其中,当遍历树时,基于与多个分支中的每个分支相关联的每个节点的相应聚合分数从多个分支中选择沿着遍历路径的分支。
4.根据权利要求2所述的方法,还包括:
确定中间节点,对于所述中间节点已经探索了所述中间节点的所有分支;以及
从未来遍历路径中排除所述中间节点。
5.根据权利要求2所述的方法,其中,设计规范经由设计界面来接收并且包括组的层级结构,每个组包括状态变量、命令和文本信息中的一个或多个。
6.根据权利要求5所述的方法,其中,树的第二节点等级的第二节点的分支对应于用于将组的层级结构的第一组合并到组的层级结构的第二组中的不同设计动作。
7.根据权利要求1所述的方法,其中,树的第二节点等级的第二节点的分支与图形用户界面的面板的不同页面布局相对应,页面布局包括网格布局和列表样式布局,所述方法还包括:
基于对与所选择的页面布局相对应的第二节点的分支的遍历来选择不同页面布局的所选择的页面布局。
8.根据权利要求1所述的方法,其中,树的第二节点等级的第二节点的分支与图形用户界面的面板的不同分隔符相对应,所述方法还包括:
标识要在图形用户界面的面板上显示的项目的不同子组;以及
基于对与所选择的分隔符相对应的第二节点的分支的遍历,为所标识的不同子组选择不同分隔符的所选择的分隔符,所标识的不同子组中的两个或更多个基于所选择的分隔符彼此分隔。
9.根据权利要求1所述的方法,其中,树的第二节点等级的第二节点的分支与图形用户界面的预定导航类型相对应,所述方法还包括:
基于对与所选择的导航类型相对应的第二节点的分支的遍历,选择图形用户界面的预定导航类型的所选择的导航类型。
10.根据权利要求9所述的方法,其中,从包括顶级导航标签和顶级导航转盘的多个预定顶级导航类型中选择所选择的导航类型。
11.根据权利要求2所述的方法,其中,所述确定和计算被重复预定迭代次数,或者直到多个设计分数中的至少一个满足阈值设计分数。
12.根据权利要求2所述的方法,其中,基于预定评估算法组中的一个或多个来计算设计分数,所述预定评估算法组包括:
第一评估算法,基于由相应候选用户界面设计实施的设计规范内的设计信息的量来计算设计分数;或
第二评估算法,标识相应候选用户界面设计是否包括不在设计规范中的默认信息,并且当标识默认信息时减少计算的设计分数;或
第三评估算法,基于在相应候选用户界面设计中实施的屏幕的量来计算设计分数;或
第四评估算法,基于在相应候选用户界面设计中实施的屏幕的高宽比来计算设计分数;或
第五评估算法,基于在相应候选用户界面设计中的未使用屏幕空间来计算设计分数;或
第六评估算法,标识相应候选用户界面设计是否包括一个或多个屏幕的水平滚动,并且如果标识水平滚动,则减少计算的设计分数;或
第七评估算法,基于设计规范以及发起和完成任务所需的用户交互的数量来标识任务,并且基于用户交互的数量来计算设计分数;或
第八评估算法,确定基于相同的用户交互输入做出的不同决策的计数,并且基于所确定的计数减少计算的设计分数;或
第九评估算法,基于设计规范来标识任务,并且在相应候选用户界面设计的屏幕中标识与任务相关联的目标,并且确定用户移动到目标和选择目标的估计的时间的量,以及根据所述时间的量调整设计分数。
13.根据权利要求12所述的方法,其中,使用预定评估算法组中的两个或更多个来计算设计分数,并且其中,基于预定评估算法组中的两个或更多个的线性组合来计算相应候选用户界面设计的设计分数。
14.一种用于自动化用户界面设计的系统,包括:
一个或多个处理器;以及
存储器,包括存储在其上的指令,所述指令在被所述一个或多个处理器执行时,使所述一个或多个处理器执行操作,包括:
基于用于生成图形用户界面的设计规范来生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作,其中,树的不同节点等级的节点的每个分支对应于不同类型的设计动作,其中,设计规范包括多个功能,并且其中,树的第一节点等级的第一节点的分支对应于多个功能的相应功能的不同小部件类型,
通过沿着从树的根节点到树的叶节点的遍历路径自动地遍历树并且沿着遍历路径执行分支表示的相应设计动作,自动地确定实施设计规范的候选用户界面设计;
基于候选用户界面设计的评估来计算候选用户界面设计的设计分数;
重复确定和计算以生成多个候选用户界面设计和相对应的多个设计分数;
基于多个设计分数来从多个候选界面设计接收所选择的候选界面设计的指示;
基于所选择的候选用户界面设计生成图形用户界面,以及
基于对与所选择的小部件类型相对应的第一节点的分支的遍历来选择不同小部件类型的所选择的小部件类型;以及
当与小部件类型相对应的分支在所选择的候选用户界面设计的遍历路径中时,将所选择的小部件类型的小部件放置到生成的用于相应功能的图形用户界面中。
15.根据权利要求14所述的系统,其中,所述确定和计算操作被重复预定迭代次数,或者直到多个设计分数中的至少一个满足阈值设计分数。
16.根据权利要求14所述的系统,其中,所述操作还包括:
为相应中间节点确定聚合分数,所述聚合分数聚合使用包括相应中间节点的相应遍历路径确定的候选用户界面设计的设计分数,
其中,当遍历树时,基于与多个分支中的每个分支相关联的每个节点的相应聚合分数从多个分支中选择沿着遍历路径的分支。
17.根据权利要求14所述的系统,其中,所述操作还包括:
确定中间节点,对于所述中间节点已经探索了所述中间节点的所有分支;以及
从未来遍历路径中排除所述中间节点。
18.根据权利要求14所述的系统,其中,设计规范经由设计界面来接收并且包括组的层级结构,每个组包括状态变量、命令和文本信息中的一个或多个。
19.一种非暂时性计算机可读介质,具有存储在其上的指令,所述指令在被执行时使计算设备执行方法,包括:
基于用于生成图形用户界面的设计规范来生成设计动作树,树的每个中间节点表示部分用户界面设计,并且树的每个分支表示创建或修改部分用户界面设计的设计动作;
通过沿着从树的根节点到树的叶节点的遍历路径自动地遍历树并且沿着遍历路径执行分支表示的相应设计动作,在没有用户干预的情况下自动地确定实施设计规范的候选用户界面设计,其中,树的不同节点等级的节点的每个分支对应于不同类型的设计动作,其中,设计规范包括多个功能,并且其中,树的第一节点等级的第一节点的分支对应于多个功能的相应功能的不同小部件类型,
基于候选用户界面设计的评估来自动地计算候选用户界面设计的设计分数;
重复确定和计算步骤预定迭代次数以生成多个候选用户界面设计和相对应的多个设计分数;
基于多个设计分数来标识多个候选界面设计中的所选择的候选界面设计;以及
基于标识的所选择的候选用户界面设计生成图形用户界面,
基于对与所选择的小部件类型相对应的第一节点的分支的遍历来选择不同小部件类型的所选择的小部件类型;以及
当与小部件类型相对应的分支在所选择的候选用户界面设计的遍历路径中时,将所选择的小部件类型的小部件放置到生成的用于相应功能的图形用户界面中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/464,279 | 2017-03-20 | ||
US15/464,279 US10168998B2 (en) | 2017-03-20 | 2017-03-20 | Automated interface design |
PCT/US2017/055428 WO2018174942A1 (en) | 2017-03-20 | 2017-10-05 | Automated interface design |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110462583A CN110462583A (zh) | 2019-11-15 |
CN110462583B true CN110462583B (zh) | 2022-04-26 |
Family
ID=60164826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780088773.1A Active CN110462583B (zh) | 2017-03-20 | 2017-10-05 | 自动化界面设计 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10168998B2 (zh) |
EP (1) | EP3580653B1 (zh) |
CN (1) | CN110462583B (zh) |
DE (1) | DE202017106504U1 (zh) |
WO (1) | WO2018174942A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451486B (zh) * | 2017-06-30 | 2021-05-18 | 华为技术有限公司 | 一种文件系统的权限设置方法及装置 |
CN109165050B (zh) * | 2018-07-05 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 程序的运行方法、装置、计算设备以及存储介质 |
US11074053B2 (en) * | 2018-09-07 | 2021-07-27 | Boyd Cannon Multerer | User interface generation system |
US10949174B2 (en) * | 2018-10-31 | 2021-03-16 | Salesforce.Com, Inc. | Automatic classification of user interface elements |
CN112015405B (zh) * | 2019-05-29 | 2022-06-21 | 腾讯数码(天津)有限公司 | 界面布局文件的生成方法、界面生成方法、装置及设备 |
US10929110B2 (en) | 2019-06-15 | 2021-02-23 | International Business Machines Corporation | AI-assisted UX design evaluation |
US11645047B2 (en) * | 2019-09-13 | 2023-05-09 | Axure Software Solutions, Inc. | Focused specification generation for interactive designs |
KR20210035057A (ko) * | 2019-09-21 | 2021-03-31 | 삼성전자주식회사 | 전자 장치를 위한 동적 사용자 인터페이스 레이아웃 생성 방법 및 시스템 |
US11392585B2 (en) * | 2019-09-26 | 2022-07-19 | Palantir Technologies Inc. | Functions for path traversals from seed input to output |
US11392484B2 (en) * | 2019-10-31 | 2022-07-19 | Express Scripts Strategie Development, Inc. | Method and system for programmatically testing user interface paths |
CN110837726B (zh) * | 2019-11-15 | 2023-04-25 | 深圳市乐宜科技有限公司 | 生成成语游戏关卡的方法 |
CN111061477A (zh) * | 2019-11-19 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种基于spss应用程序的菜单生成方法、装置、设备及介质 |
US11537363B2 (en) * | 2020-01-31 | 2022-12-27 | Salesforce.Com, Inc. | User interface migration using intermediate user interfaces |
CN111459485B (zh) * | 2020-04-01 | 2023-09-19 | 中国银行股份有限公司 | 交易界面的评估方法及装置 |
US11762531B2 (en) | 2020-10-28 | 2023-09-19 | Axure Software Solutions, Inc. | Stateful widget container management for interactive designs |
CN113703645A (zh) * | 2021-03-30 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 图数据处理方法、装置、设备及存储介质 |
CN112799669B (zh) * | 2021-04-06 | 2021-07-06 | 武汉元光科技有限公司 | 应用程序界面布局代码的生成方法、装置及电子设备 |
CN114816409B (zh) * | 2022-06-27 | 2022-10-04 | 北京尽微致广信息技术有限公司 | 界面生成方法、装置以及存储介质 |
CN116039956B (zh) * | 2022-11-02 | 2023-11-14 | 哈尔滨工业大学 | 一种基于蒙特卡洛树搜索的航天器序列博弈方法、装置及介质 |
CN117094530B (zh) * | 2023-10-16 | 2024-02-20 | 国网浙江省电力有限公司金华供电公司 | 电网供应链指标体系管控方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001044933A2 (en) * | 1999-12-15 | 2001-06-21 | Sun Microsystems, Inc. | System and method for creating a graphical user interface from a filter expression tree |
CN106471496A (zh) * | 2014-06-26 | 2017-03-01 | 微软技术许可有限责任公司 | 在搜索中从查询重新表达中识别意图 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5041992A (en) * | 1988-10-24 | 1991-08-20 | University Of Pittsburgh | Interactive method of developing software interfaces |
US5956737A (en) | 1996-09-09 | 1999-09-21 | Design Intelligence, Inc. | Design engine for fitting content to a medium |
US7546577B2 (en) * | 1999-12-06 | 2009-06-09 | Axiomatic Design Software, Inc. | Method and apparatus for producing software |
US8091036B1 (en) * | 2006-04-27 | 2012-01-03 | Oracle America, Inc. | GUI builder tool for designing cross platform layout |
US8984424B2 (en) * | 2009-02-03 | 2015-03-17 | Microsoft Technology Licensing, Llc | Layout of user interface elements |
US8121826B1 (en) * | 2009-07-17 | 2012-02-21 | Xilinx, Inc. | Graphical user interface for system design |
US8171406B1 (en) | 2009-08-19 | 2012-05-01 | Symantec Corporation | Automating user interface navigation |
US9323418B2 (en) * | 2011-04-29 | 2016-04-26 | The United States Of America As Represented By Secretary Of The Navy | Method for analyzing GUI design affordances |
-
2017
- 2017-03-20 US US15/464,279 patent/US10168998B2/en active Active
- 2017-10-05 CN CN201780088773.1A patent/CN110462583B/zh active Active
- 2017-10-05 WO PCT/US2017/055428 patent/WO2018174942A1/en unknown
- 2017-10-05 EP EP17788383.2A patent/EP3580653B1/en active Active
- 2017-10-26 DE DE202017106504.9U patent/DE202017106504U1/de active Active
-
2018
- 2018-12-19 US US16/226,512 patent/US10572227B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001044933A2 (en) * | 1999-12-15 | 2001-06-21 | Sun Microsystems, Inc. | System and method for creating a graphical user interface from a filter expression tree |
CN106471496A (zh) * | 2014-06-26 | 2017-03-01 | 微软技术许可有限责任公司 | 在搜索中从查询重新表达中识别意图 |
Also Published As
Publication number | Publication date |
---|---|
US10572227B2 (en) | 2020-02-25 |
US20180267777A1 (en) | 2018-09-20 |
CN110462583A (zh) | 2019-11-15 |
DE202017106504U1 (de) | 2018-02-27 |
US10168998B2 (en) | 2019-01-01 |
EP3580653A1 (en) | 2019-12-18 |
WO2018174942A1 (en) | 2018-09-27 |
EP3580653B1 (en) | 2023-05-17 |
US20190121617A1 (en) | 2019-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110462583B (zh) | 自动化界面设计 | |
US20200326823A1 (en) | Presentation and analysis of user interaction data | |
US11899703B2 (en) | Arrangements of documents in a document feed | |
US10290128B2 (en) | Interactive scene graph manipulation for visualization authoring | |
Gupta | Kibana essentials | |
JP2022168031A (ja) | アンケートを生成するための方法およびシステム | |
US8909653B1 (en) | Apparatus, systems and methods for interactive dissemination of knowledge | |
Wortmann | Model-based optimization for architectural design: optimizing daylight and glare in Grasshopper | |
US10282905B2 (en) | Assistive overlay for report generation | |
WO2020264053A1 (en) | System and method for employing constraint based authoring | |
CN106484389A (zh) | 动作流分段管理 | |
CN114036388A (zh) | 数据处理方法和装置、电子设备、及存储介质 | |
US20240078473A1 (en) | Systems and methods for end-to-end machine learning with automated machine learning explainable artificial intelligence | |
US20150243059A1 (en) | Systems and Methods for Graph Generation | |
US8994746B2 (en) | System and method for generating a flow based on multiple types of interactions | |
Javani et al. | Origin-destination-based truncated quadratic programming algorithm for traffic assignment problem | |
US20200409672A1 (en) | Constraint based authoring | |
Vassis et al. | Review and Evaluation of Systems Supporting Data Journalism | |
Chang | A Spreadsheet Model for Using Web Services and Creating Data-Driven Applications. | |
US20210174699A1 (en) | Systems and methods for unfolding data entry forms for bi-directional learning | |
Casalánguida et al. | User interface design for responsive web applications | |
CN115357321A (zh) | 一种图符可视化的自动生成方法和系统 | |
Yu | Design and Implementation of an Agile-SOFL GUI-Aided Tool | |
Stabell | Modeling Learning in Resource Play Asessment: An Integrated Approach for Decision Support | |
Caetano et al. | Balancing design intent and performance: an algorithmic design approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |