- 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 软件危机及软件工程 1.2 对软件开发的基本认识 1.3 软件的固有复杂性 1.4 控制软件复杂性的基本方法 1.5 面向对象技术 1.6 面向对象领域中的基本概念 1.1 软件危机及软件工程 20世纪60年代,爆发软件危机。 大型软件特征: 开发周期长,开发费用高,软件质量难以保证,开发生产率低,复杂性远远超出人脑所能直接控制的程度。 美国丹佛新国际机场自动化行李系统,耗资1.93亿美元,原计划1993年万圣节前启用,到1994年6月,放弃使用该系统。 1.1 软件危机及软件工程 IBM公司开发的OS/360系统,耗资几千万美元,拖延了几年才交付使用。使用后每年都会发现相当多的错误,导致软件退化加剧。 1979年,美国财政部对政府投资开发的软件项目进行调查,结果发现:47%的资金花费在从未使用过的软件上,29%的资金花费在那些半途而废和交付后还需进一步完善的软件上。成功项目只占3%-4%。 1.1 软件危机及软件工程 严重程度:3/4的系统有运行问题。要么不像预料的那样起作用,要么根本就不能使用。 1968年,北大西洋公约组织科技委员会,在联邦德国Garmisch,召开了研讨会。五十名一流的计算机家、编程人员、工业界人士参加。 第一次提出“软件工程”概念。对大型软件的开发采取工程化作业。 软件开发史上重要的里程碑。 1.1 软件危机及软件工程 软件工程是一门建立在系统化、规范化、数量化等工程原则和方法上的,关于软件开发各个阶段的定义、任务和作用的工程学科。 软件工程包括两方面内容:软件开发技术,软件项目管理。 软件开发技术包括软件开发方法学、软件工具、软件工具环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划。 1.1 软件危机及软件工程 提出各式各样的软件开发方法学(参考Word文档): 瀑布式软件开发方法 快速原型方法 螺旋式软件开发方法 变换式软件开发方法 增量式软件开发方法 净室软件开发方法 喷泉式软件开发方法 1.2 对软件开发的基本认识 建筑工程流程 1.2 对软件开发的基本认识 软件工程流程 1.2 对软件开发的基本认识 软件系统的生命周期 经典的软件工程思想将软件开发过程分成以下5个阶段: 需求捕获阶段,系统分析与设计阶段,系统实现阶段,测试阶段,维护阶段 软件工程的3大目标: 软件的可维护性,软件的可复用性,软件开发的自动化。 1.2 对软件开发的基本认识 一个软件系统的开发,从两个方面刻画 软件开发过程方面: 软件需求,总体设计,详细设计,代码实现,测试,产品提交,后期维护,升级 各阶段所得到的产品(文档)在逻辑上相互一致,开发具有连续性 1.2 对软件开发的基本认识 一个软件系统的开发,从两个方面刻画 软件开发资源方面: 工作人员,硬件资源,软件资源 各种资源协调管理 1.2 对软件开发的基本认识 软件工程的目的 在规定的时间、规定的开发费用内,开发出满足用户需求,高质量的软件系统。 高质量含义——错误率低,好用,易用,可移植,易维护。 采用工程的概念、原理、技术、方法,把经过时间考验而证明有效的管理技术,和当前能够得到的最好的技术方法结合,以指导软件的开发和维护。 1.2 对软件开发的基本认识 软硬件特点比较: 表现形式不同。硬件是实体,软件是思想产物。 生产方式不同。硬件流水线生产,软件要人与人沟通。 产品要求不同。硬件可有容许的误差,软件不允许有误差。 维护方式不同。硬件有备用件,有故障的软件,其备份产品依然有故障。 1.3 软件的固有复杂性 软件复杂性的产生原因: 和计算机的体系结构有关。冯.诺依曼机,硬件简单,软件复杂。 相互联系的概念结构,很难用一组数学公式或物理定律来描述。 各元素之间的相互作用关系具有不确定性。 软件似乎可以随意扩充和修改。 软件系统的生命周期大于硬件系统的生命周期。 1.4 控制软件复杂性的基本方法 分解——大系统分解成若干个小系统。 抽象——抽取系统的基本特性,忽略非基本特性。 过程抽象——某个操作由一系列更低级的操作来完成。 数据抽象——定义数据类型及其上的操作。 模块化——高内聚,低偶合。 信息隐蔽——封装。把模块内的实现细节与外界隔离,用户只需要知道模块的功能。 1.5 面向对象技术 面向对象(object-oriented,OO) 体现了思想“分解,抽象,模块化,信息隐蔽” 传统的结构化方法: 着眼于一个系统需要什么样的方式和处理过程。对问题进行功能分解和再分解。功能映射。 面向对象方法: 对问题域进行自然分割,以更接近人类思维的方式建立问题域模型。对象映射。 面向对象=对象+类+继承+通信 1.5 面向对象技术 面向对象技
原创力文档


文档评论(0)