首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >最新的和工业形式/严格的软件开发方法

最新的和工业形式/严格的软件开发方法
EN

Stack Overflow用户
提问于 2019-10-16 02:41:37
回答 2查看 56关注 0票数 0

我是一名软件工程师/架构师,专注于AI和分布式系统,我来自电子和通信工程背景。

在我的软件之旅中,我一直在想,为什么这个工程分支缺乏像电子学(数学建模和实现)那样的形式化设计方法,以及具有许多约束的最佳通信系统的设计,这些系统中的大多数都比地球上最复杂的软件(如运行我们使用和开发的软件的I)复杂得多,而与软件相关的领域中唯一具有形式化方法的是硬件描述语言。

我最近了解到,存在用于软件设计、规格说明和验证的正式方法,如Z符号和语言、维也纳开发方法和b语言。

但是,这个领域的最新技术是什么,普通工程师(例如在我的团队中)如何使用它?

EN

回答 2

Stack Overflow用户

发布于 2019-10-18 16:45:17

我完全同意您的观点,即目前在软件开发中使用的正式方法很少。你提到的方法似乎对软件行业的工作没有太大的影响(据我所知)。

到目前为止,我已经看到了一些确保满足软件产品需求的方法:

遵循已定义的过程进行

of an

对于这些活动中的每一个,都有许多工具可用于支持开发。

典型问题:

使用non-functional requirements

这实际上与其他工程学科中使用的方法有很大的不同,但希望能让你有一个想法,你可以更仔细地观察什么。

票数 2
EN

Stack Overflow用户

发布于 2020-04-16 04:30:53

正式规范和验证方法(FM)的“最新技术”足以极大地提高正在开发的系统的质量,然而最大的障碍不是技术(在大多数情况下),而是一个商业决策--这通常归结为时间和金钱。

一般的软件开发人员没有接受过有效使用FM的培训,项目时间表(通常)也不是这样的,你可以在不影响截止日期的情况下注入大量的建模活动。

这种额外的时间/金钱在更高风险的工作中是可以接受的,比如“任务关键型系统”,其中故障的成本是受伤、死亡或巨大的财务损失,但对于开发故障成本在“麻烦范围”(重启应用程序、恢复备份等)的系统的开发团队来说,这种额外的时间/金钱是可以接受的。

在我看来,FM从业者真正突出的挑战在于方法的可用性,以及它们与更敏捷(或更少的“大设计”)开发过程的集成。

最后,作为一门学科,我们非常习惯于经验测试/验证--严格证明系统是正确的概念在当代开发公司中并不经常被考虑或讨论(在前面提到的“关键任务”团队之外)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58400843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档