- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机等级考试 软件工程笔记
软 件 工 程
5.1软件危机和软件工程
5.1.1软件危机
一、产生软件危机的历史背景
1.计算机系统发展的早期(60年代中期以前)
个体化的软件环境:软件规模小,编写者和使用者往往是同一个人,除程序清单外,无其它文档资料。
2.计算机系统发展的第2代时期(60年代中期到70年代)
软件作坊:比较广泛使用产品软件,仍沿用个体化开发方法。软件维护工作很难进行,甚至不可维护(不能修改运行时发现的错误,不能适应新的硬件环境)由于软件的不可维护,而导致了软件危机。
3.软件工程学诞生(1968年)
北大西洋公约组织的计算机科学家,在联邦德国召开国际会议,讨论软件危机问题。正式提出软件工程这个名词──新兴工程学诞生了。
二、软件危机的内涵:
1.软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是两个方面的问题:
如何开发软件──怎样满足对软件日益增长的需求
如何维护软件──数量不断膨胀的已有软件
2.软件危机的内涵:
(1)软件开发成本和进度的估计常常很不准确
(2)用户对已完成的软件系统不满意的现象经常发生
(3)软件产品的质量往往靠不住
(4)软件常常是不可维护的
(5)软件通常没有适当的文档资料
(6)软件成本在计算机系统总成本中所占的比例逐年上升
(7)软件开发生产率提高的速度远远跟不上计算机应用迅速及深入普及的速度
三、产生软件危机的原因:
1. 软件本身的特点:
规模庞大,开发软件不仅涉及许多技术问题(诸如分析方法,设计方法,形式说明方法,版本控制等);更重要的是必须有严格而科学的管理。
2. 软件人员的主观原因:
开发与维护的方法不正确。早期软件开发个体化。至今,忽视软件需求分析的重要性,轻视维护。(切记:要充分、完整、准确地认识用户的要求,不要匆忙着手编写程序。要做大量深入细致的调查研究工作,反复多次地与用户交流信息,准确具体了解用户的要求。)
四、解决软件危机的途径:
1.推广使用在实践中总结出来的开发软件的成功的技术和方法
2.研究、探索更好更有效的技术和方法
3.开发和使用更好的软件工具
4.有必要的组织管理措施
5.1.2软件工程的基本原理
一、基本概念:
1.软件:软件是程序、数据以及开发、使用和维护程序需要的所有文档。
2.软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
二、软件工程基本原理:
1. 软件工程的7条基本原理:
(1)用分阶段的生命周期计划严格管理
应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。(Boehm认为应该严格执行六类计划:项目概要计划;里程碑计划;项目控制计划;产品控制计划;验证计划;运行维护计划。)
(2)坚持进行阶段评审
软件的质量保证工作不能等到编码阶段结束之后再进行。大部分错误是编码之前造成的:根据Boehm等的统计设计错误占软件错误的63%,编码错误仅占37%。错误发现与改正得越晚,所付出的代价也越高。
(3)实行严格的产品控制
当需求改变时,必须实行严格的产品控制,其中主要是实行基准配置管理。一切有关修改软件的建议,特别是涉及到基准配置的修改建议,都必须按照严格的规定进行评审,获得批准后才能实施修改。(基准配置管理也称为变动控制)
(4)采用现代程序设计技术
采用先进的技术既可以提高软件开发的效率,又可提高软件维护的效率。60年代末提出结构程序设计技术------结构分析(SA)与结构设计(SD)。80年代末提出面向对象的技术。
(5)结果应能清楚地审查
软件开发人员工作进展情况可见性差,难以准确度量,难于评价和管理。应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得结果能够清楚地审查。
(6)开发小组的人员应该少而精
开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。小组人员增加,交流情况和讨论问题而造成的通讯开销也急剧增加,人数为N,可能的通讯路径有N(N-1)。
(7)承认不断改进软件工程实践的必要性
不仅要积极主动的采纳新的软件技术,而且要不断总结经验。
2. 理解软件工程的基本原理
(1)强调使用生存周期方法学:
生存周期方法学,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生把软件生存的漫长周期依次划分为若干阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。
软件方法论:开发软件时从对任务的抽象逻辑分析开始,一个阶段,一个阶段地进行开发。前一个阶段任务的完成是下一个阶段任务的前提和基础。
(2)强调使用结构
原创力文档


文档评论(0)