NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

SEMAT:软件工程方法和理论

  • 2010-05-30
  • 本文字数:1714 字

    阅读完需:约 6 分钟

SEMAT 於 2009 成立并发表宣言,不过跟敏捷宣言很不一样:

软件工程目前受到不成熟的实践严重阻碍,具体问题包括: - 像时装业流行的时尚多于工程学科

  • 缺乏可靠和普遍接受的理论基础
  • 大量方法及其变种,而其分别缺乏理解或虚假地作大
  • 没有可靠实验评估和验证
  • 业界实践和学术业界存在分歧

我们支持一个根据牢固理论、已证实的原则、最佳实践来重新建立软件工程学:

  • 包括广泛认同和可扩展的核心元素
  • 能处理技术和人为问题
  • 受到业界、学界、研究者和用户所支持
  • 面对需求和技术转变时支持扩展

签名人士包括在软件业界和敏捷社区的人士:Scott Ambler、Barry Boehm、Larry Constantine、Erich Gamma、Tom Gilb、Ellen Gottesdiener、Sam Guckenheimer、Watts Humphrey、Capers Jones、Ivar Jacobson、Philippe Kruchten、Robert Martin、Stephen Mellor、Bertrand Meyer、James Odell、Ken Schwaber、Edward Yourdon…

SEMAT 的愿景描述联署人士同意去创造的核心内容:“集中去寻找和描述所有软件工程工序中必需的元素,通常例子包括团队合作、项目管理和过程改进.这核心亦会结合一些其他工程学科的概念,这核心必需适应改变。”

目前分成五个工作类别

  1. 定义:定义软件工程同相关概念
  2. 理论:寻找相关支持理论(倾向于数学理论)
  3. 共同元素:寻找软件工程中的共同元素
  4. 核合语言:找到一套语言来描述其他元素
  5. 评估:评估软件工程实践和理论的方法

《设计模式》的作者 Ralph Johnson 担心学术所谓的“理论”是纯粹数学,而不是业界人士所指的,他还指出连什么是软件工程都不清晰:“是指所有软件开发,还是持有软件工程学位的人所实践的软件开发活动?还是工作头衔上包含软件工程的呢?那些一般银行或者保险公司里的软件开发部门,他们的经理只有少许软件开发背景,而他们一般开发人员可能都没有计算机科学学位,没怎么接受过软件工程正规训练的又如何呢?”他认为软件业界真正的问题在于:很多人没有理会过一些在已经存在三十多年的实践。

Jorge Aranda 同意软件业界里存在很多“流行事物”,但指出这些曾经被指为“流行事物”,例如面向对象开发、极限编程等等现在都被主流开发所接受,他担心如果持保守态度下将来的创意会有所局限。

一年前, Tom DeMarco 认为软件工程这概念已死,DeMacro 怀疑早年关于度量(Metrics)的研究是否仍然有效:

“控制软件项目:管理、量度、估计在过去软件工程师量代规划项目时起到重要作用。在自我回顾的时候,我在想,到底这些建议是否在当时正确,现在是否还有用,我是否仍然认为这些度量是成功软件开发中必要的工作?我的管案是:不是,不是,以及不是”

他继续指出:“稳定性和可预测性仍然重要,但已经不是最重要的事情”。

Geert Bellekens 支持 SEMAT,他指出:

我认为可以稳妥地说我们见识过很多不同方法学,但他们背后都很类似。 如果我们把这些方法学放在一起,从远距离观看,我们都可以看出他们相似和不同的地方。

而这正是 SEMAT 所做的事情,尝试找出他们共同之处,以一套中立的方式表达出来。

Scott Ambler 亦支持 SEMAT,认为业界需要比现在更好的方法,能够有很多人参与,他也希望 SEMAT 可以产出有价值的东西。

Alistair Cockburn 曾参与 SEMAT 会议,但现在选择退出,他在文中有五点重点:

  1. 他们提出行动的请求基于未仔细研究甚至逻辑不通的论据;他以新一套“流行用语”来代替旧的“流行用语”,他内里自相矛盾,提出的问题没得到解决,而提出的解决方案根本不对题,提出的路线没有公正性,根本是误导,透过权力、夸张宣传和野心来产生支持。
  2. 组织者不关心我所关心的题目。
  3. 他们没什么机会会提到工程或者工程理论,更适合他们的名字是 “超过程核心”(“Meta-Process-Kernel”) 行动。
  4. 他们造出来的东西很难会对业界有什么影响。
  5. 他们在短期内做到什么的概率很低。

Martin Fowler 亦有被邀请参与 SEMAT,持有类似观点:

人才是软件开发中最中心的元素,而人却是不能预测的,尝试去找出共同过程元素只会是白费工夫,除非有一天,人变成可以用数学描述的。

您对 SEMAT 有什么想法呢?会局限将来创意吗?它会创造任何有价值的事情?还是真正的问题在于团队根本不知道自己忽略了重要的软件工程实践?欢迎您在文后留下您的观点。

查看英文原文 SEMAT - Software Engineering Method and Theory

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2010-05-30 20:253120
用户头像

发布了 21 篇内容, 共 53685 次阅读, 收获喜欢 2 次。

关注

评论

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

从0开始的TypeScriptの九:接口Interfaces · 中

空城机

typescript 大前端 8月日更

LeetCode题解:220. 存在重复元素 III,暴力法,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

docker的使用

Rubble

8月日更

手撸二叉树之递增顺序搜索树

HelloWorld杰少

数据结构与算法 8月日更

Go语言:如何通过Go来更好的开发并发程序 ?

微客鸟窝

Go 语言

能源区块链研究 | 加密行业碳抵消有助于大众接纳比特币吗?

CECBC

悄悄学习Doris,偷偷惊艳所有人 | Apache Doris四万字小总结

王知无

Python入门:ChainMap 有效管理多个上下文

华为云开发者联盟

Python 字典 上下文 映射 ChainMap

区块链技术:为什么说波卡能加速区块链行业的发展?

CECBC

【Vue2.x 源码学习】第三十七篇 - 组件部分 - 组件的合并

Brave

源码 vue2 8月日更

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题

阿里巴巴云原生

云计算 阿里云 开源 云原生 中间件

趣说开源|学生如何参与开源社区?

SphereEx

数据库 开源

Spark RDD模型

布兰特

spark

Excelize 发布 2.4.1 版本,新增并发安全支持

xuri

Excel Go 语言 Excelize #Github

为什么区块链是互联网的100倍?

CECBC

Fastdata for TSDB: SQL使时序数据可扩展

数据库 大数据 时序数据库 tsdb 数据智能

架构实战营 - 模块五作业

思梦乐

Seata TCC模式原理与实战

码农参上

分布式事务 seata SpringCloud Alibaba 8月日更

高并发中,那些不得不说的线程池与ThreadPoolExecutor类

华为云开发者联盟

Java 线程 高并发 线程池 ThreadPoolExecutor类

导播上云,把 “虚拟演播厅” 搬到奥运村

阿里云视频云

阿里云 视频处理 视频直播 视频云 云导播

传统企业数字化转型的三大技术误区

码猿外

数字化转型 敏捷精益

零代码以“王者荣耀”为例解析设计七原则

华为云开发者联盟

软件 设计原则 王者荣耀 单一职责

你真的了解 fail-fast 和 fail-safe 吗

4ye

Java 后端 并发 map 8月日更

智能时代的信任口诀:让计算远离算计

白洞计划

数据加密和BCrypt哈希算法应用 | StartDT Tech Lab 15

奇点云

【Flutter 专题】68 图解基本约束 Box (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

用Java仿一个低配版的Everything软件

Regan Yue

Java 8月日更 Everything

百亿级分布式文件系统之元数据设计

焱融科技

云计算 技术 分布式 高性能 文件存储

FastApi-15-文件上传-3

Python研究所

FastApi 8月日更

Compose 中的主题

Changing Lin

8月日更

netty系列之:自定义编码解码器

程序那些事

Java Netty 程序那些事

SEMAT:软件工程方法和理论_研发效能_Mark Levison_InfoQ精选文章