写点什么

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

  • 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:003222
用户头像

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

关注

评论

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

大型购物平台的系统设计与架构

恒生LIGHT云社区

平台搭建 构架 平台架构

皮皮APP x 武汉市社会心理服务指导中心 联合开展社交讲座

联营汇聚

LabVIEW图像分割算法(基础篇—6)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 图像分割算法

一个cpp协程库的前世今生(四)协程上下文ctx

SkyFire

c++ cocpp

祝大家元旦快乐,分享一些知识演讲

石云升

28天写作 12月日更

Java 数据持久化系列之 HikariCP (一)

程序员历小冰

持久化 HikariCP 28天写作 12月日更

腾讯云数据库2021年成绩单,请检阅!

腾讯云数据库

tdsql 国产数据库

建木持续集成平台v2.1.1发布

Jianmu

DevOps CI/CD 开源软件

『征文精选』ShardingSphere-Proxy:Base 事务基于 Seata 验证

SphereEx

数据库 架构 开源社区 ShardingSphere SphereEx

Postman 使用教程 - 手把手教你 API 接口测试

蒋川

Postman 接口测试

关于内核堆溢出漏洞的分析

网络安全学海

黑客 网络安全 信息安全 安全漏洞 渗透测试·

seata分布式事务TCC模式介绍及推荐实践

恒生LIGHT云社区

分布式 分布式事务 seata TCC

Hoo虎符研究院 | 币海寻珠最新一期的DAO生态

区块链前沿News

DAO Hoo 虎符交易所 虎符研究院

“千言”开源数据集项目全面升级:数据驱动AI技术进步

百度开发者中心

千言

探索SaaS产业发展新机遇|鲁班会贵安首秀圆满收官

华为云开发者联盟

SaaS 华为云 应用构建

硬核化解ISV四大痛点,华为云智联生活行业加速器助力伙伴实现商业成功

华为云开发者联盟

华为云 HarmonyOS 智联生活 华为云IoTDA 云云协同

.NET6新东西--Logging Source Generator

喵叔

28天写作 12月日更

盘点 2021|一个 SAP 成都研究院开发工程师的2021年度总结:既没有厚积,也未能薄发

汪子熙

程序员 28天写作 12月日更 盘点2021 盘点 2021

数字化转型失败,有哪些原因?

禅道项目管理

数字化转型

一个cpp协程库的前世今生(三)cocpp的核心框架结构

SkyFire

c++ cocpp

61 K8S之日志系统部署

穿过生命散发芬芳

k8s 28天写作 12月日更

CRM系统为什么被认为是企业的重要资产?

低代码小观

企业管理 资产管理 CRM 企业管理系统 CRM系统

一个cpp协程库的前世今生(五)协程执行环境env

SkyFire

c++ cocpp

五天玩转EMAS Serverless训练营

移动研发平台EMAS

阿里云 #Serverless #EMAS

如何打造一个云原生背景下的可观测平台?

淡泊明志、宁静致远

回顾 2021,拥抱 2022~

阿策小和尚

盘点2021

最好的 6 个免费天气 API 接口对比测评

蒋川

API 天气api

2022 让我们登上更大的舞台

坚果

28天写作 12月日更 2021年终总结 盘点 2021

性能提升40%!阿里云神龙大数据加速引擎获TPCx-BB世界排名第一

阿里云弹性计算

阿里云 神龙

当MySQL执行XA事务时遭遇崩溃,且看华为云如何保障数据一致性

华为云开发者联盟

MySQL 华为云

CentOS 停服,龙蜥社区已上线解决方案专区

OpenAnolis小助手

centos 国产操作系统 龙蜥社区

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