没有合适的资源?快使用搜索试试~ 我知道了~
没有银弹软件工程中的根本和次要问题.doc
需积分: 9 1 下载量 183 浏览量
2022-10-16
10:29:00
上传
评论
收藏 45KB DOC 举报
温馨提示
试读
9页
没有银弹软件工程中的根本和次要问题.doc
资源详情
资源评论
资源推荐
没有银弹软件工程中的根本和次要问题
摘要
所有软件活动包括根本任务——打造由抽象软件实体构成的复杂概念结构,次要任务-—使用编程语言表达
这些抽象实体,在空间和时间限制内将它们映射成机器语言。软件生产率在近年内取得的巨大进步来自对后天障
碍的突破,例如硬件的限制、笨拙的编程语言、机器时间的缺乏等等。这些障碍使次要任务实施起来异常艰难,
相对必要任务而言,软件工程师在次要任务上花费了多少时间和精力?除非它占了所有工作的 9/10,否则即使全
部次要任务的时间缩减到零,也不会给生产率带来数量级上的提高。
因此,现在是关注软件任务中的必要活动的时候了,也就是那些和构造异常复杂的抽象概念结构有关的部分。
我建议:
� 仔细地进行市场调研,避免开发已上市的产品。
� 在获取和制订软件需求时,将快速原型开发作为迭代计划的一部分。
� 有机地更新软件,随着系统的运行、使用和测试,逐渐添加越来越多的功能。
� 不断挑选和培养杰出的概念设计人员.
介绍
在所有恐怖民间传说的妖怪中,最可怕的是人狼,因为它们可以完全出乎意料地从熟悉的面孔变成可怕的怪
物.为了对付人狼,我们在寻找可以消灭它们的银弹。
大家熟悉的软件项目具有一些人狼的特性(至少在非技术经理看来),常常看似简单明了的东西,却有可能
变成一个落后进度、超出预算、存在大量缺陷的怪物。因此,我们听到了近乎绝望的寻求银弹的呼唤,寻求一种
可以使软件成本像计算机硬件成本一样降低的尚方宝剑。
但是,我们看看近十年来的情况,没有银弹的踪迹。没有任何技术或管理上的进展,能够独立地许诺在生产率、
可靠性或简洁性上取得数量级的提高.本章中,我们试图通过分析软件问题的本质和很多候选银弹的特征,来探索
其原因。
不过,怀疑论者并不是悲观主义者.尽管我们没有看见令人惊异的突破,并认为这种银弹实际上是与软件的内
在特性相悖,不过还是出现了一些令人振奋的革新。这些方法的规范化、持续地开拓、发展和传播确实是可以在
将来使生产率产生数量级上的提高。虽然没有通天大道,但是路就在脚下。
解决管理灾难的第一步是将大块的“巨无霸理论"替换成“微生物理论”,它的每一步——希望的诞生,本身
就是对一蹴而就型解决方案的冲击.它告诉工作者进步是逐步取得的,伴随着辛勤的劳动,对规范化过程应进行
持续不懈的努力.由此,诞生了现在的软件工程。
是否一定那么困难呢?——根本困难
不仅仅是在目力所及的范围内,没有发现银弹,而且软件的特性本身也导致了不大可能有任何的发明创新
——能够像计算机硬件工业中的微电子器件、晶体管、大规模集成一样——提高软件的生产率、可靠性和简洁程
度.我们甚至不能期望每两年有一倍的增长。
首先,我们必须看到这样的畸形并不是由于软件发展得太慢,而是因为计算机硬件发展得太快。从人类文明
开始,没有任何其他产业技术的性价比,能在 30 年之内取得 6 个数量级的提高,也没有任何一个产业可以在性
能提高或者降低成本方面取得如此的进步.这些 进步来自计算机制造产业的转变,从装配工业转变成流水线工业。
其次,让我们通过观察预期的软件技术产业发展速度,来了解中间的困难.效仿亚里士多德,我将它们分成
根本的--软件特性中固有的困难,次要的-—出现在目前生产上的,但并非那些与生俱来的困难。
我们在下一章中讨论次要问题。首先,来关注内在、必要的问题.
一个相互牵制关联的概念结构,是软件实体必不可少的部分,它包括:数据集合、数据条目之间的关系、算
法、功能调用等等。这些要素本身是抽象的,体现在相同的概念构架中,可以存在不同的表现形式。尽管如此,它
仍然是内容丰富和高度精确的。
我认为软件开发中困难的部分是规格化、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼
真程度进行验证。当然,我们还是会犯一些语法错误,但是和绝大多数系统中的概念错误相比,它们是微不足道
的。
如果这是事实,那么软件开发总是非常困难的.天生就没有银弹。
让我们来考虑现代软件系统中这些无法规避的内在特性:复杂度、一致性、可变性和不可见性。
智慧安全方案
- 粉丝: 3497
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- NetOps-py通过sftp替换网络设备启动文件
- STM32单片机FPGA毕设电路原理论文报告任务驱动教学法在单片机课程教学中的应用
- STM32单片机FPGA毕设电路原理论文报告任务驱动法在单片机教学中的应用
- STM32单片机FPGA毕设电路原理论文报告人造金刚石压机智能化压力测控系统设计
- 以某列为依据匹配多项(Excel版)
- STM32单片机FPGA毕设电路原理论文报告人体短臂离心机实验台的显示控制系统
- STM32单片机FPGA毕设电路原理论文报告人工气候室监控系统的环境控制器研究
- STM32单片机FPGA毕设电路原理论文报告染整自动线张力控制系统的设计
- 数据挖掘与机器学习-实验
- 基于Linux系统Nginx的动态网站的LNMP环境源码包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0