第三篇 面向对象方法学PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
的方法学,任何方 法学都有其局限性,所以软件开发人员大可不 必拘泥于某种特定的方法学。
10
第6章 面向对象方法学导论
面向对象程序设计实例 现向对象方法学概述 面向对象方法学的主要优点 面向对象的概念
11
一个简单的图形程序的需求
在显示器荧光屏上圆心坐标为(100,100)的 位置画一个半径为40的圆,在圆心坐标为 (200,300)的位置画一个半径为20的圆, 在圆心坐标为(400,150)的位置画一条弧, 弧的起始角度为30°,结束角度为120°,半径 为50.
14
用面向对象的方式怎样解决问题?
本问题中涉及两类实体(对象):圆和弧
圆类的两个实例、弧类的一个实例(所谓实例
即具体的对象)
弧
圆 圆心坐标 半径 可见性 显示() 隐藏
圆心半径 半径 起始角度 结束角度 可见性 显示 隐藏
15
6.2 设计类等级
这个简单的图形程序需要使用圆类和弧类这两
类对象,也就是说,我们把该程序中的对象划
第三篇 面向对象方法学
所谓方法学是指组织软件生产过程的一 系列方法、技术和规范。 是软件开发者长年失败和成功经验的理 论性总结。
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
面向对象方法学的基本思想
分成两类。
圆 圆心坐标 半径 可见性 显示() 隐藏
弧 圆心半径 半径 起始角度 结束角度 可见性 显示 隐藏
16
17
设计类等级
除了把对象分类之外,还应该进一 步按照子类(派生类)与父类(基 类)的关系,把若干个相关的对象 类组成一个层次结构的系统(类等 级)。
在这种层次结构中,下层的派生类 自动具有和上层基类相同的特定 (包括数据和操作),这种现象称 为继承。
12
用传统的结构化方法怎样设计上述图形程序?
两个函数画圆和弧(需要传递参数)
主函数中声明5个变量(存放半径等数据)
利用输入语句给变量赋值调用函数完成
自顶向下的功能分解
人类习惯解决问题方式 :“顾客-服务员“的工 作模式
数据和处理过程(代码)作为独立的部分, 反映了计算机的观点
不符合和人类习惯的思维 方式
5
结构化方法学与面向对象方法学
在设计上,结构化方法学产生自顶向下、结构 清楚的系统结构。每个模块有可能保持较强的 独立性,但它往往与数据库结构相独立,功能 模块与数据库逻辑模式间没有映射关系,程序 与数据结构很难封装在一起。假如数据结构复 杂,模块独立性很难保证。
面向对象方法抽象的系统结构往往并不比结构 化方法产生的系统结构简单,但它能映射到数 据库结构中,很轻易实现程序与数据结构的封 装。
面向对象方法学的出发点和基本原则, 是尽可能模拟人类习惯的思维方式,使 开发软件的方法与过程尽可能接近人类 认识世界解决问题的方法与过程。
3
结构化方法学与面向对象方法学
分析是问题抽象 ,设计是问题求解 ,实现是 问题的解 。任何方法学对客观世界的抽象和求 解过程都是如此。
在问题抽象阶段,结构化方法面向过程,按照 数据变换的过程寻找问题的结点,对问题进行 分解。因此,与面向对象方法强调的对象模型 不同,描述数据变换的功能模型是结构化方法 的重点。假如问题世界的功能比数据更复杂或 者更重要,那么结构化方法仍然应是首选的方 法学。
6
结构化方法学与面向对象方法学
在软件工程基本原则中有一条“形式化原则”, 即对问题世界的抽象结论应该以形式化语言 表 述出来。
结构化方法可以用数据流图、系统结构图、数 据辞典、状态转移图、实体关系图来进行系统 逻辑模型的描述;
而面向对象方法可以使用对象模型图、数据辞 典、动态模型图、功能模型图。其中对象模型 图近似系统结构图与实体关系图的结合,动态 模型图类似状态迁移图,功能模型图类似数据 流图。
7
敏捷开发方法
简单的说,敏捷开发是一种以人为核心、 迭代、循序渐进的开发方法。
敏捷软件开发宣言: 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划
8
对于软件开发方法学的正确理解
方法学是思路不是定律 (1)方法学的目的是:使后人分享前人的成 功,避开前人的失败,把注重力集中在尚未开 拓领域的创造性劳动上。所以方法学与开发人 员的创造性是绝不冲突的。它既不能像法律那 样靠权威来界定是非边界,也不能像定律那样 通过证实和推理给出普遍结论。假如一定要做 比喻的话,它好比人的世界观。
– 按照这种观点,可以认为整个世界就是一个最复杂的 对象。因此,面向对象的软件系统是由对象组成的, 软件中的任何元素都是对象,复杂的软件对象由比较 简单的对象组合而成。
– 由此可见,面向对象方法用对象分解取代了传统方法 的功能分解。
18
6.1.3 定义属性和服务
所谓定义属性就是确定每个属性 的数据类型和数据结构,同时还
定义服务的主要任务就是设计完 成每项服务功能的算法。
19
6.2 面向对象方法学概述
面向对象方法学的要点: (1) 认为客观世界是由各种对象组成的,任何
事物都是对象,复杂的对象可以由比较简单的 对象以某种方式组合而成。
13
用面向对象的方式怎样解决问题?
用对象分解取代功能分解,也就是把程序分解 成一系列对象,每个对象都既有自己的数据 (描述该对象所代表的实体的属性),又有处 理这些数据的函数(通常称为服务或方法,它 们实现该对象应有的行为)。
不同对象之间通过发送消息向对方提出服务要 求,接受消息的对象主动完成指定功能提供所 要求的服务。程序中所有对象分工协作,共同 完成整个程序的功能。事实上,对象是组成面 向对象程序的基本模块。
4
结构化方法学与面向对象方法学
假如数据结构复杂且变换并不多,那么 如以过程主导分析和设计,一旦有系统 变更就会给下游开发带来极大混乱。
由于对过程的理解不同,面向过程的功 能细分所分割出的功能模块有时会因人 而异。而面向对象的对象细分,从同一 问题领域的对象出发,不同人得出相同 结论的比率较高。
的方法学,任何方 法学都有其局限性,所以软件开发人员大可不 必拘泥于某种特定的方法学。
10
第6章 面向对象方法学导论
面向对象程序设计实例 现向对象方法学概述 面向对象方法学的主要优点 面向对象的概念
11
一个简单的图形程序的需求
在显示器荧光屏上圆心坐标为(100,100)的 位置画一个半径为40的圆,在圆心坐标为 (200,300)的位置画一个半径为20的圆, 在圆心坐标为(400,150)的位置画一条弧, 弧的起始角度为30°,结束角度为120°,半径 为50.
14
用面向对象的方式怎样解决问题?
本问题中涉及两类实体(对象):圆和弧
圆类的两个实例、弧类的一个实例(所谓实例
即具体的对象)
弧
圆 圆心坐标 半径 可见性 显示() 隐藏
圆心半径 半径 起始角度 结束角度 可见性 显示 隐藏
15
6.2 设计类等级
这个简单的图形程序需要使用圆类和弧类这两
类对象,也就是说,我们把该程序中的对象划
第三篇 面向对象方法学
所谓方法学是指组织软件生产过程的一 系列方法、技术和规范。 是软件开发者长年失败和成功经验的理 论性总结。
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
面向对象方法学的基本思想
分成两类。
圆 圆心坐标 半径 可见性 显示() 隐藏
弧 圆心半径 半径 起始角度 结束角度 可见性 显示 隐藏
16
17
设计类等级
除了把对象分类之外,还应该进一 步按照子类(派生类)与父类(基 类)的关系,把若干个相关的对象 类组成一个层次结构的系统(类等 级)。
在这种层次结构中,下层的派生类 自动具有和上层基类相同的特定 (包括数据和操作),这种现象称 为继承。
12
用传统的结构化方法怎样设计上述图形程序?
两个函数画圆和弧(需要传递参数)
主函数中声明5个变量(存放半径等数据)
利用输入语句给变量赋值调用函数完成
自顶向下的功能分解
人类习惯解决问题方式 :“顾客-服务员“的工 作模式
数据和处理过程(代码)作为独立的部分, 反映了计算机的观点
不符合和人类习惯的思维 方式
5
结构化方法学与面向对象方法学
在设计上,结构化方法学产生自顶向下、结构 清楚的系统结构。每个模块有可能保持较强的 独立性,但它往往与数据库结构相独立,功能 模块与数据库逻辑模式间没有映射关系,程序 与数据结构很难封装在一起。假如数据结构复 杂,模块独立性很难保证。
面向对象方法抽象的系统结构往往并不比结构 化方法产生的系统结构简单,但它能映射到数 据库结构中,很轻易实现程序与数据结构的封 装。
面向对象方法学的出发点和基本原则, 是尽可能模拟人类习惯的思维方式,使 开发软件的方法与过程尽可能接近人类 认识世界解决问题的方法与过程。
3
结构化方法学与面向对象方法学
分析是问题抽象 ,设计是问题求解 ,实现是 问题的解 。任何方法学对客观世界的抽象和求 解过程都是如此。
在问题抽象阶段,结构化方法面向过程,按照 数据变换的过程寻找问题的结点,对问题进行 分解。因此,与面向对象方法强调的对象模型 不同,描述数据变换的功能模型是结构化方法 的重点。假如问题世界的功能比数据更复杂或 者更重要,那么结构化方法仍然应是首选的方 法学。
6
结构化方法学与面向对象方法学
在软件工程基本原则中有一条“形式化原则”, 即对问题世界的抽象结论应该以形式化语言 表 述出来。
结构化方法可以用数据流图、系统结构图、数 据辞典、状态转移图、实体关系图来进行系统 逻辑模型的描述;
而面向对象方法可以使用对象模型图、数据辞 典、动态模型图、功能模型图。其中对象模型 图近似系统结构图与实体关系图的结合,动态 模型图类似状态迁移图,功能模型图类似数据 流图。
7
敏捷开发方法
简单的说,敏捷开发是一种以人为核心、 迭代、循序渐进的开发方法。
敏捷软件开发宣言: 个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划
8
对于软件开发方法学的正确理解
方法学是思路不是定律 (1)方法学的目的是:使后人分享前人的成 功,避开前人的失败,把注重力集中在尚未开 拓领域的创造性劳动上。所以方法学与开发人 员的创造性是绝不冲突的。它既不能像法律那 样靠权威来界定是非边界,也不能像定律那样 通过证实和推理给出普遍结论。假如一定要做 比喻的话,它好比人的世界观。
– 按照这种观点,可以认为整个世界就是一个最复杂的 对象。因此,面向对象的软件系统是由对象组成的, 软件中的任何元素都是对象,复杂的软件对象由比较 简单的对象组合而成。
– 由此可见,面向对象方法用对象分解取代了传统方法 的功能分解。
18
6.1.3 定义属性和服务
所谓定义属性就是确定每个属性 的数据类型和数据结构,同时还
定义服务的主要任务就是设计完 成每项服务功能的算法。
19
6.2 面向对象方法学概述
面向对象方法学的要点: (1) 认为客观世界是由各种对象组成的,任何
事物都是对象,复杂的对象可以由比较简单的 对象以某种方式组合而成。
13
用面向对象的方式怎样解决问题?
用对象分解取代功能分解,也就是把程序分解 成一系列对象,每个对象都既有自己的数据 (描述该对象所代表的实体的属性),又有处 理这些数据的函数(通常称为服务或方法,它 们实现该对象应有的行为)。
不同对象之间通过发送消息向对方提出服务要 求,接受消息的对象主动完成指定功能提供所 要求的服务。程序中所有对象分工协作,共同 完成整个程序的功能。事实上,对象是组成面 向对象程序的基本模块。
4
结构化方法学与面向对象方法学
假如数据结构复杂且变换并不多,那么 如以过程主导分析和设计,一旦有系统 变更就会给下游开发带来极大混乱。
由于对过程的理解不同,面向过程的功 能细分所分割出的功能模块有时会因人 而异。而面向对象的对象细分,从同一 问题领域的对象出发,不同人得出相同 结论的比率较高。