EEJournal

编辑的博客
现在就订阅

软件开发失败

我想分享这个,这是我在系统安全邮件列表中找到的:https://lists.techfak.uni-bielefeld.de/mailman/listinfo/systemsafety

马丁·托马斯(Martyn Thomas)在实现计算机系统方面拥有丰富的经验,是Praxis公司的创始人,该公司现在是Altran集团的一部分,成为“国际公认的使用严格软件工程的领导者,包括数学形式方法”。他在一个关于软件的帖子中写道:

我想起了Dijkstra在1973年的一次演讲。一位听众问道:“你的方法对现实世界的问题有效吗?”Dijkstra停顿了一下,然后平静地说:“现实世界的问题。啊,是的,当你没有应用所有已知的解决方案时,那些仍然存在的问题。”
多年来,我听过许多未能使用专业工程方法的借口。
"如果我们培训程序员,他们就会去找一份薪水更高的工作"
"我们不能雇佣愿意使用那种编程语言的程序员"
“大学不教(数学、项目管理、质量控制、计划、团队合作... ...)”
“为了兼容性,客户坚持要求我们使用这个(有bug的)中间件”
“现代软件不是写出来的——它是由大量(有bug的)COTS组装而成的。”
“如果我们试图将其纳入标准,行业将会反对。”
"如果我们要这些证据,企业会收我们一大笔钱"
还有很多很多。
大多数软件开发人员似乎都忽略了这个问题。每周,我都听到有人用动词“test”来表示“确信……适合目的”;这揭示了一个危险的、隐含的假设,即“测试-修复”是开发软件的唯一可行方法。大多数软件仍然是用没有良好数据结构和强类型检查的语言编写的。大多数软件需求(甚至是接口规范)都是用英语(或其他自然语言)编写的——可能带有一些缺乏严格语义的图。大多数项目都有严重不足的变更控制。我很少看到有价值的风险记录(除了证明项目经理没有管理项目)。
是否存在另一种行业:(a)使用不合格的人员构建复杂、新颖和关键的系统,(b)几乎只使用有重大已知缺陷的工具,(c)使用来历不明、无法证明适合用途的组件构建系统,(d)尽管如此,仍声称自己是专业工程师?
显然,我们这个职业目前的状态是不可持续的。让我们停止找借口,寻找方法来加速我们知道需要的改变。

在我看来,Martyn对整个软件领域提出了一个非常准确的观点。即使在安全关键领域,对这些问题的关注仍然太少。我们如何着手解决这个问题?还是说现在把魔鬼放回瓶子里太晚了?

关于“软件开发正在失败”的一个思考

  1. 在应用了所有严格的方法之后,剩下的是一个复杂的系统,由于对资源的竞争,这个系统有时会试图打败自己。工人的职能在管理职能期间暂停,管理职能依赖于同样的解释和执行能力。对输入进行时间到空间的转换,对输出进行有用的空间到时间的转换。大多数软件附带的免责声明道出了事实:买家当心。

    有一种补救办法,一种可以替代tm的方法,它在时域内,而不是被降级到空间域。

    详情请参阅c.moeller@ieee.org

留下回复

有特色的博客
2023年1月4日
2023年,三项关键技术将改变电子设计,包括基于云的EDA工具、多模系统和硅生命周期管理(SLM)。文章《2023年将改变电子设计的3项关键技术》首次出现在《从硅到软件》....上
2022年12月28日
我不得不说,其中许多机械运动对我来说都是全新的,从第一个开始,我现在知道它是施密特耦合....
2022年12月20日
作者:James Paris和Armen Asatryan在实现过程中自动进行简短检查,让设计团队快速找到并修复这些错误... ...

有特色的视频

基于软件的自检作为处理单元的安全机制

Synopsys对此

了解Synopsys ARC软件测试库如何帮助您在动力和区域预算范围内进行高性能安全关键型汽车设计。

了解更多

特色粉笔谈话亚博里的电子竞技

汽车座椅电子控制

英飞凌

今天的汽车座椅设计必须考虑尺寸、成本、电池寿命和通过EMC测试。在本期Chalk Talk节目中,来自亚博里的电子竞技英飞凌的Amelia Dalton和Rick Browarski研究了汽车电子座椅控制的最新创新。他们将深入了解当今电动座椅的结构、ECU在电子座椅控制中所扮演的角色,以及英飞凌芯片组产品如何为您的下一个智能电动座椅设计提供帮助。

点击这里了解更多关于英飞凌座椅控制系统的信息

Baidu