第01章 面向对象技术概述ppt课件

上传人:我*** 文档编号:149212699 上传时间:2020-10-25 格式:PPT 页数:50 大小:1.01MB
返回 下载 相关 举报
第01章 面向对象技术概述ppt课件_第1页
第1页 / 共50页
第01章 面向对象技术概述ppt课件_第2页
第2页 / 共50页
第01章 面向对象技术概述ppt课件_第3页
第3页 / 共50页
第01章 面向对象技术概述ppt课件_第4页
第4页 / 共50页
第01章 面向对象技术概述ppt课件_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第01章 面向对象技术概述ppt课件》由会员分享,可在线阅读,更多相关《第01章 面向对象技术概述ppt课件(50页珍藏版)》请在金锄头文库上搜索。

1、第1章 面向对象技术概述,UML与软件建模,2,1.1 背景 1.2 面向对象技术 1.3 建模,第1章 面向对象技术概述,UML与软件建模,3,1.1.1 软件危机与软件工程 1.1.2 软件开发的基本认识 1.1.3 软件的复杂性,第1章面向对象技术概述,1.1 背景介绍,4,1.1.1 软件危机与软件工程,软件危机 周期长 费用高昂 效率低下 复杂化 软件工程 由NATO于1968年首次提出 摆脱软件危机,5,1.1.2 软件开发的基本认识,软件开发的现状 软件工程学科不断发展 软件危机仍然存在 中小型软件开发较为成熟,大型软件存在问题 常见软件开发方法 瀑布模型 快速原型 螺旋模型 极

2、限软件开发,6,1.1.2 软件开发的基本认识,大型软件系统的特点 开发代价高、时间长、参与人员多、软件生命周期长。 软件系统开发的两个方面 软件开发过程 各个阶段工作 软件开发中资源的协调和管理 多方资源的协调管理 软件工程的目的 在规定的时间、规定的费用内开发出满足用户需求的高质量的软件系统。,7,1.1.2 软件开发的基本认识,软件产品与硬件产品的区别 表现形式不同 生产方式不同 产品需求不同 维护方式不同,8,1.1.3 软件固有的复杂性,软件开发的复杂性与困难性是由于软件的特点造成的,软件的复杂性是固有的。 软件复杂性的原因 现有硬件系统(冯氏体系)的体系结构造成的 软件开发是智力活

3、动,很难描述软件的本质规律或特征 软件系统中各元素之间的相互作用关系具有不确定性 软件系统需求的变化性 软件生命周期中需要适应不同的硬件环境,9,控制软件复杂性的基本方法,分解,即“分而治之”或“各个击破” 抽象,抽取系统本质特征,忽略非基本特征 过程抽象 数据抽象 模块化,基本要求是“高内聚、低耦合” 信息隐蔽,也称封装,10,1.1 背景 1.2 面向对象技术 1.3 建模,第1章 面向对象技术概述,UML与软件建模,11,1.2 面向对象技术,Object-Oriented的基本思想 对问题域进行自然分割,以更接近人类思维的方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,

4、具有更好的可维护性,能适应用户需求的变化。 面向对象技术的优点 稳定性较高 易于理解 适应性较好 可靠性较高 各个开发阶段之间过渡平滑,12,1.2.1 基本概念 1.2.2 面向对象技术发展 1.2.3 面向对象技术 VS 结构化,第1章面向对象技术概述,1.2 面向对象技术,13,1.2.1 面向对象领域的基本概念,OO技术领域存在一些基本术语和概念,需要掌握和理解。,14,对象和实例,对象(Object) 它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位。 对象包括:属性和方法 对象之间通过消息进行通信。 实例(Instance) 它与对象的概念很类似,但其含义更广泛一些。,

5、15,类,类(Class) 它是具有相同属性和方法的一组对象的集合 为某类对象提供统一的描述 类是静态概念 类的实例就是对象,16,封装,封装(Encapsulation) 就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 封装使对象具有2个部分:接口部分和实现部分 封装提供2种保护 保护对象,防止直接访问对象内部细节 保护客户,防止对象实现部分的变化影响客户对象。,17,继承,继承(Inheritance) 它使子类可以继承父类的属性和方法 继承增加了软件重用的机会 继承中的覆盖和重载 Override与Overload 单继承与多继承,18,单继承,多继承,19

6、,多态,多态(polymorphism) 在OO技术中,多态指使一个实体在不同上下文条件下具有不同意义或用法的能力。 运行时问题 与多态有关的概念 继承 覆盖 动态绑定 向上转型(指派),20,消息,消息(Message) 是指向对象发出的服务请求 包括:提供服务的对象的标识、服务标识、输入信息和回答信息等 对象间的消息传递是OO方法的基本原则 消息包括 同步消息,请求者需要等待响应者返回 异步消息,请求者不需要等待响应者返回,发出消息后可以继续自己的后续工作,21,面向对象技术内容,面向对象分析 面向对象模型设计 面向对象程序设计 面向对象测试 面向对象维护,22,1.2.1 基本概念 1.

7、2.2 面向对象技术发展 1.2.3 面向对象技术 VS 结构化,第1章面向对象技术概述,1.2 面向对象技术,23,1.2.2 面向对象技术发展-1,里程碑1:Simula 67 (1962-1967,挪威) Ole-Johan Dahl和Kristen Nygaard 在挪威奥斯陆国家计算中心(NCC) 设计实现。公认的世界上第一种面向对象语言。 体现基本思想,24,面向对象技术发展-2,里程碑2:Smalltalk (1970,施乐保罗阿托) Alan Kay设计实现 第一个成熟的面向对象语言,为开发GUI而设计 实用化,预言历史的最佳方式是创造历史 - Alan Kay,25,面向对象

8、技术发展-3,里程碑3:ADT, Ada 83, 基于对象(1977-1983) 编程理论界在结构化运动中提出ADT思想,以N. Wirth和Liskov为代表 美国防部军用开发语言评选,Ada被指定为强制性军用编程语言,实际上已经进入“基于对象”阶段,Ada Lovelace是英国著名诗人拜伦的女儿,世界上第一个程序员。Ada语言以她的名字命名,26,面向对象技术发展-4,里程碑4:C+ (1982,贝尔实验室) 第一个被工业界广泛接受的支持面向对象能力的语言,创造者Bjarne Stroustrup(本贾尼斯特劳斯特卢普) 动机是给C添加一些Simula特性,以完成当时刚刚出现的大规模复杂

9、任务 商业化,Bjarne Stroustrup,27,面向对象技术发展-5,里程碑5:MS-Windows (1985,微软) 第一个被广泛使用的GUI系统软件,它使面向对象技术的使用不可阻遏。,1985年出品的Windows 1.0产品,1987年出品的Windows 2.0界面,28,面向对象技术发展-6,里程碑6:Booch Method (1991,G. Booch) 第一个被广泛接受使用的面向对象建模方法,Booch代表作的第三版,29,面向对象技术发展-7,里程碑7:设计模式 (1995,GoF) 掀起模式运动 23种设计模式 不会用设计模式的程序员,是低层次的软件人才,他们只会

10、写code罢了,设计模式(Design pattern): 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。,30,面向对象技术发展-8,里程碑8:Java语言推出 (1995,Sun) 被广泛使用的面向对象语言,J2EE是目前最成功的面向对象框架。,31,面向对象技术发展-9,里程碑9:UML被OMG接纳为标准(1997) 面向对象方法学之战结束,32,面向对象技术发展-10

11、,里程碑10: 微软.NET计划(2000) 图形界面 集成开发工具 快速开发 开发中小型系统的首选,33,面向对象技术发展-总结,60年代后期:Simul67,基本思想 70年代后期:Smalltalk80,实用化 80年代:理论基础,C+等,商业化 90年代:面向对象与设计方法学 B.H. Sellers等提出喷泉模型 G. Booch提出面向对象开发方法等 P. Coad和E.Yourdon提出OOA和OOD Jacobson提出OOSE 1997年:UML,面向对象程序设计语言,“方法大战”,34,面向对象技术发展-现状,现状 OO成为最重要的软件开发方法 OO在GUI、模拟系统、游戏

12、开发、应用框架、软件构件化领域大显身手 Java、UML 与 RUP 构件技术 (CORBA、COM、EJB、.Net) 类库与设计模式,35,面向对象技术发展-未来,未来 OO的形式化与自动化 OO构件、设计模式的丰富将进一步提高软件开发的效率和质量 软件开发人员必须从 Think Procedurely转变为 Think Object-Orientedly,36,1.2.1 基本概念 1.2.2 面向对象技术发展 1.2.3 面向对象技术 VS 结构化,第1章面向对象技术概述,1.2 面向对象技术,37,1.2.3 面向对象 VS 结构化-1,扬弃,不是否定,38,面向对象 VS 结构化-

13、2,结构化程序设计 面向对象程序设计,39,面向对象 VS 结构化-3,结构化方法(SA+SD+SP),面向对象的方法,问 题 域,问 题 域,结构化分析,分析与设计的鸿沟,结构化设计,结构化编程,如C语言,需求工程,OOA&D,OOP,如Java语言,测 试,计 算 机 系 统,测 试,计 算 机 系 统,自然语言,编程语言,自然语言,OO编程语言,数据流图数据字典,模块和过程,需求模型,对象模型,OO方法,OO建模语言,40,面向对象 VS 结构化-4,41,归纳总结,结构化设计用算法刻画数据的递归关系;而面向对象思想直接用对象表达递归关系“模拟现实世界” 结构化设计中,数据是死的,全部依

14、赖算法操作;而面向对象中,数据是活的,所谓的smart data 结构化设计更像是一个人在解决所有的问题;而面向对象设计更像是一个团队的分工协作,42,体会,使用得当,面向对象设计具有更大的灵活性,更好的模块化,可以进行更大规模的设计 但同时,面向对象设计和开发的难度更大,因为除了要考虑算法之外,还要考虑对现实世界的模拟、对象的识别和职责分配等等一系列问题 优秀的面向对象设计需要学习更多知识和技术,掌握一系列设计原则和模式 UML图形化工具有助于表达和交流设计思想;有可能做到“无代码编程”。,43,体会(2),既然OO更难,为什么要用它? 大规模程序设计 灵活多变的系统需求 技术进步的必经之路

15、 保持冷静:确实有很多项目不适合用OO,传统的结构化设计仍然很有意义。 本课程的重点是UML、面向对象分析和设计,以及软件建模。,44,1.1 背景 1.2 面向对象技术 1.3 建模,第1章 面向对象技术概述,UML及软件建模,45,什么是建模?,建模就是认识现实世界,客观世界,主观世界,认识世界,改造世界,世界是什么样的呢?,1.3 建模,46,模型因人而异,不同类型的人有不同的世界观,持不同的世界观就会得到对现实世界的不同认识 建立不同的模型,模块,函数,功能,类,关联,对象,47,模型体现现实世界,只存在同一个现实世界,模型没有严格对错之分、只有符合建模人目的多少之分,48,OO、UML与软件建模,建模是最终目的 OO是一种建模理论 UML是一种体现OO的建模语言,是将OO理论转化为实践的工具,49,小结,1.1 背景 1.1.1 软件危机与软件工程 1.1.2 软件开发的基本认识 1.1.3 软件的复杂性 1.2 面向对象技术 ! 1.2.1 基本概述 1.2.2 面向对象技术发展 ! 1.2.3 面向对象VS结构化 1.3 建模,第1章 面向对象技术概述,50,面向对象实例,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号