面向对象程序设计的基本概念和特点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 15 页
结构化技术的缺点
• 难于将一个复杂的问题化简、 分解
• 设计方法主观随意性很大 • 很难修改和扩充
第 16 页
难于将一个复杂的问题 化简、分解
• 传统方法(结构化方法)的本质是“功 能分解”,是围绕实现处理功能的“过 程”来构造系统的。
• 然而,用户需求的变化大部分是针对功 能的。因此,这种变化对于基于过程的 设计来说就是灾难性的。用这种技术设 计出的系统结构常常是不稳定的。
b.但对更多的应用系统,例如,MIS、OA 之类的数据处理系统,其需求往往是很 难预先准确地指出。
• 许多用户对他们的需求最初只是模糊笼
第 13 页
统的概念,显然让其准确无误地描述出
⑵项目参与者之间存在
• 由于没有共通同信语言鸿,沟因此,双方很难作到
完全沟通和相互理解,在需求分析阶段定 义的用户需求常常是不完成和不准确的。
第 17 页
设计方法主观随意性很大
• 结构化方法采用“自顶向下,逐步求精”进 行分解。但因开发人员的经验、知识背景对 问题认识的不同,而造成分解的随意性。
• 即使是对同一个系统,不同的人可能分解出 不同的软件结构。
• 结构化技术在本质上具有冯·诺依曼计算机 体系结构的特点,把数据和操作作为分离的 实体,一些具有可用价值的软件部件已和应
n软件维护困难
u 按生命周期方法学开发出的软件,维护成 本很高,据统计数据表明,软件维护的生 产率比软件开发的生产率低几十倍。
u 80年代,美国一年花费的软件维护费用高 达300多亿美元。
u 90年代,软件维护费用占系统研制、开发 总费用的70%~80%。
第9页
软件不能真正满足用户的需要
• 实践表明,用传统方法开发的大型应用系统 往往不能真正满足用户的需要。在美国,开 发出的系统中:
面向对象程序设计 的基本概念和特点
教学目标、内容
• 了解面向对象程序设计的基本概念 • 了解面向对象程序设计的特点
第2页
• 什么是面向对象方法? • 结构化方法怎么啦? • 先从起因说起……
第3页
一、面向对象的基本概念
• “面向对象“简称为“OO”。这是 目前计算机业界使用的高频词。 “ OO” 代 表 着 一 种 新 的 思 维 方 式 , 代表着一种新的程序设计方法的潮 流。
源自文库
⑶预先定义的系统 可能是过时的
• 目前,开发软件的生产率仍然很低, 一个规模较大的软件其开发时间往往 需要较长时间。随时间的推移,用户 需求可能有较大的不同。按预先指定 的需求开发软件,当软件开发出来已 经过时。
• 有时,按生命周期方法学在开发后期 修改需求,往往要付出很高的代价, 甚至根本不可能修改。
• 传统的定义需求的方法假设利用需求规格 说明书之类的文档,就可以进行清晰、准 确及有效的沟通。但一般来说,文档本质 上被动、静止的通信工具,利用它往往很 难准确地描述一个动态系统。因此,即使 用户同意了需求规格说明书,也并不能保 证根据这份说明书开发出来的软件系统就 能真正满足用户的需要。
第 14 页
第 18 页
很难修改和扩充
• 结构化技术明确地定义了目标系统的边界, 软件通过界面与客观世界通信。由于开发 的系统依赖于对系统边界的定义,因此, 很难把这样的系统扩展到新的边界。
• 既这样的系统是很难修改和扩充的。
第 19 页
3、软件工程的新途径
• 如何克服传统方法的缺点,在 长期的工程实践中人们创造出 许多新方法,其中包括: – 快速原型法 – 面向对象方法 – 两种新途径的结合
¨ 符合用户需要并顺利投入使用的系统仅占总数 的1/4;
¨ 中途夭折的系统占1/4; ¨ 将近1/2的系统,虽然完成了开发过程,但并未
被用户采用或并未被长期使用。
• 还表现在:
– 开发出的软件系统与用户预期的系统不一致, 不能满足用户的需要。
– 所开发出的系统不能适应用户经常变化的情况, 系统的稳定性和可扩充性不能满足要求。
• 什么是OO方法?什么是OOP?为什么 人们要选择它?
第4页
1、传统方法学的问题
• 传统的程序设计方法——结构化程序设 计方法对“程序开发”实现软件开发工 程化曾经起到了重要的促进作用,部分 地缓解了软件危机,用传统方法学成功 的指导软件开发的范例很多。
• 但是,传统方法学并不能完全消除软件 危机。方法学本身还存在不可克服的问 题。
u 传统的程序设计方法没能很好地解决软件 重用问题。建立标准函数库和子程序库是 人们为追求提高软件的可重用性做出的尝 试。但事实证明,标准函数库和子程序库 只是对建立在数学模型基础上的应用问题 有可重用的功效,而对其它应用问题则不 行。
u 对于传统的SA-SD-SP技术而言,思维成果 第 8的页可重用性很差。
第5页
传统程序设计方法 存在的问题
• 生产率提高的幅度远不能满足需要 • 软件重用程度很低 • 软件维护困难 • 软件不能真正满足用户的需要
第6页
生产率提高的幅度 远不能满足需要
u 生命周期方法学强调需求分析的重要性, 强调每个阶段结束之前必须进行严格的 评审和质量把关,这确实加快了软件开 发的速度。但所产生的开发率的提高, 远远赶不上对软件产品需求率的增长。
– 某些系统需求是模糊的 – 项目参与者之间存在通信鸿沟 – 预先定义的系统可能是过时的
第 12 页
⑴某些系统需求是模糊的
• 实际情况是:
a.有的用户有在计算机上实际使用类似软 件的工作经验,能够预先精确地提出全部 系统需求。例如,OS类的系统软件、导 弹控制系统类的控制软件、图像处理软 件、科学计算等软件。
第 10 页
2.出现问题的原因
• 僵化的瀑布模型 • 结构化技术的缺点
第 11 页
僵化的瀑布模型
• 瀑布模型生存周期的各个阶段之间存在 着严重的顺序性和依赖性。
• 但实践证明,在系统建立起来之前,很 难仅仅依靠分析就确定出一套完整、准 确、一致、有效的应用需求。更何况预 先需求的方法,也不能适应用户需求不 断变化的情况。具体表现在:
u 据统计资料表明,从50年代到80年代的 30年间,美国的软件生产率翻了两翻。 但社会对软件的需求每年以两位数字的 百分比在增长。软件的开发,已成为影 响计算机应用的巨大桎梏和瓶颈。
第7页
n软件重用程度很低
u “重用”也称“再用”或“复用”。显然, 软件重用是节约人力,提高软件生产率的 重要途径。
相关文档
最新文档