13国外IT人员提高软件开发效率和效益的经验(精)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13.3充分认识软件开发的复杂性和风 险性
软件危机的主要表现
4. 软件常常是不可维护的。程序中的错误很难改正,实
际上不可能使这些程序适应新的硬件环境,也不能根据 用户的需求在原有程序中增加新的功能。 5. 软件通常没有适当的文档资料。软件不仅是程序,还 应该有一整套文档资料。这些文档资料是在软件开发过 程中产生出来的,而且应该是“最新的”(与代码完全 一致)。缺乏文档必然给软件的开发和维护带来许多严 重的困难和问题。 6. 软件成本在计算机系统总成本中所占比例逐年上升。 随着微电子技术的进步和生产自动化程度的提高,硬件 成本逐年下降,然而软件开发需要大量的人力,软件成 本随着通货膨胀以及软件规模和数量的不断扩大而逐年 上升。美国在1995年的调查表明,软件成本大约已占计 算机系统总成本的90%。
13.3充分认识软件开发的复杂性和风 险性 软件危机
Hale Waihona Puke Baidu为突出的例子是美国IBM公司于1963年~1966年开发
的IBM360系列机的操作系统。该软件系统花了大约5 000 人一年的工作量,最多时,有 1000人投入开发工作,写 出近100万行的源程序。尽管投入了这么多的人力和物力, 得到的结果却极其糟糕。据统计,这个操作系统每次发 行的新版本都是从前一版本中找出1000个程序错误而修 正的结果。可想而知,这样的软件质量糟到了什么地步。 难怪该项目的负责人F· D· 希罗克斯在总结该项目时无比 沉痛地说:“……正像一只逃亡的野兽落到泥潭中作垂 死挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾 难,……程序设计工作正像这样一个泥潭……一批批程 序员被迫在泥潭中拼命挣扎,……,谁也没有料到问题 竟会陷入这样的困境……。” IBM360操作系统的历史教 训已成为软件开发项目中的典型事例被记入历史史册。
软件危机
软件危机(Software Crisis) 是计算机软件在它的开发和维
护过程中所遇到的一系列严重问题。概括地说,主要包 含两方面的问题:如何开发软件,怎样满足对软件日益 增长的需求;如何维护数量不断膨胀的已有软件。 “软件危机”使得人们开始对软件及其特性进行更深一 步的研究,人们改变了早期对软件的不正确看法。早期 那些被认为是优秀的程序常常很难被别人看懂,通篇充 满了程序技巧。现在人们普遍认为优秀的程序除了功能 正确,性能优良之外,还应该容易看懂、容易使用、容 易修改和扩充。
13.8IT产品生产问题解决之途径
13.3充分认识软件开发的复杂性和风 险性
软件危机
如果开发的软件隐含错误,可靠性得不到保证,那么在
运行过程中很可能对整个系统造成十分严重的后果,轻 则影响到系统的正常工作,重则导致整个系统的瘫痪, 乃至造成无可挽回的恶性事故。如,银行的存款可能被 化为乌有,甚至弄成赤字;工厂的产品全部报废,导致 工厂破产。 1963年,美国用于控制火星探测器的计算机软件中的一 个“,”号被误写为“·”,而致使飞往火星的探测器发生 爆炸,造成高达数亿美元的损失。 为了克服这一危机,一方面需要对程序设计方法、程序 的正确性和软件的可靠性等问题进行系列的研究;另一 方面,也需要对软件的编制、测试、维护和管理的方法 进行研究,从而产生了程序设计方法学。
13.5软件开发的商务规则
商务规则是指从事经济活动所必须遵循的一 些规矩。 商务规则的意义 用例和商务规则 商务规则的对策
13.6IT软件开发人员怎样与客户合作
商务规则的寻找:与客户充分交流,合作建 模 积极寻找客户的商业赞助
13.7软件开发的团队规模问题
较小团队,适应性开发 优秀的人员,极高的工作效率 小型团队利于信息同步
国外IT人员提高软件开 发效率和效益的经验
IT经济学 第十三章
13.1寻找“钱包”最满和握有“棒球棒” 的项目支持者
钱包
棒球棒
项目管理者和项目支持者间的关系
13.2IT人员离不开培训和拓展的机会
项目管理的培训和咨询 软件开发组织的日常工作
有培训经验的人的重要性
13.3充分认识软件开发的复杂性和风 险性
13.3充分认识软件开发的复杂性和风 险性
影响因素众多:超过100个 软件项目开发效率和软件组织的工作效率变 化很大 具有重要影响的因素 有效的程序重复使用 良好的成本预算和时间安排
13.4如何离开软件开发的慢车道
具有消极影响的因素 软件开发过程中的严格程度:有正规的流程 规划以及严格执行
13.3充分认识软件开发的复杂性和风 险性
软件危机的现状 软件危机的出现,使得人们去寻找产生危机的内在 原因,发现其原因可归纳为两方面,一方面是由软 件生产本身存在着复杂性,另一方面却是与软件开 发所使用的方法和技术有关。 软件工程正是为克服软件危机而提出的一种概念, 并在实践中不断地探索它的原理,技术和方法。在 此过程中,人们研究和借鉴了工程学的某些原理和 方法,并形成了一门新的学科─软件工程学,但可 惜的是时至今日人们并没有完全克服软件危机。
13.3充分认识软件开发的复杂性和风 险性
软件危机的主要表现
1. 对软件开发成本和进度的估计常常很不准确。实际成本比估计成
本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几 年的现象并不罕见。这种现象降低了开发组织的信誉。为赶进度和 节约成本所采取的权宜之计往往又损害了软件产品的质量,从而不 可避免地引起用户的不满。 2. 用户对“已完成的”软件系统不满意的现象经常发生。软件开发 人员常常在对用户需求只有模糊的了解,甚至对所要解决的问题还 没有确切认识的情况下,就仓促上阵匆忙着手编写程序。软件开发 人员和用户之间的交流往往很不充分,“闭门造车”必然导致最终 产品不符合用户实际需要。 3. 软件产品的质量常常靠不住。软件可靠性和质量保证的确切定量 概念刚刚出现,软件质量保证技术(审查、复审和测试)还没有坚 持不懈地应用到软件开发的全过程中,这些都会导致软件产品发生 质量问题。