写点什么

复杂软件系统开发的技术和趋势

  • 2016-06-01
  • 本文字数:1815 字

    阅读完需:约 6 分钟

Software-Centric Systems 大会探讨了新技术、趋势及复杂软件系统开发的经验。大会于 5 月 25 日星期三在荷兰埃因霍温高科技园区举行。

InfoQ 采访了大会委员会的两名成员 Rob Howe 和 Martijn Rutten。

InfoQ:在你们看来,软件开发如今面临的主要挑战是什么?

Howe:“智能(Smart)”、“智慧(Intelligent)”或“自治(Autonomous)”等术语在媒体上出现的频率越来越高,涉及所有类型的产品。实际上,这些词语和软件一个意思——是软件让系统智能、智慧或自治。我们生活的世界日益成为以软件为中心的世界。可是,软件仍然使用相对原始和成本高昂的方式构建。软件“开发”面临的最大挑战是形成真正的工程规范,以便能够交付可信赖的成果,同时兼顾可预见性和经济性。要实现“智能”或“自治”等词语所描述的高度集成的复杂系统,这绝对是关键。

Rutten:如今,软件即系统。软件定义了关键功能和好处。伴随 IoT 和工业 4.0 环境中的网络应用,软件的内涵也在快速地变化,包含 1000 多万行软件代码的嵌入式设备随处可见。由于嵌入式设备对真实世界有直接的影响,可靠性和安全性是确保没有人会受到伤害的关键。传统的 OEM 厂商现在发现,他们实际上已经变成了软件公司。对于具有硬件工程背景的公司而言,开发可靠安全的软件所伴随的巨大复杂性是他们需要应对的挑战。

InfoQ:你们最近看到了哪些技术发展?它们对复杂的软件密集型系统有什么影响?

Rutten:应对大型软件复杂性的工作正在从各个方面得到解决,从验证软件的(如静态和动态分析)工具,到从根本上降低受攻击风险的新语言,一直到从高级模型“自动正确构建(correct-by-construction)”软件的模型驱动开发。到目前为止,软件开发团队可以不再使用那种偏牛仔风的开发方式了,他们现在需要更加注意开发流程和工具,以应对复杂性。

Howe:多年来,在软件系统设计方面,“早期采用者(Early Adopter)”公司一直引领着新技术的开发、采用和推广,并取得了一些成功。但缺少资源的“早期大多数(Early Majority)”公司采用一种更为务实的软件工程方法,他们仍然坚守着传统的开发实践。然而,去年,这种情况开始发生变化。对于类似模型驱动软件工程(MDSE)这样的技术,市场的信心在逐步增加,使得这些技术在软件工程社区得到了更广泛的应用。

InfoQ:你们能举例说明下如何使用新技术推动创新吗?

Rutten:企业正借助持续集成在软件落地之前检测 Bug 和性能问题。这让每天发布多次的持续部署取代了传统的按季度发布。反过来,对于嵌入式软件,只有在每次发布之前进行全面的检查,比如通过静态分析工具,或者在一个模型驱动开发环境中生成,这才可能实现。显然,如此快速地在市场中引入新功能,通过市场验证推动了创新。

Howe:工程团队在运用新的软件工程技术方面信心增加,让他们可以自由地尝试富有创新精神的系统架构。例如,通过运用内置了形式化验证的 MDSE 工具,企业觉得有能力重新设计他们的其中一款产品,移除已经过时的、基于 PLC 的安全控制器,代之以一个在重要应用软件主体中验证过的分布式安全控制器。

InfoQ:Software-Centric Systems 大会主要涉及了那些话题?

Rutten:大会的主要话题是“软件自白”,互相学习如何处理开发大型的、以软件为中心的复杂系统所面临的巨大挑战。我们如何确保可靠性、安全性、隐私、可维护性、性能,等等。

Howe:大会的一个主要目标是促进与会者互动及知识和经验的交流。我们认为,一般而言,人们从会议中获得的最有用的东西是通过与演讲者和其他与会者对话获得的信息。因此,大会的初衷就是最大化这些类型的互动。此外,我们选择演讲者的依据就是他们能够分享真实世界的经验供其他与会者学习。

InfoQ:如果组织希望提高软件开发流程的可靠性,同时又能快速地交付价值,那么他们该如何推广应用敏捷?

Rutten:持续集成与持续部署和敏捷软件开发息息相关。预留配置最佳环境和工具的时间和预算是尽早发现错误的关键,这时候修复问题的成本还比较低。如果模型驱动方法适合这个领域,那么从一个高级模型生成代码会极大地增加可靠性,缩短上市时间。

在更为特殊的领域里,如汽车发动机控制,难度会更大。这时,就必须向系统投入巨大的资源,以确保新技术能够安全地应用到一个已知可工作的系统中,实现平稳退化。只有有一个这样的环境,敏捷增量交付才行得通。

InfoQ 正通过 Q&A、概述和文章的形式对 Software-Centric Systems 大会进行报道。

查看英文原文 Technologies and Trends in Developing Complex Software Systems

2016-06-01 19:003025
用户头像

发布了 1008 篇内容, 共 401.6 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

Hackathon 实用指南丨快速给 TiDB 新增一个功能

PingCAP

TiDB

NFT铸造摸了个鱼链游系统开发源码(原生开发)

开发微hkkf5566

搞AI开发,你不得不会的PyCharm技术

华为云开发者联盟

人工智能 代码 华为云 企业号十月 PK 榜

WorkPlus移动门户,助力企业信息系统移动智慧互联

BeeWorks

凭借一份“面试真经pdf”,我四面字节跳动,拿下1-2级offer

小二,上酒上酒

Java 面试 字节 宝典

19道高频vue面试题解答(上)

bb_xiaxia1998

Vue

一文步入python大门,基础教程大全(25分钟)

贤鱼很忙

Python 网络安全 10月月更

疫情之后,幸获内推,4面京东拿下offer(Java后台研发岗)

小二,上酒上酒

Java 面试

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

小二,上酒上酒

MySQL 面试

632页!我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer

小二,上酒上酒

Java 面试

19道高频vue面试题解答(下)

bb_xiaxia1998

Vue

加油,也可以更智慧

华为云开发者联盟

云计算 开发 物联网 智慧加油站 企业号十月 PK 榜

闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offer

小二,上酒上酒

Java 字节跳动 面试 大厂面试

STM32L051测试 (一、使用CubeMX生成工程文件 — ST系列芯片通用)

矜辰所致

stm32 STM32CubeMX STM32L051 10月月更

Wallys//IPQ8072/IPQ8074/IPQ8072A/IPQ8074A/High-capacity 802.11ax SoC for Routers, Gateways and Access Points

wallys-wifi6

IPQ8072 IPQ8074A

前端开发培训机构学习方法

小谷哥

疫情闭关期间,读完这些“Java技术栈”,拿下阿里Offer没问题

小二,上酒上酒

Java 面试 技术栈 面试大厂

啃完这些Spring知识点,我竟吊打了阿里面试官(附面经+笔记)

小二,上酒上酒

spring Spring全家桶 阿里面试

对在前端培训初学者的几点建议

小谷哥

LinkedList源码分析(三)

知识浅谈

linkedlist 10月月更

渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer

小二,上酒上酒

学习 面试 阿里 编程开发

十大 CI/CD 安全风险(一)

SEAL安全

权限管理 流程控制 身份验证 CI/CD管道 软件供应链安全

学习型索引在数据库中的应用实践

KaiwuDB

哪些js手写题是需要掌握的

helloworld1024fd

JavaScript

美团前端二面必会手写面试题汇总

helloworld1024fd

JavaScript

Linux策略路由详解

京东科技开发者

数据库 Linux 公有云 云主机 策略路由

读完这份JVM高级笔记,彻底玩转Java虚拟机,面试再也不用“虚”

小二,上酒上酒

Java 面试 阿里 虚拟机 大厂面试

仅靠七个步骤,4面通过拿offer,终“跳进”字节跳动

小二,上酒上酒

面试 面试题

详解ROMA Connect API 流控实现技术

华为云开发者联盟

云计算 后端 开发 华为云 企业号十月 PK 榜

使用 SAP BTP 创建一个 Spring Boot Java 应用

汪子熙

云原生 SAP Netweaver 10月月更 btp

安全专属的IM即时通讯平台,WorkPlus信创国产化解决方案

BeeWorks

复杂软件系统开发的技术和趋势_文化 & 方法_Ben Linders_InfoQ精选文章