教学目标、内容及综合汇编

上传人:命****币 文档编号:113573593 上传时间:2019-11-09 格式:PPT 页数:67 大小:392.50KB
返回 下载 相关 举报
教学目标、内容及综合汇编_第1页
第1页 / 共67页
教学目标、内容及综合汇编_第2页
第2页 / 共67页
教学目标、内容及综合汇编_第3页
第3页 / 共67页
教学目标、内容及综合汇编_第4页
第4页 / 共67页
教学目标、内容及综合汇编_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《教学目标、内容及综合汇编》由会员分享,可在线阅读,更多相关《教学目标、内容及综合汇编(67页珍藏版)》请在金锄头文库上搜索。

1、第 2 页,教学目标、内容,了解面向对象程序设计的基本概念 了解面向对象程序设计的特点,第 3 页,什么是面向对象方法? 结构化方法怎么啦? 先从起因说起,第 4 页,一、面向对象的基本概念,“面向对象“简称为“OO”。这是目前计算机业界使用的高频词。“OO”代表着一种新的思维方式,代表着一种新的程序设计方法的潮流。 什么是OO方法?什么是OOP?为什么人们要选择它?,第 5 页,1、传统方法学的问题,传统的程序设计方法结构化程序设计方法对“程序开发”实现软件开发工程化曾经起到了重要的促进作用,部分地缓解了软件危机,用传统方法学成功的指导软件开发的范例很多。 但是,传统方法学并不能完全消除软件

2、危机。方法学本身还存在不可克服的问题。,第 6 页,传统程序设计方法 存在的问题,生产率提高的幅度远不能满足需要 软件重用程度很低 软件维护困难 软件不能真正满足用户的需要,第 7 页,生产率提高的幅度 远不能满足需要,生命周期方法学强调需求分析的重要性,强调每个阶段结束之前必须进行严格的评审和质量把关,这确实加快了软件开发的速度。但所产生的开发率的提高,远远赶不上对软件产品需求率的增长。 据统计资料表明,从50年代到80年代的30年间,美国的软件生产率翻了两翻。但社会对软件的需求每年以两位数字的百分比在增长。软件的开发,已成为影响计算机应用的巨大桎梏和瓶颈。,第 8 页,软件重用程度很低,“

3、重用”也称“再用”或“复用”。显然,软件重用是节约人力,提高软件生产率的重要途径。 传统的程序设计方法没能很好地解决软件重用问题。建立标准函数库和子程序库是人们为追求提高软件的可重用性做出的尝试。但事实证明,标准函数库和子程序库只是对建立在数学模型基础上的应用问题有可重用的功效,而对其它应用问题则不行。 对于传统的SA-SD-SP技术而言,思维成果的可重用性很差。,第 9 页,软件维护困难,按生命周期方法学开发出的软件,维护成本很高,据统计数据表明,软件维护的生产率比软件开发的生产率低几十倍。 80年代,美国一年花费的软件维护费用高达300多亿美元。 90年代,软件维护费用占系统研制、开发总费

4、用的70%80%。,第 10 页,软件不能真正满足用户的需要,实践表明,用传统方法开发的大型应用系统往往不能真正满足用户的需要。在美国,开发出的系统中: 符合用户需要并顺利投入使用的系统仅占总数的1/4; 中途夭折的系统占1/4; 将近1/2的系统,虽然完成了开发过程,但并未被用户采用或并未被长期使用。 还表现在: 开发出的软件系统与用户预期的系统不一致,不能满足用户的需要。 所开发出的系统不能适应用户经常变化的情况,系统的稳定性和可扩充性不能满足要求。,第 11 页,2.出现问题的原因,僵化的瀑布模型 结构化技术的缺点,第 12 页,僵化的瀑布模型,瀑布模型生存周期的各个阶段之间存在着严重的

5、顺序性和依赖性。 但实践证明,在系统建立起来之前,很难仅仅依靠分析就确定出一套完整、准确、一致、有效的应用需求。更何况预先需求的方法,也不能适应用户需求不断变化的情况。具体表现在: 某些系统需求是模糊的 项目参与者之间存在通信鸿沟 预先定义的系统可能是过时的,第 13 页,某些系统需求是模糊的,实际情况是: a.有的用户有在计算机上实际使用类似软件的工作经验,能够预先精确地提出全部系统需求。例如,OS类的系统软件、导弹控制系统类的控制软件、图像处理软件、科学计算等软件。 b.但对更多的应用系统,例如,MIS、OA之类的数据处理系统,其需求往往是很难预先准确地指出。 许多用户对他们的需求最初只是

6、模糊笼统的概念,显然让其准确无误地描述出来是不切合实际的。,第 14 页,项目参与者之间存在 通信鸿沟,由于没有共同语言,因此,双方很难作到完全沟通和相互理解,在需求分析阶段定义的用户需求常常是不完成和不准确的。 传统的定义需求的方法假设利用需求规格说明书之类的文档,就可以进行清晰、准确及有效的沟通。但一般来说,文档本质上被动、静止的通信工具,利用它往往很难准确地描述一个动态系统。因此,即使用户同意了需求规格说明书,也并不能保证根据这份说明书开发出来的软件系统就能真正满足用户的需要。,第 15 页,预先定义的系统 可能是过时的,目前,开发软件的生产率仍然很低,一个规模较大的软件其开发时间往往需

7、要较长时间。随时间的推移,用户需求可能有较大的不同。按预先指定的需求开发软件,当软件开发出来已经过时。 有时,按生命周期方法学在开发后期修改需求,往往要付出很高的代价,甚至根本不可能修改。,第 16 页,结构化技术的缺点,难于将一个复杂的问题化简、分解 设计方法主观随意性很大 很难修改和扩充,第 17 页,难于将一个复杂的问题 化简、分解,传统方法(结构化方法)的本质是“功能分解”,是围绕实现处理功能的“过程”来构造系统的。 然而,用户需求的变化大部分是针对功能的。因此,这种变化对于基于过程的设计来说就是灾难性的。用这种技术设计出的系统结构常常是不稳定的。,第 18 页,设计方法主观随意性很大

8、,结构化方法采用“自顶向下,逐步求精”进行分解。但因开发人员的经验、知识背景对问题认识的不同,而造成分解的随意性。 即使是对同一个系统,不同的人可能分解出不同的软件结构。 结构化技术在本质上具有冯诺依曼计算机体系结构的特点,把数据和操作作为分离的实体,一些具有可用价值的软件部件已和应用环境结合在一起,不可分割。因此,使得软件可重用性差。,第 19 页,很难修改和扩充,结构化技术明确地定义了目标系统的边界,软件通过界面与客观世界通信。由于开发的系统依赖于对系统边界的定义,因此,很难把这样的系统扩展到新的边界。 既这样的系统是很难修改和扩充的。,第 20 页,3、软件工程的新途径,如何克服传统方法

9、的缺点,在长期的工程实践中人们创造出许多新方法,其中包括: 快速原型法 面向对象方法 两种新途径的结合,第 21 页,两种类型的应用系统,在实际应用中,软件系统分为两大类: 预先指定的系统 用户驱动系统,第 22 页,预先指定的系统,这样的系统需求定义比较稳定,而且能够预先指定其功能。 例如,OS、传统工业生产过程控制系统、火箭发射跟踪控制系统、编译系统、DBMS之类的系统软件。 在这类软件的开发过程中,结构化技术至今仍然是最有效的开发方法之一。,第 23 页,用户驱动系统,这类系统需求是不稳定的,随时间的变化而改变。 例如,商业、行政领域的数据处理系统、决策支持系统、及其他一些面向终端用户的

10、系统。 这类系统必须具有快速、简洁地进行调整的特性,以便能及时根据用户需求的变化相应的修改系统。 传统开发方法和技术,对这类问题就不太适应了。,第 24 页,快速原型法,原型模型样品模式即通过样品不断改进,使得最后的产品就是用户所需要的。 快速原型法 用交互式的快速建立起来的原型取代形式的、僵化的大部头规格说明,用户通过在计算机上实际运行和试用原型系统而向开发者提供真实的反馈意见。 这种方法打破了传统方法自顶向下的开发模式,是目前比较流行的实用的开发模式。,第 25 页,快速原型法和传统方法,采用瀑布模型开发软件,对用户来说是“纸上谈兵”,用户无法知道或感触到实际需要的是一个什么样的系统。 而

11、用原型模型开发软件,是“真枪实弹”的在真实的系统上操作,用户在试用原型系统过程中,很容易判断该系统是否真正满足自己的业务需要。,第 26 页,为什么选择面向对象分析法?,更加自然 当系统不断地演化时,内部的功能会变化,但是对象本质不变 面向对象的系统更容易维护 面向对象分析法强调对象间定义良好的界面,第 27 页,4.面向对象方法的由来,面向对象(Object Orented)方法简称为OO方法。 “面向对象”技术追求的是软件系统对现实世界的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间。 面向对象的程序设计技术是以对象为基础,以消息驱动对象实现操作的一种全新的程序设计方法。

12、OO方法最早出现在挪威奥斯陆大学和挪威计算中心共同研制的仿真语言Simula67中。 1980年随美国加州的Xerox研究中心推出的SmallTalk 80语言,使得OO方法得以较完善地实现。 90年代初,OO方法和OOP语言开始成熟。 如今,OO方法将成为软件开发的首选方法而受到越来越多的程序设计人员的青睐。,第 28 页,什么是面向对象方法,传统的程序设计方法,是针对数学模型的,出发点是“怎样做(How)?”。 面向对象(OO)方法的出发点是:“是什么(What)?”。 现实世界是由物质组成的,人认识事物的规律:首先是认识问题域(Domain),它”是什么?“。当物体反映到头脑中后,变成意

13、识,得到抽象的概念,即所谓逻辑世界。 “对象”表现现实世界中的某个具体的事物。,第 29 页,面向对象方法产生的背景,软件的巨大作用 传统方法的历史功绩 传统的程序设计方法对”软件生产工程化“曾起过重要的促进作用,部分缓解了软件危机,用传统方法成功地指导软件开发的范例也很多。 软件危机 但是,传统的方法学并不能完全消除软件危机,用传统方法开发软件的生产率已远远不能满足要求,成为计算机科学发展的阻力。传统程序设计方法本身存在着不可克服的问题。 面向对象方法(OO) 就是在这种背景下诞生的,它使业界看到了成功的希望。同时也促使OO方法和技术的研究得到迅速发展。,第 30 页,现实世界与OO系统的对

14、应关系,OO方法是将现实世界抽象为“对象是什么?”,所以说,OO方法是更高一级的抽象。它和人认识现实世界的方法是一致的。,现实问题空间 面向对象解空间,物质: 一辆白色的自行车 意识: 自行车,具体事物: 一个对象自行车的实例 抽象概念: 自行车类,现实世界中事物分为两大部分:物质和意识;前者表示是具体的事物,后者描述的是某个抽象的概念。 现实世界中,“一辆白色自行车”是客观存在,是物质的;而“自行车”是人脑中一个抽象的概念,是主观意识; 在OO系统中自行车用“自行车类”来表达,“一辆白色自行车”是一个具体的对象,是自行车类的一个实例。,第 31 页,OO方法4要素,OO方法 = 对象 + 类

15、 + 继承性 + 消息机制 客观世界由各种对象组成。OO的软件系统也是由对象组成的;任何复杂的软件都是由简单的对象组合而成的; 所有对象都可以划分为不同的对象类;每个对象类都有自己特定的数据和方法; 对象类具有层次结构;上层的类称为”父类“或”基类“,下层的类称为”子类“或”派生类“。子类可以继承父类的特性及操作; 对象之间通过传递”消息“互相联系(消息机制),第 32 页,对象的成份,身份: 名字/身份号码 身分标识是对象所独有的,它能把一个对象和另一个区分开 状态: 属性 对象的状态包括了它所有的特征以及这些状态的当前值 行为: 操作/方法/通信 对象的协议定义了一个对象怎样行动及作出反应

16、,它包括了这个对象的所有的静态的和动态的视图。,名称 属性 操作,第 33 页,什么不能成为对象?,不能成为对象的个体包括: 规程或过程 (例如:打印) 微小的属性或 值 (例如, 兰色, 名字, 10公斤) 时间(例如:10 秒是持续时间的数量化),第 34 页,OO方法的主要优点,与人类习惯的思维方法一致 稳定性好 可重用性好 可维护性好,第 35 页,与人类习惯的思维方法一致,人的认识过程是从一般到特殊的渐进思维过程,是从“是什么?”开始,认识事物及其本质规律,主观随意性受到限制。 而传统方法是从“怎样做?”开始,到“做什么?”,反认识规律而动,主观随意性太多。,第 36 页,稳定性好,传统方法以“过程为中心”,完全基于功能的分析和分解。当功能需求发生变化时,将引起对软件结构整体的修改,这样的系统是不稳定的。 OO方法以“对象为中心”,它是以对象模拟问题领域中的实体,以对象间的联系描述实体间的联系。在分析、研究对象及其属性的过程中根据其内在的规律建立求解模型。基于这种方法建立的软件系统,不管功能需求如何变化,其内在规律不变

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

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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