CN105144091B - 针对基于程序的命令行的用户界面模型生成 - Google Patents

针对基于程序的命令行的用户界面模型生成 Download PDF

Info

Publication number
CN105144091B
CN105144091B CN201480014564.9A CN201480014564A CN105144091B CN 105144091 B CN105144091 B CN 105144091B CN 201480014564 A CN201480014564 A CN 201480014564A CN 105144091 B CN105144091 B CN 105144091B
Authority
CN
China
Prior art keywords
program
model
modified
user interface
conversion
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
CN201480014564.9A
Other languages
English (en)
Other versions
CN105144091A (zh
Inventor
J·霍格
J·约瑟夫
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105144091A publication Critical patent/CN105144091A/zh
Application granted granted Critical
Publication of CN105144091B publication Critical patent/CN105144091B/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/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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
    • 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
    • G06F8/38Creation or generation of source code for implementing user interfaces

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)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及基于反映在命令行应用之类上以及解释命令行应用之类来生成中间(例如,声明性)模型,以表示默认用户界面和默认代码变换过程。中间模型是可修改的以提供经自定义的输出程序。例如,模型可被持久保存、编辑和以其他方式修改以执行管理任务。

Description

针对基于程序的命令行的用户界面模型生成
背景
命令行应用(诸如cmdlets、DOS批处理文件或SQL命令)允许用户执行来自文本命令行的功能性。为了进行有意义的执行,用户需要对应用的输入参数集合以及每个参数的值的有效范围的理解。
对于某些编程语言,反映在命令行应用上并自动生成用户界面是可能的,由此允许非命令行用户或新手通过自动生成的用户界面来执行功能性,即使最初的应用没有包括用户界面。例如,3.0包括服务于该目的的“ShowCommand(示出命令)”功能性。
然而,这样现有的反射功能性被设计成非常通用的,使得所生成的用户界面广泛应用于许多情形。因此,这个“一个大小适合于全部”的形式的用户界面生成适用于简单情形,但对许多其它情形是不够的。
概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简而言之,在此描述的主题的各方面涉及从将一个或多个输入参数和一个或多个命令作为输入的程序中生成中间模型的技术。该中间模型包括对应于默认用户界面的用户界面模板以及对应于默认变换程序的代码模板。中间模型可被维持在存储器中以允许中间模型修改成包括经修改的用户界面数据和/或经修改的代码的经修改的模型。对应于经修改的模型的经修改的程序被输出。
在一个方面,模型生成器程序被配置来将输入程序处理成包括用户界面模板和代码模板的包括声明性的中间模型。模型生成器程序持久保存该中间模型以提供用于将中间模型编辑成被配置来被解释或编译成可执行程序的经修改的模型。
在一个方面,包括对应于默认用户界面的用户界面模板以及对应于默认变换程序的代码模板的中间模型被生成。基于中间模型的经修改的模型被持久保存,其中经修改的模型包括经修改的用户界面数据、至少一个经修改的参数、一个或多个流动条件和/或未被指定在中间模型中的一个或多个规则。
结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。
附图简述
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是根据一个示例实施例的包括被配置成从输入程序生成模型以提供经修改/经自定义的输出程序的各组件的框图。
图2是根据一个示例实施例的表示将中间模型修改为经修改的模型的框图。
图3是根据一个示例实施例的表示模型的修改和导致的对应程序的执行的框图。
图4是表示可并入本文中所描述的主题的各方面的示例计算环境的框图。
详细描述
在此描述的技术的各方面一般涉及反映在命令行应用(或commandlet或模块)上以及解释命令行应用(或commandlet或模块),并接着构成用于构成用户界面模型的中间(例如,声明性)模型。在一个实现中,中间模型被生成以表示默认用户界面和默认代码变换过程。中间模型使用主要基于声明性的机制来定义。
因此,在此描述的技术生成中间模型,然后该中间模型例如通过使用显示用户界面布局管理器和代码变换过程来显示,而不是简单生成用户界面。此外,中间模型可被持久保存并被终端用户修改,因此允许经自定义的向导体验。当中间模型以声明性方式指定时,非开发者能够修改模型用户界面的默认行为,并且人们能够共享此工作。
应当理解,本文中的任何示例均是非限制的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,在此所描述的实施例、方面、概念、结构、功能或示例中的任何一个都是非限制性的,并且本发明可以按一般在计算机和管理工具中提供益处和优点的各种方式来使用。
图1示出了包括用于取得输入程序102(例如,cmdlet)并生成模型104(隐式模型)的三阶段过程的示例实现的框图,模型104随后被用作渲染例如向导116的基础。模型104可被丢弃(不被持久保存),或改为被持久保存(例如,如通过持久存储107表示的)以使得允许用户修改用户界面(UI)、确认逻辑和/或用于生成代码的代码模板。注意,UI模型可以是硬编码的或者是例如从cmdlet自动推断出的。被自动推断的模型可被编辑,例如,用于自定义,例如,如图1中模型编辑器109所表示的,其可以是用于基于文本的模型或能够被转换成文本的文本编辑器,和/或具有附加功能性的编辑器,诸如具有帮助编辑模型的特征的图形用户界面。
在这个示例中,用户执行模型生成器程序108,其作为要针对其生成UI的输入程序102(例如,cmdlet)来取得。例如,程序108可反映在例如cmdlet函数的签名、参数的数目、这些参数的类型以及它们是可选的还是强制性的上。该信息随后被模型生成器程序108用来生成默认UI模型110(例如,诸如定义文本文件中的一组页面以及它们如何彼此交互的基于可扩展应用标记语言(XAML)的表格,例如介绍页面、交互页面和错误处理页面)以及合适的输入确认逻辑。该信息还用于生成默认代码模板112,例如具有声明性形式的代码(诸如基于XAML的)。
注意,在可扩展场景中,模型生成器程序108将生成的模型呈现给用户以对单个cmdlet对照流水线或工作流作出决定。该用户输入允许组合复杂的应用执行场景。
这在图2中例示,其中模型生成器程序108输入来自源220的关于输入程序102的细节,(其可从程序本身或分开地习得),例如,什么输入程序可作为参数采用,那些参数的有效范围是什么,等等。域专长222还可被用来确定那些参数中的哪些适合给定的任务,并且,例如,用应用到任务的UI模型210调整模型生成程序108来生成隐式模型104,从而可能限制参数、参数范围、设置合适的默认值,等等。
一旦隐式模型104被生成,它可被持久保存或以其他方式被专家224或(也提供某些或全部域专长222的)人访问。以此方式,专家可进一步按需自定义并向模型104提供默认参数和流动条件/规则。
专家224可出于其他目的,例如,用翻译后的语言、不同企业名等来重新使用UI,来修改代码模板212和/或UI模型210。专家可向代码模板212添加流动条件和其它规则,如以下参考图3一般地描述的。
专家224(或甚至稍熟练的用户)也可确定是否在单个操作226中使用模型,或将其作为流水线228的一部分或其它工作流230来实现。例如,模型204可被用来向用户呈现向导以获得用户输入的值,其中用那些向导获得的值来运行程序的结果被链接(例如以串接或可能条件地选择的方式)到另一个程序(例如,输入被用于确定分支方向),接着可获得更多数据和/或执行更多处理,以此类推,以产生最终输出。
返回图1,模型解释器114可取得生成的模型104(包括UI模型110和模板112)并执行该模型104,从而将要将输入参数输入其中的向导116(例如,单个页面)等提供给终端用户。用户可扩展该模型以包括例如指南主题、示例和到知识文章的链接。
在用户完成了向导116后,变换程序118通过变换取得输入参数并将其插入到代码模板112中。这导致经修改的(例如,自定义的)程序120(例如,脚本或解释器可执行的脚本的流水线)。每一脚本可在执行之前向用户示出或被透明地执行。通过这些过程生成的制品(诸如UI向导、相关联的模型和上下文)在本文中可被统称为指南包。
一般而言并如上所述,给定模型生成器程序(例如,108)通常用域专长222来配置,域专长222允许模型生成器程序108知晓在其输入对象中寻找什么(例如,的参数和参数类型、HTML域对象模型、或DOM,形式等),使得模型生成器程序108可接着生成合适的模型。;
作为示例,考虑被设计用于web形式的模型生成器,例如用于为电子商务站点提供信用卡信息的HTML形式。模型生成器被编程以结合域专长,使得它能够识别与这个过程相关的输入控制并接着构建模型。那个模型(可设想地)可被用在其它商务站点,除了在很多情况中各形式将具有不同命名约定。因此,用户可修改模型,使得模型在不同站点改变其行为。模型解释器因此可被提供取决于谁是主机而自定义行为的能力。
作为另一个示例,考虑部署过程,其中部署产品的某人不得不向命令行界面键入大量命令来安装部署方案。这些命令的每个具有不同的可变性点,并且这些中的某些对于某个也想要执行相同动作集合(例如各步骤)的其他人将是有意义的。
在这样的实例中,模型生成器可被配置来“记录”正被执行的动作,并使用所记录的信息来生成模型,该模型使得高级用户接着来继续下去并基于对于在各步骤的每一个步骤处什么是可能的的理解来移除/自定义/添加到那些步骤成为可能。有如下的模型生成器是可行的:该模型生成器被教会了如何在一般类型问题中寻找这个专长,例如,跨多个命令行环境工作并能够推断关于这些环境的特征的模型生成器,可接着使用这些特征来支持在指定类型的命令行环境中的实现。
转到另一个方面,用户可能想要自定义UI的行为,例如,以允许一组织内的或跨一类用户的标准化向导体验。如在此描述的,这可通过编辑或类似交互来完成以向命令行应用提供经自定义的程序。此外,自定义还可被扩展以允许更多复杂执行情形,诸如其中用户可能需要执行具有一系列命令行应用的工作流。这基于命令行应用的链接,其中输入可在执行的每一步基于涉及的条件来收集。
此外,用户界面模型不需要是如向导的示例中那样顺序的。相反,隐式模型可包括内部分支逻辑(并被耦合用于来自其它模型的输入和/或到其它模型的输出)。例如,对于借记卡,用户界面可分支到另一页面或类似的,以获得用户借记卡的PIN,而对信用卡,用户界面可被分支到另一页面以获得某种形式的信用卡签名或验证数据,诸如期满日期/安全代码。用户界面模型还可被配置来从其它源自动收集数据,例如用于自动化的余额检查、信用检查批准和/或类似。
图3是简化的示例,其中模型生成器程序用为可读性而示出的经简化的模板“命令”(代替实际的例如页面呈现代码、输入代码和验证代码)来输出模型330。在任何时间,专家可修改代码模板,诸如添加分支条件,如通过框332表示的。
当框332中的代码作为Transformation program1(变换程序1)运行时,如通过框333表示的,代码将向用户呈现页面A以接收对和页面A相关联的指定参数(即Parameter7(参数7))的输入。注意,通过模型,输入参数不需要被限制在标准命令行输入,诸如单个值,而是可包括复杂参数,诸如姓名/值对(映射到文字/文本域)显示,例如,阵列、各种分类信息集合、XML结构等。
基于用户输入,在变换程序1 334的步骤340,所输入的值确定要输出的下一页面,例如对于参数7=X的页面B,对于参数7=Y的页面C,或对于参数7等于X或Y以外其它值而言没有进一步的页面,例如默认值被用于输出。
如果页面B在步骤342输出,这个页面收集参数Q的值。如果进而页面C在步骤344输出,这个页面收集不同参数R的值。
在图3的示例中,变换程序1 334被链接到(将其结果输出到)变换程序2 346,变换程序2将该输出作为其输入来消费。因此,在这个简化的示例中,变换程序2 346用参数Q的值加上任何其它参数的默认值,或用参数R的值加上任何其它参数的默认值,或用全部默认值来执行。可以看出,最初模型可被修改以包括其它代码,包括分支逻辑等等,并且经修改的模型可被耦合到(例如,链接到)一个或多个其它模型。注意,模型可选择性地在工作流等等中的其它模型之间基于其输出来分支(例如,经由本身可以是一个模型的干预逻辑),而不是串接链接或流水线。因此,专家可在模型内构建一个或多个执行路径,并以直接的方式将那个模型耦合到其它现有或经修改的模型。
可以看出,在此描述的该技术(例如加工)移除通常伴随管理工具的典型约束(例如,没有深入了解执行逻辑的硬编码向导)。分支逻辑、不同用户界面等允许使用参数不同组合以执行不同功能性。同样,输入参数可具有不容易通过常规命令行反射推断的复杂相互依赖性。
此外,该技术在具有更多置信度的情况下编译复杂应用,以及移除麻烦/复杂问题中有帮助。例如,命令行应用的用户通常从期望的命令的显式调用获得具有合适的帮助参数(-帮助选项或“?”)的向导帮助。这对于其中用户需要向导、样本脚本/片段、和/或沿着这条路的知识文章的复杂命令行应用(包括,例如,在沙箱中执行应用并看结果的选项)而言是麻烦的。此技术帮助向命令执行流水线中注入合适的向导并因此帮助终端用户在具有置信度的情况下执行代码。
示例性操作环境
图4示出了例如实现图1-3中的任何一个的实现所在的合适计算和联网环境400的示例。计算系统环境400只是合适的计算环境的一个示例,而非意在暗示对本发明的使用或功能性范围有任何限制。也不应该将计算环境400解释为对示例操作环境400中示出的任一组件或其组合有任何依赖性或要求。
本发明可用众多其他通用或专用计算系统环境或配置来操作。适用于本发明的公知计算系统、环境、和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可被实践在分布式计算环境中,分布式计算环境中任务是由通过通信网络链接的远程处理设备执行的。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图4,用于实现本发明的各方面的示例系统可包括计算机410形式的通用计算设备。计算机410的组件可以包括但不限于:处理单元420、系统存储器430和将包括系统存储器在内的各种系统组件耦合至处理单元420的系统总线421。系统总线421可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机410通常包括各种计算机可读介质。计算机可读介质可以是能由计算机410访问的任何可用介质,并包含易失性和非易失性介质以及可移动和不可移动介质两者。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或可以用来存储所需信息并可以被计算机410访问的任何其他介质。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语已调制数据信号摂是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也包括在计算机可读介质的范围内。
系统存储器430包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)431和随机存取存储器(RAM)432。包含诸如在启动期间帮助在计算机410内的元件之间传输信息的基本例程的基本输入/输出系统433(BIOS)通常存储在ROM 431中。RAM432通常包含处理单元420可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图4示出了操作系统434、应用程序435、其他程序模块436和程序数据437。
计算机410也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器441,从可移动、非易失性磁盘451中读取或向其写入的磁盘驱动器452,以及从诸如CD ROM或其他光学介质等可移动、非易失性光盘455中读取或向其写入的光盘驱动器456。可以在该示例操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器441通常通过诸如接口440之类的不可移动存储器接口连接到系统总线421,并且磁盘驱动器451和光盘驱动器455通常通过诸如接口450之类的可移动存储器接口连接到系统总线421。
以上描述并在图4中示出的驱动器及其相关联的计算机存储介质为计算机410提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图4中,硬盘驱动器441被示为存储操作系统444、应用程序445、其他程序模块446和程序数据447。注意,这些组件可与操作系统434、应用程序435、其它程序模块436和程序数据437相同,也可与它们不同。操作系统444、应用程序445、其他程序模块446和程序数据447在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。用户可通过诸如平板或者电子数字化仪464、话筒463、键盘462和定点设备461(通常指的是鼠标、跟踪球或触摸垫)等输入设备向计算机410输入命令和信息。图4中未示出的其他输入设备可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其它输入设备通常通过耦合到系统总线的用户输入接口460连接到处理单元420,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构来连接。监视器491或其他类型的显示设备也经由诸如视频接口490之类的接口连接至系统总线421。监视器491也可以与触摸屏面板等集成。注意到监视器和/或触摸屏面板可以在物理上耦合至其中包括计算设备410的外壳,诸如在平板型个人计算机中。此外,诸如计算设备410等计算机还可以包括其他外围输出设备,诸如扬声器495和打印机496,它们可以通过输出外围接口494等连接。
计算机410可使用到一个或多个远程计算机(诸如,远程计算机480)的逻辑连接而在联网环境中操作。远程计算机480可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括许多或所有以上相对计算机410所描述的元件,但在图4中仅示出了存储器存储设备481。图4中所示的逻辑连接包括一个或多个局域网(LAN)471和一个或多个广域网(WAN)473,但也可以包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机410通过网络接口或适配器471连接到LAN470。当在WAN联网环境中使用时,计算机410通常包括调制解调器472或用于通过诸如因特网等WAN 473建立通信的其它手段。可为内置或可为外置的调制解调器472可以经由用户输入接口460或其他合适的机构连接至系统总线421。诸如包括接口和天线的无线联网组件474可以通过诸如接入点或对等计算机等合适的设备耦合到WAN或LAN。在联网环境中,相关于计算机410所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图4示出了远程应用程序485驻留在存储器设备481上。可以理解,所示的网络连接是示例,也可以使用在计算机之间建立通信链路的其他手段。
辅助子系统499(例如,用于内容的辅助显示)可经由用户接口460连接,从而即使计算机系统的主要部分处于低功率状态中,也允许诸如程序内容、系统状态和事件通知等数据被提供给用户。辅助子系统499可连接至调制解调器472和/或网络接口470,从而在主处理单元420处于低功率状态中时,也允许在这些系统之间进行通信。
结语
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。

Claims (10)

1.一种在计算环境中的方法,包括:
从将一个或多个输入参数和一个或多个命令作为输入的程序中生成中间模型,所述中间模型包括对应于默认用户界面的用户界面模板和对应于默认变换程序的代码模板;
将所述中间模型维持在存储器中,以允许修改成包括经修改的用户界面数据和/或经修改的代码的经修改的模型;
基于所述经修改的模型,渲染与一个或多个变换程序相关联的用户界面向导;
在所述一个或多个变换程序的第一变换程序处接收一个或多个输入参数;
通过将接收到的所述一个或多个输入参数插入所述代码模板,生成所述第一变换程序的第一输出;以及
基于所述第一变换程序生成的所述第一输出使用所述一个或多个变换程序的第二变换程序输出对应于所述经修改的模型的经修改的程序。
2.如权利要求1所述的方法,其特征在于,输出对应于经修改的模型的经修改的程序包括将所述模型解释成所呈现的用户界面数据,并基于经由所述用户界面数据接收的输入来变换所述模型。
3.如权利要求1所述的方法,其特征在于,还包括将经修改的程序耦合到至少一个其它程序。
4.如权利要求3所述的方法,其特征在于,耦合经修改的程序包括将经修改的程序包括在程序的流水线中,其中至少一个程序的输出被至少一个其他程序用作为输入,或将经修改的程序包括在程序的工作流中,其中至少一个程序的输出在多个其它程序之间确定分支方向。
5.如权利要求1所述的方法,其特征在于,生成所述中间模型包括记录正在被执行的动作,并使用至少一个所记录的动作来生成所述中间模型。
6.一种计算机系统,包括:
被配置来将输入程序处理成包括用户界面模板和代码模板的包括声明性的中间模型的模型生成器程序,所述模型生成器程序还被配置来持久保存所述中间模型供以提供用于将所述中间模型编辑成经修改的模型,所述经修改的模型被配置来被解释或编译成可执行程序;
用户界面向导,被配置成:
基于所述经修改的模型,渲染与一个或多个变换程序相关联的用户界面向导;
在所述一个或多个变换程序的第一变换程序处接收一个或多个输入参数;
通过将接收到的所述一个或多个输入参数插入所述代码模板,生成所述第一变换程序的第一输出;以及
基于所述第一变换程序生成的所述第一输出使用所述一个或多个变换程序的第二变换程序输出对应于所述经修改的模型的经修改的程序。
7.如权利要求6所述的系统,其特征在于,所述可执行程序被实现为组件的一系列流水线中的组件,或被实现为包括组件的条件工作流中的组件。
8.如权利要求6所述的系统,其特征在于,经修改的模型包括至少一个条件分支。
9.如权利要求6所述的系统,其特征在于,所述模型生成器程序反映在与所述输入程序相关联的命令行和/或与所述输入程序相关联的模块上。
10.一种在计算环境中的方法,包括:
生成中间模型,所述中间模型包括对应于默认用户界面的用户界面模板以及代码模板,
持久保存基于所述中间模型的经修改的模型,其中经修改的模型包括以下至少一个:用户界面数据、一个或多个经修改的参数、一个或多个流动条件或所述中间模型中未指定的一个或多个规则;
基于所述经修改的模型,渲染与一个或多个变换程序相关联的用户界面向导;
在所述一个或多个变换程序的第一变换程序处接收一个或多个输入参数;
通过将接收到的所述一个或多个输入参数插入所述代码模板,生成所述第一变换程序的第一输出;以及
基于所述第一变换程序生成的所述第一输出使用所述一个或多个变换程序的第二变换程序输出对应于所述经修改的模型的经修改的程序。
CN201480014564.9A 2013-03-13 2014-03-06 针对基于程序的命令行的用户界面模型生成 Active CN105144091B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/802,612 US9715372B2 (en) 2013-03-13 2013-03-13 Executable guidance experiences based on implicitly generated guidance models
US13/802,612 2013-03-13
PCT/US2014/021415 WO2014164231A2 (en) 2013-03-13 2014-03-06 Executable guidance experiences based on implicitly generated guidance models

Publications (2)

Publication Number Publication Date
CN105144091A CN105144091A (zh) 2015-12-09
CN105144091B true CN105144091B (zh) 2019-07-26

Family

ID=50390257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480014564.9A Active CN105144091B (zh) 2013-03-13 2014-03-06 针对基于程序的命令行的用户界面模型生成

Country Status (4)

Country Link
US (2) US9715372B2 (zh)
EP (1) EP2972801A2 (zh)
CN (1) CN105144091B (zh)
WO (1) WO2014164231A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715372B2 (en) * 2013-03-13 2017-07-25 Microsoft Technology Licensing, Llc Executable guidance experiences based on implicitly generated guidance models
CN108228166B (zh) * 2018-03-15 2020-07-07 贝壳找房(北京)科技有限公司 一种基于模板的后端代码生成方法及系统
CN109408043B (zh) * 2018-10-19 2021-10-22 中国银行股份有限公司 一种程序生成方法及装置
CN110750909B (zh) * 2019-10-25 2023-10-27 中国建设银行股份有限公司 一种基于模型构建平台的建模方法、装置、设备及介质
CN111782207A (zh) * 2020-06-23 2020-10-16 北京青云科技股份有限公司 任务流代码生成方法、装置、设备及存储介质
CN114237487B (zh) * 2021-11-26 2023-07-04 浙江长兴和良智能装备有限公司 一种管件加工设备的控制方法、界面生成方法及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790863A (en) * 1993-10-29 1998-08-04 Microsoft Corporation Method and system for generating and displaying a computer program
CN1684034A (zh) * 2004-04-13 2005-10-19 微软公司 用以执行命令绑定的数据绑定机制的应用
US7174370B1 (en) * 2001-04-17 2007-02-06 Atul Saini System and methodology for developing, integrating and monitoring computer applications and programs
CN102693263A (zh) * 2011-02-18 2012-09-26 微软公司 数据编程环境
CN102844737A (zh) * 2010-04-15 2012-12-26 微软公司 独立于平台的呈现合成

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727175A (en) * 1989-06-30 1998-03-10 Massachusetts Institute Of Technology Object-oriented computer user interface
US5699310A (en) * 1990-06-29 1997-12-16 Dynasty Technologies, Inc. Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
US5966532A (en) * 1997-07-10 1999-10-12 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
US20030212438A1 (en) * 2002-05-07 2003-11-13 Nova Richard C. Customization of medical device
US7640540B2 (en) * 2003-10-24 2009-12-29 Microsoft Corporation Mechanism for providing extended functionality to command line instructions
US7334223B2 (en) * 2004-01-19 2008-02-19 Tata Consultancy Services, Ltd. Apparatus and method for automatically migrating client server applications to other architectures and platforms
US7770124B2 (en) * 2005-02-11 2010-08-03 Microsoft Corporation Using a description language to build a management system
US7496888B2 (en) * 2005-04-07 2009-02-24 International Business Machines Corporation Solution builder wizard
US20070006121A1 (en) 2005-05-27 2007-01-04 Microsoft Corporation Development activity recipe
EP1788497A1 (fr) * 2005-11-18 2007-05-23 Alcatel Lucent Motif de conception et procédé de transformation d'un modèle objet
US7853923B2 (en) * 2005-12-29 2010-12-14 Sap Ag Specific runtime generators in a visual modeling language environment
US7716634B2 (en) * 2006-01-19 2010-05-11 Medseek Inc. System and method for building and modifying software applications
US8527939B2 (en) * 2006-09-14 2013-09-03 Sap Ag GUI modeling of knowledge base in a modeling environment
US8424011B2 (en) * 2007-05-31 2013-04-16 Sap Ag Multiple instance management for workflow process models
US8954869B2 (en) 2007-12-17 2015-02-10 International Business Machines Corporation Generating a front end graphical user interface for a plurality of text based commands
US20090254881A1 (en) 2008-04-04 2009-10-08 Microsoft Corporation Code generation techniques for administrative tasks
EP2110741A1 (en) * 2008-04-14 2009-10-21 Siemens Aktiengesellschaft A method and a system for transforming an object model
US8112262B1 (en) * 2008-09-30 2012-02-07 Interactive TKO, Inc. Service modeling and virtualization
US20100313182A1 (en) 2009-06-05 2010-12-09 Microsoft Corporation Extensible user interface generation
US20110023022A1 (en) * 2009-07-24 2011-01-27 Ensequence, Inc. Method for application authoring employing an application template stored in a database
US8316349B2 (en) 2010-05-27 2012-11-20 Microsoft Corporation Deployment script generation and execution
US8694956B2 (en) 2010-10-14 2014-04-08 Red Hat Israel, Ltd. PowerShell cmdlets code generating tool for communicating to the web services
US8490152B2 (en) 2010-10-26 2013-07-16 Microsoft Corporation Entitlement lifecycle management in a resource management system
US20120272146A1 (en) * 2011-04-21 2012-10-25 Honeywell International Inc. Automatic application wizard
US9952659B2 (en) * 2011-11-08 2018-04-24 Microsoft Technology Licensing, Llc Presentation of multiple sources of application guidance information
US20130117277A1 (en) * 2011-11-09 2013-05-09 Microsoft Corporation Aggregating distributed sources of application guidance information
US20140129533A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Intermediary model to handle web vocabulary conflicts
US20140129532A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Packaging, storing and distributing guidance packages
US20140129934A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Dynamic model-based management tooling
US9772862B2 (en) * 2013-02-07 2017-09-26 Oracle International Corporation Integration project center
US9715372B2 (en) * 2013-03-13 2017-07-25 Microsoft Technology Licensing, Llc Executable guidance experiences based on implicitly generated guidance models

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790863A (en) * 1993-10-29 1998-08-04 Microsoft Corporation Method and system for generating and displaying a computer program
US7174370B1 (en) * 2001-04-17 2007-02-06 Atul Saini System and methodology for developing, integrating and monitoring computer applications and programs
CN1684034A (zh) * 2004-04-13 2005-10-19 微软公司 用以执行命令绑定的数据绑定机制的应用
CN102844737A (zh) * 2010-04-15 2012-12-26 微软公司 独立于平台的呈现合成
CN102693263A (zh) * 2011-02-18 2012-09-26 微软公司 数据编程环境

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
User Interface Reverse Engineering in Support of Interface Migration to the Web;E. STROULIA 等;《Automated Software Engineering》;20031031;摘要,第273页第3段,第297页第1段,第275页第3段,第293页4.1节第4段

Also Published As

Publication number Publication date
EP2972801A2 (en) 2016-01-20
WO2014164231A3 (en) 2014-12-04
CN105144091A (zh) 2015-12-09
WO2014164231A2 (en) 2014-10-09
US9715372B2 (en) 2017-07-25
US20170300305A1 (en) 2017-10-19
US20140282123A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
CN105144091B (zh) 针对基于程序的命令行的用户界面模型生成
US11789706B2 (en) Development system with improved methodology for creation and reuse of software assets
CN102591647B (zh) 将桌面应用转换成web应用
US10095488B2 (en) Expressive generic model technology
US8495559B2 (en) Extracting platform independent models from composite applications
CN102693127B (zh) 用于描述并执行图形用户界面中的管理任务的数据驱动模式
CN101763043A (zh) 用于自动化协同框架的方法和系统
Díaz et al. A model for tracing variability from features to product-line architectures: a case study in smart grids
CN112464633A (zh) 模板生成方法、装置、电子设备及存储介质
CN115495069B (zh) 基于模型驱动的煤炭工业软件流程实现方法、装置及设备
CN112988165A (zh) 基于Kubernetes的交互式建模方法、装置、电子设备及存储介质
CN108351766A (zh) 从移动设备创建和修改应用
US10691429B2 (en) Converting whiteboard images to personalized wireframes
CN110554866B (zh) 一种基于mvc交易类智能合约交互式设计方法
US8856728B2 (en) Composition studio to develop and maintain surveillance and compliance scenarios
Almugadam et al. Developing tool for Odoo platform
KR20120014389A (ko) 스마트폰 어플리케이션 제작 솔루션
US8074200B2 (en) Method and system for providing tooling instructions through parameterization as an aid for software application development
Bucaioni et al. Reference architectures modelling and compliance checking
Choi et al. A systematic methodology for developing component frameworks
Dori et al. Model‐based guidelines for user‐centric satellite control software development
Sermet et al. A Generalized Web Component for Domain-Independent Smart Assistants
Rakhmetova et al. Conceptual modelling of log files: From a UML-based design to JSON files
Avdic React native vs xamarin-mobile for industry
CN103279889A (zh) 利用vb实现水晶报表与word文档合并的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant