软件质量与工业 4.0:工业物联网

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

简单来说,物联网或 IoT 将基于可互操作的通信技术实现物理世界和虚拟世界的互连。这实质上意味着每个电子设备都将具有网络连接——每个电子设备制造商也将从事软件业务。

什么是工业物联网?

物联网的更广泛定义通常包含更多主流应用,包括家庭自动化、智能电器、可穿戴设备、健康和健身应用等。工业领域也出现了类似的演变,包含被称为第四工业的相同概念革命、工业 4.0,或者更简单地说,工业物联网 (IIoT)。

IIoT 包括更复杂的设备和系统与联网传感器和软件的集成。工业互联网联盟对这一概念的定义如下:“工业互联网是物、机器、计算机和人的互联网,使用先进的数据分析实现智能工业运营,实现转型业务成果。它体现了全球工业生态系统、先进计算和制造、无处不在的传感和无处不在的网络连接的融合。”[1]


IIoT 可以利用先进智能技术的力量显着影响业务运营——重塑业务流程和生产方法,同时创造新的收入流。例如,通过利用 IIoT 技术,制造商正在引入更高的自动化和灵活的生产技术以提高生产率。连接的传感器网络正在通过监控物流创造更高效的运营并降低成本。无人驾驶车辆用于检查恶劣环境以确保员工安全。嵌入式技术能够优化货运班轮路线以降低交付成本,或提醒人员注意机械故障,从而节省大量资源——甚至生命。

所有这些应用程序都由先进的嵌入式软件技术提供支持。

万亿美元的增长机会

最近的“ 以工业物联网取胜 [2] ”报告指出,到 2030 年,工业物联网有可能为全球经济增加 14.2 万亿美元。该报告还指出,IIoT 将“加速行业重塑占世界产出的近三分之二”,是“未来十年生产力和增长的最大驱动力”。

但是——行业是否为 IIoT 做好了准备?

尽管早期采用者确实意识到了这些好处,但 IIoT 的广泛采用似乎受到整体怀疑和缺乏理解的阻碍。根据同一份报告,“CEO 和高管表示非常有信心 (96%) 认为他们组织的高级领导至少掌握了 IIoT 的一些本质......但很少有人说他们的领导已经完全理解它 (38%) )。与世界经济论坛合作进行了一项类似的研究[3],该研究调查了 90 多家积极推行 IIoT 计划的市场领导者。绝大多数 (88%) 表示,他们仍然不完全了解 IIoT 的基本商业模式和长期影响。

IIoT 行业将有许多新供应商提供应用程序、中间件和连接设备。这些供应商中的许多供应商对于构建嵌入式软件、设计健壮的软件或两者都是新手。此外,消费者和制造商都希望连接设备的操作是无缝和可靠的,并总体上提供积极的用户体验。

软件质量挑战

如前所述,任何行业向支持物联网的环境转型都会导致每个电子设备制造商都在某种程度上涉足软件业务。拥有为汽车和工业控制等行业构建任务关键型嵌入式软件的传统供应商在向 IIoT 过渡方面应该具有相当大的优势,因为他们已经解决了应用程序分区、冗余和长期的许多实时嵌入式挑战-次。另一方面,以前没有软件经验或具有消费级软件经验的供应商可能会低估与支持 IIoT 相关的挑战。

在任何一种情况下,随着生产环境和关键业务应用程序继续变得更加依赖其功能由软件控制的产品,这些软件应用程序将需要可靠和不间断的操作——特别是在安全、安保或人为因素的情况下如果软件出现故障,生命将面临风险。供应商将需要实施能够可靠地交付高质量软件的流程。

解决问题

软件开发人员经常面临的最大挑战是平衡测试完整性和上市时间,因为他们害怕为了测试完整性而失去“先发优势”。然而,为了缩短上市时间而牺牲质量是一个危险的选择,可能会对品牌价值产生重大影响。

在软件应用程序的典型产品生命周期中,1.0 是向客户发布的初始版本。在后续版本中,修复了错误,并发布了 1.0 中缺少的功能。产品最终会达到用户对产品的质量和功能感到满意的程度。

“质量赤字”发生在产品首次发布与市场认为产品质量良好之间。最小化或消除这种质量缺陷应该是每个构建软件的组织的首要任务。

应对这一挑战涉及解决开发团队面临的第二个挑战:在需求、设计、编码和测试之间分配开发资源。工作流程历来如下:

对于许多开发团队来说,最优先考虑的是编码,而不是应用程序编程接口 (API) 和测试用例设计。团队通常指派高级员工负责代码开发,而初级员工负责测试。但是,如果把这个模型完全颠倒过来,那么最有价值的软件开发产品就会有一个完整而灵活的API,并且测试用例证明了这个API的正确性。

如果开发了一个很棒的 AP​​I,并测试将正确的行为形式化到这个 API,那么实际的代码编写可以由初级人员完成,代码可以自信地重构,质量也会大大提高。

在软件质量之旅中要解决的最后一个挑战是,大多数开发团队都维护着多种测试类型,并且不同的团队“拥有”每种类型的测试。开发人员通常创建和维护低级别测试,而质量保证 (QA) 部门负责其他工作。

QA 测试通常仅在数周的开发后运行,此时数百个源更改已集成到代码库中。这使得查找测试失败的根本原因既费时又令人沮丧。解决方案是将测试用例视为组织的宝贵资产,并在整个团队和应用程序生命周期中利用它们。

结论

随着行业适应工业物联网,软件质量的作用越来越重要。不调整开发流程以生产更高质量应用程序的组织不仅在冒着品牌风险,而且在冒着生存风险。真正适应的组织将会蓬勃发展。

参考

[1] http://www.iiconsortium.org

[2] http://www.accenture.com/us-en/Pages/insight-industrial-internet-of things.aspx?c=glb_wef2015pr_10000001&n=otc_0115

[3] http://reports.weforum.org/industrial-internet-of-things/