计算机教学 实验中心 第17单元 面向对象方法 计算机软件基础 The software basic of computer 主讲;刘志强
主讲:刘志强 计算机教学 实验中心 第17单元 面向对象方法 计算机软件基础 The software basic of computer
教学目标、内容 了解面向对象程序设计的基本概念 了解面向对象程序设计的特点 第2页
第 2 页 教学目标、内容 了解面向对象程序设计的基本概念 了解面向对象程序设计的特点
本单元涉及内容 第11章面向对象的软件开发方法 11.1面向对象方法概述 P325P333 第3页
第 3 页 本单元涉及内容 第11章 面向对象的软件开发方法 11.1 面向对象方法概述 P325 ~ P333
面向对象的基本概念 “面向对象“简称为”OO“。这 是目前计算机业界使用的高频 词。”00“代表着一种新的思 维方式,代表着一种新的程序 设计方法的潮流。 什么是0O方法?什么是OOP? 为什么人们要选择它? 第4页
第 4 页 一、面向对象的基本概念 “面向对象“简称为”OO“ 。这 是目前计算机业界使用的高频 词。 ”OO“代表着一种新的思 维方式,代表着一种新的程序 设计方法的潮流。 什么是OO方法?什么是OOP? 为什么人们要选择它?
面向对象方法的由来 面向对象(0 bject Orented)方法简称为00方法。 “面向对象”技术追求的是软件系统对现实廿界的直 接模拟,尽量实现将现实世界中的事物直接映射到软 件系统的解空间。 面向对象的程序设计技术是以对象为基础,以消息驱 动对象实现操作的一种全新的程序设计方法。 00方法最早出现在挪威奥斯陆大学和挪威计算中心共 同研制的仿真语言 Simula67中。 1980年随美国加州的 Xerox研究中心推出的 Smalltalk 80语言,使得00方法得以较完善地实现。 90年代初,00方法和00P语言开始成熟。 到2000年,00方法将成为软件开发的首选方法而受到 越来越多的程序设计人员的青睐。 第5页
第 5 页 面向对象方法的由来 面向对象(Object Orented)方法简称为OO方法。 “面向对象”技术追求的是软件系统对现实世界的直 接模拟,尽量实现将现实世界中的事物直接映射到软 件系统的解空间。 面向对象的程序设计技术是以对象为基础,以消息驱 动对象实现操作的一种全新的程序设计方法。 OO方法最早出现在挪威奥斯陆大学和挪威计算中心共 同研制的仿真语言Simula67中。 1980年随美国加州的Xerox研究中心推出的SmallTalk 80语言,使得OO方法得以较完善地实现。 90年代初,OO方法和OOP语言开始成熟。 到2000年,OO方法将成为软件开发的首选方法而受到 越来越多的程序设计人员的青睐
什么是面向对象方法 传统的程序设计方法,不论是需求分析,还是系统设计, 都是针对数学模型的,出发点是“怎样做(How)?“, 即用计算机求解这个实际问题应该”怎样做?“。从实际 问题到求解模型(数学模型)的抽象都是围绕”怎样做? “去进行的。 现实世界是由物质组成的,物体的形式是多样化的,这就 是问题域( Domain)。人认识事物的规律:首先是认识这 个问题域,它”是什么?“。当物体反映到头脑中后,变 成意识,得到抽象的概念,及所谓逻辑世界。 逻辑世界是由对象组成的。对象在具体的逻辑世界中担当 定的角色,并完成一定的功能(动作);对象有自己的 属性和动作。”对象“表现现实世界中的某个具体的事物。 面向对象(00)方法的出发点是:”是什么(What)?“ 即要求解的实际问题,它到底”是什么?“。 第6页
第 6 页 什么是面向对象方法 传统的程序设计方法,不论是需求分析,还是系统设计, 都是针对数学模型的,出发点是“怎样做(How)?“ , 即用计算机求解这个实际问题应该”怎样做?“。从实际 问题到求解模型(数学模型)的抽象都是围绕”怎样做? “去进行的。 现实世界是由物质组成的,物体的形式是多样化的,这就 是问题域(Domain)。人认识事物的规律:首先是认识这 个问题域,它”是什么?“。当物体反映到头脑中后,变 成意识,得到抽象的概念,及所谓逻辑世界。 逻辑世界是由对象组成的。对象在具体的逻辑世界中担当 一定的角色,并完成一定的功能(动作);对象有自己的 属性和动作。”对象“表现现实世界中的某个具体的事物。 面向对象(OO)方法的出发点是:”是什么(What)?“ , 即要求解的实际问题,它到底”是什么?“
面向对象方法产生的背景 软件的巨大作用计算机技术的发展,极大推动了社会的 发展。而社会的发展又给计算机科学提出了新的要求。 计算机科学只有不断进行自身提高和完善,才能适应不 断进步的社会生产力的需要。 传统方法的历史功绩传统的程序设计方法对”软件生产 工程化“曾起过重要的促进作用,部分缓解了软件危机, 用传统方法成功地指导软件开发的范例也很多。 软件危机但是,传统的方法学并不能完全消除软件危机, 用传统方法开发软件的生产率已远远不能满足要求,成 为计算机科学发展的阻力。传统程序设计方法本身存在 着不可克服的问题。 面向对象方法(00)就是在这种背景下诞生的,它使业 界看到了成功的希望。同时也促使00方法和技术的研究 得到迅速发展。 第7页
第 7 页 面向对象方法产生的背景 软件的巨大作用 计算机技术的发展,极大推动了社会的 发展。而社会的发展又给计算机科学提出了新的要求。 计算机科学只有不断进行自身提高和完善,才能适应不 断进步的社会生产力的需要。 传统方法的历史功绩 传统的程序设计方法对”软件生产 工程化“曾起过重要的促进作用,部分缓解了软件危机, 用传统方法成功地指导软件开发的范例也很多。 软件危机 但是,传统的方法学并不能完全消除软件危机, 用传统方法开发软件的生产率已远远不能满足要求,成 为计算机科学发展的阻力。传统程序设计方法本身存在 着不可克服的问题。 面向对象方法(OO) 就是在这种背景下诞生的,它使业 界看到了成功的希望。同时也促使OO方法和技术的研究 得到迅速发展
传统程序设计方法存在的问题 生产率提高的幅度远不能满足需要 软件重用程度很低 软件维护困难 软件不能真正满足用户的需要 第8页
第 8 页 传统程序设计方法存在的问题 生产率提高的幅度远不能满足需要 软件重用程度很低 软件维护困难 软件不能真正满足用户的需要
生产率提高的幅度远不能满足需要 生命周期方法学强调需求分析的重要性,强调 每个阶段结束之前必须进行严格的评审和质量 把关,这确实加快了软件开发的速度。但所, 生的开发率的提高,远远赶不上对软件产品需 求率的增长。 据统计资料表明,从50年代到80年代的30年间, 美国的软件生产率翻了两翻。但社会对软件的 帚求每年以两位数字的百分比在增长。软件的 开发,已成为影响计算机应用的巨大桎梏和瓶 颈。 第9页
第 9 页 生产率提高的幅度远不能满足需要 生命周期方法学强调需求分析的重要性,强调 每个阶段结束之前必须进行严格的评审和质量 把关,这确实加快了软件开发的速度。但所产 生的开发率的提高,远远赶不上对软件产品需 求率的增长。 据统计资料表明,从50年代到80年代的30年间, 美国的软件生产率翻了两翻。但社会对软件的 需求每年以两位数字的百分比在增长。软件的 开发,已成为影响计算机应用的巨大桎梏和瓶 颈
软件重用程度很低 重用”也称“再用”或“复用”,是指同一事物 不经修改或稍加修改就可以多次重复使用。显然, 软件重用是节约人力,提高软件生产率的重要途径。 传统的程序设计方法没能很好地解决软件重用问题。 建立标准函数库和子程序库是人们为追求提高软件 的可重用性做出的尝试。但事实证明,标准函数库 和子程序库只是对建立在数学模型基础上的应用问 题有可重用的功效,而对其它应用问题则不行。 对于传统的SA-SD-SP技术而言,思维成果的可重 用性很差。 第10页
第 10 页 软件重用程度很低 “重用”也称“再用”或“复用” ,是指同一事物 不经修改或稍加修改就可以多次重复使用。显然, 软件重用是节约人力,提高软件生产率的重要途径。 传统的程序设计方法没能很好地解决软件重用问题。 建立标准函数库和子程序库是人们为追求提高软件 的可重用性做出的尝试。但事实证明,标准函数库 和子程序库只是对建立在数学模型基础上的应用问 题有可重用的功效,而对其它应用问题则不行。 对于传统的SA-SD-SP技术而言,思维成果的可重 用性很差