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

简介: 本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第2章 ,第2.2.1节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2.1 VIPLE的工程设计过程

我们来看一下整个工程设计过程:
1)明确问题和需求;
2)研究;
3)草拟解决方案;
4)建模(画流程图);
5)分析;
6)模拟;
7)建立原型;
8)最终选定方案;
9)实现以及测试。
我们把整个设计过程应用到软件开发过程中。在传统的软件开发中,流程图是一种概念模型,使得开发者更好地理解问题。在使用VIPLE的面向服务的可视化开发过程中,流程图成为一个数学或者逻辑模型并可被编译成可执行文件,从而去除或者减轻了实现(编程)步骤中将流程图转译成文字形式编码的负担。这种方法不仅可以用于机器人应用,还可用于通用软件开发。现有的几个基于工作流的通用软件可视化编程的开发环境,包括IBM的WebSphere、Microsoft的基于Visual Studio的Workflow Foundation以及Oracle的SOA Suite,帮助开发者绘制各种应用程序的流程图。比如,一个在线的银行系统、一个电子商务系统或者一个图像验证系统。编译器能够直接把流程图编译成可执行文件。与VIPLE工作流类似,链接http://neptune.fulton.ad.asu.edu/WSRepository/Services/WFImage给了一个使用Workflow Foundation的简单图像验证器。
软件工程师的职责是理解问题并开发一个解决方案。编码实现并不是软件工程师的主要职责。高级开发工具并不会减少对软件工程师的需求,但是它减少了对程序员的需求。因为编码(实现)工作可以由高级软件工具自动化实现,但是问题的定义、需求撰写、建模以及分析的工作是无法被工具或者机器替代的。
此外,VIPLE还包含一个基于Unity游戏引擎的3D模拟器以及一个基于HTML5的Web 2D和Web 3D模拟器,使得用户可以在他们的程序加载到硬件平台(机器人)之前进行测试。在模拟环境中开发者可以在软硬件问题混合到一起之前单独测试软件问题。图2-8显示了一个3D Unity模拟器和一个机器人迷宫导航的Web 2D和Web 3D模拟器。Unity模拟器中的红色光线是测距传感器在测量距离。迷宫的墙壁可以通过点击来修改(添加或移除)。在Web 2D和Web 3D模拟器中,迷宫可以在线下准备好并在执行迷宫导航程序之前加载到模拟环境里。
image

VIPLE是一个基于数据编程模型的应用程序开发环境,而不是典型的用于传统编程语言(如C++、Java)的控制流模型,后者会串行执行命令语句。数据流程序更像生产线上的工人,当材料到达时工人就做指定的工作。因此VIPLE很适合机器人应用程序的编程,同样,它也适合各种并发分布式应用。在我们的实验中,将会使用VIPLE来设计电路。
VIPLE可以让初级程序员对变量、数据类型、If/Else语句、循环和逻辑思维等概念有一个基本的理解。但是,VIPLE并不仅限于新手,其编程语言的组成方法可能会吸引更多的高级程序员进行快速原型开发或代码开发。此外,虽然VIPLE的工具箱是为开发机器人应用程序特别定制的,但其底层的体系结构并不局限于机器人编程。比如,VIPLE可应用于游戏、复杂制造过程、控制智能家居设备以及其他设计过程。VIPLE的模拟环境可将现实系统虚拟化,用于物理实现前的测试。因此,VIPLE对于广大的用户都具有吸引力,包括高中生、大学生、兴趣爱好者、研究者,以及Web开发者和职业程序员。
VIPLE是免费的,可从http://neptune.fulton.ad.asu.edu/VIPLE/下载。

相关文章
|
10天前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
17 4
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
170 9
Apache IoTDB进行IoT相关开发实践
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
242 12
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
137 0
Apache IoTDB进行IoT相关开发实践
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
|
5月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
物联网技术带来数据库管理挑战,特别是实时数据整合与安全性。IoTDB是一个专为时间序列数据设计的数据库,提供数据收集、存储和分析服务,适用于海量物联网数据。其架构包括数据文件、系统文件和预写日志文件的管理,并支持多目录存储策略。此外,IoTDB还开发了InfluxDB协议适配器,使得用户能无缝迁移原有InfluxDB业务。此适配器基于IoTDB的Java服务接口,转换InfluxDB的元数据格式,实现与IoTDB的数据交互。目前,适配器支持InfluxDB 1.x版本及部分查询语法。
183 5
|
监控 物联网 Java
|
物联网 API 开发工具
下一篇
无影云桌面