- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 . 1 关于软件 1 . 2 软件工程 1 . 3 软件工程基本活动 1 . 4 软件工程两大范型 1.1.1 软件及其特性 (1)复杂性。软件是一个庞大的逻辑系统,主要依靠人脑的“智力”构造出来。 (2)一致性。软件必须和运行软件的硬件保持一致,这是由软件对硬件的依赖所决定的。 (3)磨损和老化。与一般的器械设备不同,软件不存在磨损和老化的问题,但会退化,需要进行多次维护,如图1-1中的理想曲线是软件实际故障模型粗略的简化。 (4)易变性。软件在生产过程中,甚至在投入运行之后,也还可以改变。 (5)移植性。软件的运行受计算机系统的影响,可能导致软件在不同的计算机系统平台上出现不兼容的问题,这就涉及软件的可移植性。 (6)高成本。软件的开发是一个复杂的过程,因此其成本非常昂贵。 软件的演化大致经历了以下4个阶段。 第1阶段(程序设计阶段):从1946年到20世纪60年代初,计算机软件发展的初期,其主要特征是程序生产方式为个体手工方式。 第2阶段(程序系统阶段):从20世纪60年代初到70年代初,软件工程学科诞生。 第3阶段(软件工程阶段):从20世纪70年代中期至80年代中期,软件工程师把工程化的思想加入到软件的开发过程中,用工程化的原则、方法和标准开发和维护软件。 第4阶段(面向对象阶段):从20世纪80年代中期至今,面向对象的方法学受到人们的重视,从而促进了软件业的飞速发展,软件产业在世界经济中已经占有举足轻重的地位。 【案例1.1】 伦敦救护服务系统 伦敦救护服务系统包括以下3个组成部分。 (1)计算机辅助派遣系统:包括软硬件基础设施、事故记录保存系统、无线电通信系统和无线电系统接口。 (2)计算机地图显示系统:包括复杂地域地形分析软件。 (3)自动化车辆定位系统:具有车辆自动定位能力,以便以最短的时间到达指定位置,并跟踪分析系统的性能。系统包括无线电系统和移动数据终端。 1.2.1 软件工程基本原理 1.工程化的观点 软件工程化思想的核心是把软件看做是一个工程产品,这种产品需要通过需求分析、设计、实现、测试、管理和维护等几个阶段。 2.推迟实现的观点 推迟实现是软件方法学的一条基本指导思想,软件开发过程应该理性地“推迟实现”。即把逻辑设计与物理设计清楚地划分开,尽可能推迟软件的物理实现。 3.逐步求精的观点 逐步求精也称为“逐步细化”,是基于承认人类思维能力的局限性(认为人类思维能力仅有7±2信息量子的局限性)。 4.分解的观点 分解是把复杂问题趋于简单化处理的有效策略,论证分解即论证“分而治之”的有效性。 5.抽象的观点 抽象是把一些事物(状态或过程)中存在相似的方面(忽略它们的差异)概括成“共性”的。抽象的主要思想是抽取出事物的本质特性,而暂不考虑它们的细节,即抓“大”放“小”。 6.信息隐蔽的观点 科学而合理的分解,还表现在得到的是一个个最简单、最清晰的“独立”部分。即这些部分的交互接口简单而清晰,不仅便于维护,而且利于复用。信息隐蔽是指“局部化”的信息(关系密切的软件元素,如实现过程、数据等),对于不需要了解这些信息的其他“局部”来说是不可访问(隐蔽)的。 7.质量保证的观点 质量保证是为了保证产品和服务能够充分满足消费者要求的质量,从而进行有计划、有组织的活动。 1.分阶段的软件生存周期 Boehm 认为,在整个软件生命周期中应指定并严格执行6类计划,即项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计划。 2.坚持进行阶段评审 统计结果显示,在软件生命周期各阶段中,编码阶段之前的错误约占63%,而编码错 误仅占37%。并且错误发现得越晚,更正错误所付出的代价就越高,有时要增长2~3个数量级,甚至更高。 3.实行严格的产品控制 改动需求是让开发人员很头疼的一件事,由实践可知,需求的改动往往是不可避免的,这就要求开发人员采用科学的产品控制技术顺应这种需求。 4.采用现代程序设计技术 采用先进的程序涉及技术既可以提高软件开发与维护的效率,又可以提高软件的质量,还可以减少维护的成本。 5.明确责任 软件是一种逻辑产品。软件开发小组的工作进展情况可见性差,难以评价和管理。 6.开发人员应少而精 开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。 7.不断改进开发过程 在软件的工程化生产中,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。 在软件危机相当严重的背景下,软件工程产生了。在引入工程化的思想后,人们总结出导致软件危机的原因并相应提出了解决的对策。 如果在软件开发的初期阶段需求提得不够明确,或是未能得到确切的表达,软件开发工作开始后,工作人员又不和客户及时地交换意见,就有可能导
文档评论(0)