更新时间:2022-04-17 04:24:41
2.1 工作流和可视化编程
工作流用来构建、管理和支持商业流程,它提供了一种用于人机工作分离的新模式:
图2-1展示了几个主要的软件提供商和软件标准机构开发的工作流语言,它们用于商业和网页应用程序的开发。
可视化编程通常用来使工作流的概念和结构变得更易于人类构建和理解,特别是在游戏和机器人应用领域已经开发了多个可视化编程语言环境,包括:
这些可视化编程环境能够让初级程序员使用工作流级别的可视化构件来开发复杂应用程序。
Scratch(https://scratch.mit.edu)采用简单的步骤就可以构建一个简单的电影或者游戏。图2-2给出了这些步骤。
Alice(http://alice.org)是一个可视化编程环境,支持面向对象的编程规范。它同时支持事件驱动(或者可交互式的)编程规范。Alice在用途和功能上与Scratch相似,但是程序能力更加强大。图2-3展示了Alice程序的一个例子,其中下拉菜单用来选择功能。模块可以用来定义封装一个独立的功能。
MIT的App Inventor包含一个基于网页的GUI(Graphic User Interface,图形用户界面)设计器和一个可视化编程环境,用于定义网页GUI的功能。用户可以使用一个模拟器或者真实的Android手机来演示开发的App。App的GUI可以在浏览器的网站中开发(美国的网站是http://appinventor.mit.edu,中国的网站是http://app.gzjkw.net/)。
图2-4展示了在模拟器中进行游戏设计的一个例子及其可视化代码。
可视化编程语言广泛用于机器人编程和教育领域。Lego EV3可视化编程环境是针对EV3机器人的编程而设计的。它允许将一排顺序的功能模块拼接起来。图2-5展示了一个用EV3可视化语言开发的程序,它用到了颜色传感器。
Intel最近发布的SOL使用预定义的组件和服务,用户可以用拖曳的方式设计GUI以及工作流代码。如图2-6所示,左侧的工具箱列出了用于GUI和工作流设计的工具。右侧则显示了一个GUI设计、工作流设计以及应用程序的执行图。
微软机器人开发工作室(MRDS)的VPL(http://msdn.microsoft.com/en-us/robotics/aa731520)是一个设备编程和可视化语言的旗舰产品。如图2-7所示,它是基于强大的.NET框架构建的,并有一个丰富的库支持。
VPL可用于编程和控制乐高NXT机器人和多种机器人,包括iRobot、Fischertechnik、LEGO Mindstorms NXT、Parallax robots和微软的仿真机器人等。VPL可用于编程从简单到复杂的各种应用,从2006年发布至今,VPL建立了一个巨大的用户社区。遗憾的是,在微软的重构过程中,VPL项目终止了。尽管微软继续支持VPL的免费下载,但VPL不再支持新的机器人平台,例如,VPL不支持取代二代乐高NXT的三代EV3机器人。
为了让VPL的用户社区能够继续他们的机器人程序开发,基于对工作流和可视化语言多年的研究和开发,亚利桑那州立大学(ASU)于2015年发布了机器人开发平台ASU VIPLE。VIPLE具有以下特点:
ASU VIPLE采用可视化编程。开发者只需绘制应用程序的流程图(规格)而无须编写文本代码。开发环境中的编译工具能够把流程图直接转换成可执行的程序,从而使软件开发变得更容易、更快速。整个软件的开发,就是一个简单的拖放过程。把代表服务的模块拖放到流程图的设计平面,然后用连线把它们连接起来。这个简单的过程可以使没有程序设计经验的人在几分钟内创建自己的机器人应用程序。经过一个学期的学习和动手实践后,学生可以编出较为复杂的智能程序,使机器人能探索未知迷宫并走出迷宫。