人月神话-软件开发现状
人月神话-软件开发现状
黄国强 2005年03月5日
人月神话的作者Frederick P. Brooks Jr这样说到“所有软件活动包括根本任务--打造构成抽象软件实体的复杂概念结构,次要任务-使用编程语言表达这些抽象实体,在空间和时间限制内将他们映射成机器语言。”
这句话我的理解就是这样,软件开发是由分析建模(根本任务)和编程(次要任务)两部分组成。
这本书已经出版了二十多年了,当年作者对软件断言没有银弹(即没有好的开发方法)的结论目前看依然成立。因为目前软件领域开发方法的创新依然集中在次要任务的解决。而对根本任务地解决依然缺乏有效的方法。为什么这么说了?根本任务中提到了“概念”这个词。
那么什么是概念?比如桌子就是一个概念。那么能否给桌子一个精确定义呢?我们这时就会发现这个非常困难。比如桌子有腿吗?如果有腿,那么几条腿才叫桌子?
显然,精确定义只存在数学中,数学概念基本上都是可以精确定义的,比如正方形。
我们生活中的概念一般称为自然概念。描述概念有三个方法:经典方法、概率方法和标本方法。一般认为经典理论是由亚里斯多德提出,主要通过定义一系列充分必要的属性来定义概念。经典理论对于数学概念描述非常擅长,但不适合解决自然概念,比如上面讲的桌子。目前在软件开发中概念的定义主要使用这个方法。尽管存在着刚才所说的局限性。概率方法是通过一个事物满足一系列特征的概率来区分概率。标本方法是通过指定多个标本来区分概念。比如描述鸟的概念,就做了很多鸟的标本。
显然,概率方法和标本方法用计算机语言描述都异常困难,当然全世界做这方面研究的公司和个人都非常多。但进展很有限。因为我们知道,计算机归根结底是一个逻辑机器,对于模糊的事物处理非常困难。所以我觉得这个突破要依赖于人类对自己大脑的研究,即认知科学的发展。
可以想象,软件开发人员的苦海依然没有尽头。
人月神话-软件开发现状相关推荐
- 没有银弹-读《人月神话》重点摘录
2019独角兽企业重金招聘Python工程师标准>>> 作为软件工程的经典著作,<人月神话>的主要贡献是对软件开发过程的几个重要关键点,提出了独到的见解. ...
- 人月神话阅读笔记01
本书作者作为一个经验丰富的软件项目管理者提供给我们很多发人深省的观点.先从书名"人月神话"开始探讨,人月即早期用来度量软件开发工作量的一个单位.具体为将每个人每月的工作量作为一个基 ...
- 《人月神话》——一部被名字误导的软件开发的书——第一次阅读
哈哈哈哈,一说到<人月神话>,刚开始老师建议这本书时是真的认为这是一部关于嫦娥和兔子的故事:之后又说是关于软件开发的书,觉得写嫦娥和兔子可能有点违和,就感觉是一个关于人类登上月球时用的相关 ...
- 软件设计的火花——Brooks新作及《人月神话》三十五周年讨论会纪要
应UMLChina之邀,本人于6月20日参加了"Brooks新作及<人月神话>三十五周年讨论会",会上由Brooks的<The Design of Design& ...
- 中文书籍对《人月神话》的引用(20211020更新到125本):Perl调试技术、软件配置管理模式……
<人月神话>于1975年出版,1995年出二十周年版.自出版以来,该书被大量的书籍和文章引用,直到现在热潮不退. UMLChina摘录目前为止正式出版的软件开发各领域中文书籍中对<人 ...
- 中文书籍对《人月神话》的引用(20211105更新161-165本):大师品软件、JavaScript开发框架权威指南
中文书籍对<人月神话>的引用(第001到160本)>> <人月神话>于1975年出版,1995年出二十周年版.自出版以来,该书被大量的书籍和文章引用,直到现在热潮不 ...
- 《人月神话》打动我的那些章节----论几十年前的软件工程开发理念在当代还有多少理论行得通(一)
前言:人月神话是写于1975年的一本软件工程论著,它描述了软件开发中出现种种问题和桎梏,虽然它所举例子距离我们相去甚远,然而在阅读的过程中我仍对其中的一些问题产生了共鸣.清晰的定义这些问题,迈出了预防 ...
- 微服务架构设计模式 pdf_中文书籍中对人月神话的引用(四)微服务架构设计模式、软件驱魔……...
有同学说2014-2020年出版的引用<人月神话>的软件开发书籍里都是英文,难以阅读.特整理中文书籍引用--其实绝大多数还是老外写的.特别说明的是:本文只是陈述这些书引用了<人月神话 ...
- 透过《人月神话》,看清开发问题
hello,大家好,我是张张,「架构精进之路」公号作者. 1.关于人月神话 在软件开发领域,布鲁克斯博士的<人月神话>是一本关于大型项目管理的经典之作.它不仅对每一个软件行业的项目经理(P ...
- 杀不死的人狼——我读《人月神话》(三)
<<==上一节 ===== 三.<人月神话>是预言了未来还是控制了未来? ===== 事实是:我们现在的很多工程知识,--无论是从书上看到的,还是从实践中体验到的--大多未曾 ...
最新文章
- java mybatis狂神说sql_帮你搞定Java面试,不要再错过了
- 我来告诉你考研还是找工作!
- oracle 整个表空间迁移,ORACLE表批量迁移表空间
- python取出字典中的所有值的两种方法
- toArray()方法使用说明
- IOS开发之自定义UIActionSheet
- 复习日记-validate表单校验插件/菜单管理dTree
- linux top交叉编译_ARM Linux交叉编译工具链的制作
- 使用Spring特性优雅书写业务代码
- mysql数据库算法_数据库:MySQL索引背后的数据结构及算法原理【转】
- 前端学习(2620):新增品牌
- EasyARM-iMX283A的Linux 开发环境构建
- 【BZOJ1079】【codevs2428】着色方案,DP
- javaweb项目静态资源被拦截的解决方法
- ArcGIS修改矢量边界(土地利用图图斑)
- 网吧网络综合问题讨论和解决方案
- Qt QBoxLayout QVBoxLayout QGridLayout 清空布局内widget的正确做法
- 通达oa 2013 php解密,通达OA漏洞学习 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...
- vue ssr之nuxt
- php网站服务器ip地址吗,php 服务器ip地址吗