- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计工程建设跟人月神话资料文档
是否存在终极利器?--银弹之争 人狼、银弹与软件项目 人狼:满月时会由人形变成狼形的怪兽。 银弹:唯一可以杀死人狼的武器。 软件项目:类似于人狼,常常看似简单明了的东西,却有可能变成一个落后进度、超出预算、存在大量缺陷的怪物。 是否存在终极利器?--银弹之争 没有银弹(“No Silver Bullet”) 没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量级上的进步。--brooks,1986 原因:由软件工程的内在特性所决定的:复杂度,一致性,可变性和不可见性。 存在银弹(There Is a Silver Bullet) 在信息化社会里,市场对信息的巨大需求将成为经济诱因,促使银弹的出现。--Cox,1990 没有银弹!--Brooks 软件工程的内在特性 复杂度:不同于建筑、汽车等产品,软件实体可能比任何由人类创造的其它实体都要复杂,因为没有任何两个软件部分是相同的(至少是在语句的级别上)。 无规则性:不同于数学、物理等学科,软件工程所控制的很多复杂度是随心所欲、毫无规则可言的,来自于若干必须遵循的人为惯例和系统。 可变性:由于软件是纯粹的思维产物,易于修改,用户经常会提出改进要求。 不可见性:软件是无法可视化的,不仅限制了个人的设计过程,也阻碍了设计人员之间的交流。 由于软件工程的内在特性限制了银弹的出现! 没有银弹!--Brooks 能够提高效率但并非银弹的技术: 高级编程语言 面向对象编程 人工智能 专家系统 “自动”编程 图形化编程 程序验证 环境和工具 工作站 购买而非自行开发 增量开发——增长,而非搭建系统 卓越的人员 银弹就在这里!--Cox Cox简介 “以人为本” 计算机学和社会学大师 开发了Objective-C (类似于c++,已经消亡) 银弹就在这里!--Cox Cox眼中的银弹:类似硬件晶片般的软件组件 通过使用结构化的方法,将软件组件内的复杂结构包装得完美,使得组件简单易用,由这些组件整合而成大型软件,自然简单易用,软件危机于是被化解了。 为何现在没有出现银弹? 一般的工业产品每卖出一件就消耗一份组件,然而软件无论卖出多少件都只需要消耗一份组件。这样使软件组件提供商没有动力去生产出完美的组件。 网络资源 人月神话 /view/3b3f958da0116c175f0e48e0.html No Silver Bullet /mon/SoftwareEngineering/BrooksNoSilverBullet.html There is a silver bullet /184407534 Introduction toTHE MYTHICAL MAN-MONTH 相关信息 书籍简介 1975年首次发行 软件工程的经典之作 收录了作者多年的技术文章 为大型的软件开发提供启示 相关信息 作者简介 Frederick Brooks (弗雷德里克.布鲁克斯) 美国工程院院士 曾主持开发IBM/360 1999年的图灵奖获得者 软件开发中的焦油坑 图片注解:中生代时期拉布雷亚(La Brea Tar Pits)焦油坑复原图 软件开发中的焦油坑 “史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。 上帝见证着恐龙、剑齿虎在焦油中的挣扎。它们挣扎的越是猛烈,焦油 越是缠的越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束 缚,它们最后都沉到了坑底。” ——Brooks 大型的系统开发类经常遇到焦油坑! “表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被 解决,但是当它们相互纠缠和积累在一起的时候,团队的行动就会变得 越来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且很难看 清问题的本质。” ——Brooks 软件开发中的焦油坑 Windows NT 5.0(即windows 2000) 时间: 计划开发时间:3年 实际开发时间:5年 公布数据: 程序员人数:5,000人 代码行数:35,000,000 行代码 开发时间:5年 每位程序员每年生产多少行代码? 软件开发中的焦油坑 每位程序员每年生产多少行代码? 以最不幸的情况来估计,每行代码都需要自己编写,得到结果:35,000,000 行/(5000人*5年) = 1400行/人.年。 这个效率远远低于一名正常程序员的产出量。 两种可能: (1)微软雇佣了5000名不合格的程序员去开发windows NT 5.0 (2)开发一个大规模的程序系统产品远难于堆砌出单一的程序。 作者目的:尽可能地帮助大型系统开发人员走出焦油 坑 焦油坑之一:进度滞后 进度滞后的原因 乐观主义的盛行(软件开发是
原创力文档


文档评论(0)