2.1 工作流和可视化编程
工作流用来构建、管理和支持商业流程,它提供了一种用于人机工作分离的新模式:

  • 我们想要的是人只做计算机无法做的。
  • 计算机软件做一切可以自动化的工作。
  • 工作流假设组件和服务已经预先开发好,并专注于组件和服务的接口和互联。
  • 工作流更好地分离了软件架构师和程序员的任务。

图2-1展示了几个主要的软件提供商和软件标准机构开发的工作流语言,它们用于商业和网页应用程序的开发。

可视化编程通常用来使工作流的概念和结构变得更易于人类构建和理解,特别是在游戏和机器人应用领域已经开发了多个可视化编程语言环境,包括:

  • MIT的Scratch:一个桌面机上的可视化游戏编程环境,广泛用于小学课程中的电影制作和游戏开发。
  • CMU的Alice:一个桌面机上的3D游戏和电影开发环境。它采用阶梯式的方法给用户提供了一个下拉列表来选择可用的函数,广泛用于中学课程中的电影制作和游戏开发。
  • MIT的App Inventor:它使用了一种拖放方式的拼图来构建Android平台的手机应用,广泛地用于高中和大学课程中的手机游戏和应用程序开发。
  • Lego NXT 2.0 & EV3:一个可视化机器人应用开发环境,针对乐高NXT和EV3机器人,广泛用于中学课程中的机器人编程。
  • Intel的IoT Services Orchestration Layer(SOL):一种可视化构建语言,用于连接IoT设备以及组建基于设备的各种功能。SOL运行在Linux操作系统上,泛用于大学课程中的嵌入式系统开发。
  • 微软机器人开发工作室(MRDS)的VPL(Visual Programming Language):发布于2006年,可用于不同提供商的机器人编程,广泛用于高中以及大学课堂中。
  • ASU的VIPLE:本书所使用的主要编程语言环境,它通过连接基本组件来实现物联网和机器人设备的各种功能。

这些可视化编程环境能够让初级程序员使用工作流级别的可视化构件来开发复杂应用程序。
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具有以下特点:

  • 继承了VPL的属性和编程模式,使VPL用户可以直接使用VIPLE。
  • 扩展了VPL支持的机器人平台,例如,VIPLE可以编程乐高的EV3机器人。
  • 在VIPLE程序与机器人之间采用了面向服务的标准通信接口JSON和开源的机器人中间件,可让通用机器人平台接入。
  • 开发了以Linux为操作系统的VIPLE中间件并以Intel Edison机器人作为默认平台和套件。VIPLE中间件已经移植到其他机器人平台。Galileo和Edison的机器人价格不到乐高EV3的一半。
  • 除了具备VPL的机器人编程功能外,VIPLE还支持通用的服务计算。VIPLE支持C#源代码模块的插入,也可以调用Web服务来完成VIPLE库程序中没有的功能。


ASU VIPLE采用可视化编程。开发者只需绘制应用程序的流程图(规格)而无须编写文本代码。开发环境中的编译工具能够把流程图直接转换成可执行的程序,从而使软件开发变得更容易、更快速。整个软件的开发,就是一个简单的拖放过程。把代表服务的模块拖放到流程图的设计平面,然后用连线把它们连接起来。这个简单的过程可以使没有程序设计经验的人在几分钟内创建自己的机器人应用程序。经过一个学期的学习和动手实践后,学生可以编出较为复杂的智能程序,使机器人能探索未知迷宫并走出迷宫。

《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.1 工作流和可视化编程...相关推荐

  1. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.1 计算机科学和工程的课程体系及职业发展...

    1.1 计算机科学和工程的课程体系及职业发展 计算机科学与工程具有巨大的社会影响,这个领域就业前景一直良好,而且是严谨的.理智的.充满活力的.多方面的.毫不夸张地说,我们的生活和现代文明很大程度上依赖 ...

  2. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2 VIPLE IoT/机器人开发环境...

    2.2 VIPLE IoT/机器人开发环境 现在已有很多优秀的用于计算和工程领域的可视化编程环境.ASU的VIPLE是一个面向服务的软件开发环境,用于设计IoT(Internet of Things) ...

  3. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.2 计算机系统...

    3.2 计算机系统 3.2.1 计算机系统的类型 计算机系统可以按不同的方法来分类.图3-2给出了一个按用户和用途的分类.下面我们对一些典型的系统做更详细的介绍. 1.工作站和大型机 工作站和大型机主 ...

  4. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2.2 VIPLE的活动和服务...

    2.2.2 VIPLE的活动和服务 现在我们开始学习VIPLE中的常用工具."基本活动"(Basic Activities)工具箱窗口包含所有组成数据流以及创建数据类型和变量的常用 ...

  5. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2.1 VIPLE的工程设计过程...

    2.2.1 VIPLE的工程设计过程 我们来看一下整个工程设计过程: 1)明确问题和需求: 2)研究: 3)草拟解决方案: 4)建模(画流程图): 5)分析: 6)模拟: 7)建立原型: 8)最终选定 ...

  6. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一第2章 机器人开发环境和VIPLE入门...

    第2章 机器人开发环境和VIPLE入门 前面我们介绍了计算机领域的发展和职业选择可能,并且已经组建了团队,为我们的开发工作做好了准备.在正式开发之前,我们要先认识工作环境--VIPLE(Visual ...

  7. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一3.3 在VIPLE中创建计算机系统部件...

    3.3 在VIPLE中创建计算机系统部件 在本节中,你将创建代表与门的活动,以及其他用来建立ALU的组件. 3.3.1 创建逻辑与门 创建一个新的项目并保存为"ALU_Simulation& ...

  8. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.2.2 团队组建...

    1.2.2 团队组建 组建团队时,团队成员应尽快熟悉和相互了解,一方面使团队氛围更加融洽.和谐:另一方面有利于尽快开展工作.以下是一组组建团队时的练习,通过这些练习,团队成员可快速熟悉彼此.增强信任, ...

  9. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3 VIPLE的使用...

    2.3 VIPLE的使用 从VIPLE网站下载VIPLE并启动VIPLE,等待一两分钟让操作系统加载程序.程序加载完成后,你会看到如下界面. 接下来,与你的团队完成下面各小节的工作(可以选择英文或中文 ...

  10. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3.3 使用或并和If活动创建条件循环...

    2.3.3 使用或并和If活动创建条件循环 本小节将用到VIPLE程序中的条件循环.因此,我们先了解下If语句和While循环语句. 1.If语句 If语句是从传统编程规范里继承而来的.If语句也被称 ...

最新文章

  1. ccna考试真题及经验介绍
  2. python qtdesigner 提升类_python3+PyQt5+Qt Designer实现扩展对话框
  3. python散点图拟合曲线-python散点图拟合
  4. MSN空间上的以往技术贴整理
  5. oracle delete 空间增加,实战经验:关于Oracle Delete数据后空间重用问题的测试
  6. Android开机自启监听网络改变源码
  7. Sightseeing Cows POJ - 3621
  8. Nginx 实战(一) 集群环境搭建
  9. date对象 java_Java_按照指定的日期创建 Date对象
  10. IIS 6.0 SSL证书安装
  11. VB判断指定的WORD文档是否被打开
  12. 2-11 支付宝集福卡_实现分析
  13. 针对计算机网络或者计算,在采用计算机网络的基础上进行计算
  14. 【数据产品案例】阿里生意参谋-用户分析
  15. 如何高效率安排你的时间?Mac精品日程管理软件推荐
  16. Protel.DXP2004 电路板设计
  17. JavaScript 汉字与拼音互转终极方案 附JS拼音输入法
  18. iOS---Local declaration of hides问题
  19. 旋转目标检测复现-yolov5-obb
  20. SQL 合并两个字段的数据 或者合并时添加符号 如:括号 等

热门文章

  1. 论文阅读《High-Definition Map Generation Technologies For Autonomous Driving: A Review》1
  2. 打开我的计算机我的文档不见,我电脑桌面上的我的文档不见了,是什么原因造成我的文档不见了呢?是? 爱问知识人...
  3. 王牧羊拜访黄龙观(其一)
  4. centos7安装boost记录
  5. html 文字竖排效果
  6. android 5.1一键root工具箱,s大师一键root下载
  7. 过来人的经验:给Java初学者的10个学习经验
  8. 光刻厚胶 Thick Resist(SU-8 GM10xx,SU-8 Microchem,SPR220,NR26-25000P)
  9. python爬12306余票_Python 爬取12306火车票
  10. m4s格式转换mp3_高质量音频转换器,如何转换成mp3音频格式