面向对象方法学引论新PPT课件
合集下载
面向对象方法学概述精品PPT课件

注意:UML是一种语言规范而不是一种建模方法
用面向对象方法开发软件,通常需要建立3种形式的模 型:描述系统数据结构的对象模型,描述系统控制结构 的动态模型、描述系统功能的功能模型。 在整个开发过程中,3种模型一直都在发展完善。在面向 对象分析中,构造出完全独立于实现的应用域模型;在 面向对象设计过程中,把求解域的结构逐渐加入到模型 中;在实现阶段,把应用域和求解域的结构编成代码并 进行严格的测试验证
面向对象分析设计方法(OOAD): ▪ 兴起于20世纪80年代,从20世纪90年代起至今它已
经在分析设计领域占据了无可争议的主流地位 ▪ 1997年11月,UML被国际对象管理组织(OGM)采
纳,此后UML成了OOAD建模语言的国际标准。 ▪ UML对于OOAD中的语义、图形表示法和使用规则做
了完整而详细的定义。其建模能力超过了以往任何 OOAD方法,当然复杂性也随之膨胀。 ▪ 真正使UML流行的是Rational公司基于UML的建模 工具Rose。
每次重复都会增加或明确一些目标系统的性质,但却不是对先前工 作结果的本质性改动,这样就减少了不一致性,降低了出错的可能。 P22喷泉模型
面向对象方法的特点
1. 通用组织方法 2. 抽象 3. 封装或信息隐蔽 4. 继承 5. 多态 6. 消息通信 7. 关联 8. 复用
1. 通用组织方法
通用组织方法用于协助组织信息系统模型以及最终编写的软件。包 括: 对象及其属性或者特征。 整体和部分(is a part of)。 类和成员(is a member of) 。 2. 抽象 忽略问题域的无关部分而集中考虑关键部分的原则
第一章 面向对象方法学引论
传统方法学的缺点
僵化的瀑布模型 瀑布模型意味着生命周期各阶段间存在着严
用面向对象方法开发软件,通常需要建立3种形式的模 型:描述系统数据结构的对象模型,描述系统控制结构 的动态模型、描述系统功能的功能模型。 在整个开发过程中,3种模型一直都在发展完善。在面向 对象分析中,构造出完全独立于实现的应用域模型;在 面向对象设计过程中,把求解域的结构逐渐加入到模型 中;在实现阶段,把应用域和求解域的结构编成代码并 进行严格的测试验证
面向对象分析设计方法(OOAD): ▪ 兴起于20世纪80年代,从20世纪90年代起至今它已
经在分析设计领域占据了无可争议的主流地位 ▪ 1997年11月,UML被国际对象管理组织(OGM)采
纳,此后UML成了OOAD建模语言的国际标准。 ▪ UML对于OOAD中的语义、图形表示法和使用规则做
了完整而详细的定义。其建模能力超过了以往任何 OOAD方法,当然复杂性也随之膨胀。 ▪ 真正使UML流行的是Rational公司基于UML的建模 工具Rose。
每次重复都会增加或明确一些目标系统的性质,但却不是对先前工 作结果的本质性改动,这样就减少了不一致性,降低了出错的可能。 P22喷泉模型
面向对象方法的特点
1. 通用组织方法 2. 抽象 3. 封装或信息隐蔽 4. 继承 5. 多态 6. 消息通信 7. 关联 8. 复用
1. 通用组织方法
通用组织方法用于协助组织信息系统模型以及最终编写的软件。包 括: 对象及其属性或者特征。 整体和部分(is a part of)。 类和成员(is a member of) 。 2. 抽象 忽略问题域的无关部分而集中考虑关键部分的原则
第一章 面向对象方法学引论
传统方法学的缺点
僵化的瀑布模型 瀑布模型意味着生命周期各阶段间存在着严
第三篇 面向对象方法学PPT课件

4
结构化方法学与面向对象方法学
假如数据结构复杂且变换并不多,那么 如以过程主导分析和设计,一旦有系统 变更就会给下游开发带来极大混乱。
由于对过程的理解不同,面向过程的功 能细分所分割出的功能模块有时会因人 而异。而面向对象的对象细分,从同一 问题领域的对象出发,不同人得出相同 结论的比率较高。
分成两类。
圆 圆心坐标 半径 可见性 显示() 隐藏
弧 圆心半径 半径 起始角度 结束角度 可见性 显示 隐藏
16
17
设计类等级
除了把对象分类之外,还应该进一 步按照子类(派生类)与父类(基 类)的关系,把若干个相关的对象 类组成一个层次结构的系统(类等 级)。
在这种层次结构中,下层的派生类 自动具有和上层基类相同的特定 (包括数据和操作),这种现象称 为继承。
(3)按照子类与父类的关系,把若干个 对象类组织成一个层次结构的系统(类 等级)。
23
面向对象方法学的要点
(4)对象之间仅能通过传递消息互相通信。
“面向对象=对象+类+继承+消息”
24
面向对象方法学过程
一般说来,使用面向对象方法学开发软件时, 工作重点应该放在生命周期中的分析阶段。这 种方法在开发的早期阶段定义了一系列面向问 题的对象,并且在整个开发过程中不断充实和 扩充这些对象。
25
面向对象方法学过程
迭代是软件开发过程中普遍存在的 一种内在属性。经验表明,软件过 程各个阶段之间的迭代或一个阶段 内各个工作步骤之间的迭代,在面 向对象范型中比在结构化范型中更 常见,也更容易实现。
喷泉模型是典型的面向对象生命周 期模型。
26
6.3 面向对象方法学的主要优点
与人类习惯的思维方法一致 面向对象的软件开发过程从始至终都围绕着建
结构化方法学与面向对象方法学
假如数据结构复杂且变换并不多,那么 如以过程主导分析和设计,一旦有系统 变更就会给下游开发带来极大混乱。
由于对过程的理解不同,面向过程的功 能细分所分割出的功能模块有时会因人 而异。而面向对象的对象细分,从同一 问题领域的对象出发,不同人得出相同 结论的比率较高。
分成两类。
圆 圆心坐标 半径 可见性 显示() 隐藏
弧 圆心半径 半径 起始角度 结束角度 可见性 显示 隐藏
16
17
设计类等级
除了把对象分类之外,还应该进一 步按照子类(派生类)与父类(基 类)的关系,把若干个相关的对象 类组成一个层次结构的系统(类等 级)。
在这种层次结构中,下层的派生类 自动具有和上层基类相同的特定 (包括数据和操作),这种现象称 为继承。
(3)按照子类与父类的关系,把若干个 对象类组织成一个层次结构的系统(类 等级)。
23
面向对象方法学的要点
(4)对象之间仅能通过传递消息互相通信。
“面向对象=对象+类+继承+消息”
24
面向对象方法学过程
一般说来,使用面向对象方法学开发软件时, 工作重点应该放在生命周期中的分析阶段。这 种方法在开发的早期阶段定义了一系列面向问 题的对象,并且在整个开发过程中不断充实和 扩充这些对象。
25
面向对象方法学过程
迭代是软件开发过程中普遍存在的 一种内在属性。经验表明,软件过 程各个阶段之间的迭代或一个阶段 内各个工作步骤之间的迭代,在面 向对象范型中比在结构化范型中更 常见,也更容易实现。
喷泉模型是典型的面向对象生命周 期模型。
26
6.3 面向对象方法学的主要优点
与人类习惯的思维方法一致 面向对象的软件开发过程从始至终都围绕着建
面向对象方法学引论.pptx

第34页/共67页
图9.14 多重继承示例
第35页/共67页
完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定{完全}约束。不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护,这为日后系统的扩充和维护带来很大方便。不完全继承是一般情况下默认的继承关系。
第2页/共67页
Message
Send by method
对象Object
Object
= 属性Attribute
Attributes: location; employee; ……
+ 操作Method
Methods: send; sell; ……
注意:对象内部的属性不允许外部用户直接改动,只有当它提供了相应的服务操作时,用户才能通过发送消息来提请它执行。
④ 消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。
第4页/共67页
OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。
表示关系的符号
第17页/共67页
类1
类2
角色
角色
关联名
角色表示该类在这个关联中的作用。如果没有显式标出角色名,则意味着用类名作为角色名。重数:该类有多少个对象与对方的一个对象连接。
关联
重数
1、关联
第18页/共67页
在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:0…1 表示0到1个对象0…*或* 表示0到多个对象1+或1…* 表示1到多个对象1…15 表示1到15个对象3 表示3个对象如果图中未明确标出关联的重数,则默认重数是1。
图9.14 多重继承示例
第35页/共67页
完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定{完全}约束。不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护,这为日后系统的扩充和维护带来很大方便。不完全继承是一般情况下默认的继承关系。
第2页/共67页
Message
Send by method
对象Object
Object
= 属性Attribute
Attributes: location; employee; ……
+ 操作Method
Methods: send; sell; ……
注意:对象内部的属性不允许外部用户直接改动,只有当它提供了相应的服务操作时,用户才能通过发送消息来提请它执行。
④ 消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。
第4页/共67页
OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。
表示关系的符号
第17页/共67页
类1
类2
角色
角色
关联名
角色表示该类在这个关联中的作用。如果没有显式标出角色名,则意味着用类名作为角色名。重数:该类有多少个对象与对方的一个对象连接。
关联
重数
1、关联
第18页/共67页
在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:0…1 表示0到1个对象0…*或* 表示0到多个对象1+或1…* 表示1到多个对象1…15 表示1到15个对象3 表示3个对象如果图中未明确标出关联的重数,则默认重数是1。
第三篇 面向对象方法学PPT课件

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
设计类等级
除了把对象分类之外,还应该进一 步按照子类(派生类)与父类(基 类)的关系,把若干个相关的对象 类组成一个层次结构的系统(类等 级)。
的方法学,任何方 法学都有其局限性,所以软件开发人员大可不 必拘泥于某种特定的方法学。
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
设计类等级
除了把对象分类之外,还应该进一 步按照子类(派生类)与父类(基 类)的关系,把若干个相关的对象 类组成一个层次结构的系统(类等 级)。
第9章 面向对象方法学引论PPT课件

7
4 较易开发大型软件产品 用面向对象方法学开发软件时,构成
软件系统的每个对象就像一个微型程序, 有自己的数据、操作、功能和用途。一 个大型软件产品分解成一系列本质上互 相独立的小产品来处理,这不仅降低了 开发的技术难度,而且也使得对开发工 作的管理变得容易。因此,面向对象范 型优于结构化范对象的概念
9.2.1对象 ▪ 可以是具体的物理实体的抽象 ▪ 可以是人为的概念 ▪ 可以是任何有明确边界和意义的东西 例如:一名职工、一家公司、一个窗口、 一座图书馆、一本图书、贷款、 借款等等。
10
1 对象的形象表示
❖ 一个对象好像一个黑盒子,表示它内部的数 据和实现各个操作的代码及局部数据,都被 封装在这个黑盒子内部,在外部是看不见的, 更不能从外部去访问或修改这些数据代码。
5.属性:是类中所定义的数据,是对客观实体 所具有的性质抽象。半径、圆心、颜色
6.封装:是把某个事务包起来,使外界不知道 该事物的具体内容。封装的条件:
(1)有一个清晰的边界
14
(2)有确定的接口
(3)受保护的内部实现
7.继承
(1)继承是子类自动地共享基类中定义的数据和 方法的机制,其特性是:一个类的上层可以有 父类,下层可以有子类。
种抽象反映了系统保存有关这个东西的 信息或与它交互的能力 定义3:对象::=<ID,MS,DS,MI> 名字 操作集合 数据结构 对外接口
12
3.对象的特点
(1)以数据为中心
(2)对象是主动的
(3)实现了数据封装
(4)本质上具有并行性
(5)模块独立性好
4.其他概念
(1)类:是对具有相同数据和相同操作的一组相 似对象的定义。人(黄皮肤,黑头发,黑眼睛)
4 较易开发大型软件产品 用面向对象方法学开发软件时,构成
软件系统的每个对象就像一个微型程序, 有自己的数据、操作、功能和用途。一 个大型软件产品分解成一系列本质上互 相独立的小产品来处理,这不仅降低了 开发的技术难度,而且也使得对开发工 作的管理变得容易。因此,面向对象范 型优于结构化范对象的概念
9.2.1对象 ▪ 可以是具体的物理实体的抽象 ▪ 可以是人为的概念 ▪ 可以是任何有明确边界和意义的东西 例如:一名职工、一家公司、一个窗口、 一座图书馆、一本图书、贷款、 借款等等。
10
1 对象的形象表示
❖ 一个对象好像一个黑盒子,表示它内部的数 据和实现各个操作的代码及局部数据,都被 封装在这个黑盒子内部,在外部是看不见的, 更不能从外部去访问或修改这些数据代码。
5.属性:是类中所定义的数据,是对客观实体 所具有的性质抽象。半径、圆心、颜色
6.封装:是把某个事务包起来,使外界不知道 该事物的具体内容。封装的条件:
(1)有一个清晰的边界
14
(2)有确定的接口
(3)受保护的内部实现
7.继承
(1)继承是子类自动地共享基类中定义的数据和 方法的机制,其特性是:一个类的上层可以有 父类,下层可以有子类。
种抽象反映了系统保存有关这个东西的 信息或与它交互的能力 定义3:对象::=<ID,MS,DS,MI> 名字 操作集合 数据结构 对外接口
12
3.对象的特点
(1)以数据为中心
(2)对象是主动的
(3)实现了数据封装
(4)本质上具有并行性
(5)模块独立性好
4.其他概念
(1)类:是对具有相同数据和相同操作的一组相 似对象的定义。人(黄皮肤,黑头发,黑眼睛)
面向对象方法学引论PPT文档共57页

谢谢你的阅读
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
面向对象方法学引论
6、纪律是自由的第一条件。——黑格 尔 7、纪律是集体的面貌,集体的声音, 集体的 动作, 集体的 表情, 集体的 信念。 ——马 卡连柯
8、我们现在必须完全保持党的纪律, 磨坊没有水。— —夸美 纽斯
10、一个人应该:活泼而守纪律,天 真而不 幼稚, 勇敢而 鲁莽, 倔强而 有原则 ,热情 而不冲 动,乐 观而不 盲目。 ——马 克思
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机世界
9.1.2 面向对象开发方法的组成
1、OOA法 就是要解决“做什么”的问题。OOA 法的基本任务就是要
建立三种模型:
对象模型(信息模型) 定义构成系统的类和对象,它们的属性与操作。
状态模型(动态模型) 描述任何时刻对象的联系及其联系的改变,即时序。常
用状态图, 事件追踪图描述。 功能/处理模型(函数模型)
3、OOP 法 使用面向对象的程序设计语言,如C++进行程序设计。 Coad和Yourdon给出一个面向对象的定义: 面向对象=对象+类+继承+消息 ,
则可以认为这个软件系统是面向对象的。
面向对象方法的主要特点:
按照人类习惯的思维方法,对软件开发过程所有阶段进行 综合考虑
传统的程序设计技术是面向过程的设计方法,是以算法为 核心,把数据和过程作为相互独立的部分,程序代码用于处 理这些数据。将数据和代码分离,反映了计算机的观点,但 却忽视了数据和操作之间的内在联系,所以用这种方法设计 的软件系统其解空间与问题空间不一致。
描述系统内部数据的传送处理。 显然,在三大模型中,最重要的是对象模型。
9.1.2 面向对象开发方法的组成
2、OOD 法 在需求分析的基础上,进一步解决“如何作”的问题,
OOD 法也分为概要设计和详细设计。 概要设计:细化对象行为,添加新对象,认定类,组类
库,确定外部接口及主要数据结构 详细设计:加细对象描述
9.1.1 什么是面向对象的开发方法
面向对象技术的特点 1、对软件开发过程所有阶段进行综合考虑。 2、软件生存期各阶段所使用的方法、技术具有 高度的连续性,用符合人类认识世界的思维方式 来分析、解决问题。 3、将OOA、OOD、OOP有机地集成在一起。 OOA(Object-Oriented Analysis)面向对象分析 OOD( Object-Oriented Design )面向对象设计 OOP( Object-Oriented Program )面向对象的 程序设计
9.1.1 什么是面向对象的开发方法
什么是面向对象 根据Coad和Yourdon的定义,按照以下4个概念 设计和实现的系统,称为是面向对象的。 面向对象=对象 (object)
+类 (classification) +继承(inheritance) +通信 (communication with messages)
9.2 面向对象的概念
理解面向对象的基本概念对于学习和掌握面向对象的开 发方法是十分重要的。
对象(Object) 类(Class) 继承(Inheritance) 多态性(Polymorphism) 消息(Information) 方法(method)
9.1 面向对象方法概述
9.1.1 什么是面向对象的开发方法 OOSD(Object-Oriented Software Development) 法是一种把面向对象的思想应用于软件开发过程, 指导开发活动的系统方法。 面向对象的方法是一种运用对象、类、继承、 封装、聚合、消息传送、多态性等概念来构造系 统的软件开发方法。
而面向对象的方法以对象为核心,强调模拟现实世界中的 概念而不是算法,尽量用符合人类认识世界的思维方式来渐 进地分析、解决问题,使问题空间与解空间具有一致性,便 于对软件开发过程所有阶段进行综合考虑,能有效地降低软 件开发的复杂度,提高软件质量。
面向对象的方法的代表性成果有:
1、B.Henderson-sellers 和 J.m.Edwards提出的面向对象软件 生存期喷泉模型及面向对象的系统开发方法。
9.1.2 面向对象开发方法的组成
OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计
OOA OOD OOP
第9章 面向对象方法学引论
传统的软件工程方法是面向过程的,将数据和 处理过程分离,求解过程是先对应用领域(问题 空间)进行分析,建立起问题空间的逻辑模型, 再通过一系列复杂的转换和算法,构造计算机系 统,获得解空间。
由于问题空间与解空间的模型、描述方式的不 同,存在着复杂的转换过程,需求变化就更难适 应。传统的软件工程方法难于支持软件复用。
第9章 面向对象方法引论
面向对象的思想最初出现于挪威斯陆大学和挪 威计算机中心共同研制的Simula 67 语言中,其 后,随着位于美国加利福尼亚的Xerox(施乐) 研究中心推出的Smalltalk--76 和80 语言,面 向对象的的程序设计技术迅猛的发展。
到了20世纪90年代,面向对象方法学已经成为 人们在开发软件是首选的成熟的范型,成为当前 最好的软件开发技术。
强调的是对一个系统中的对象特征和行 为的定义。建立系统的三类(对象、状 态、处理)模型。
与OOA密切配合顺序实现对现实世界的进 一步建模。
是面向对象的技术中发展最快的,使用 面向对象的程序设计语言,进行编码。
现实世界
面
OOA
向 对
象
开
OOD 发
方
法
OOP
结构化
结 分析 构 化 结构化 开 设计 发 方 结构化 法 编程
第9章 面向对象方法学引论
教学目标
掌握面向对象方法学的概念、掌握用于面向 对象分析、设计的3种模型(对象模型、动态模 型、功能模型)。
教学重点
面向对象方法学的基本概念
教学难点
面向对象建模的了解
第9章 面向对象方法学引论
教学内容
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 三种模型之间的关系
2、G.Booch提出的面向对象的开发方法。 3、P.Coad和E.Yourd提出的OOA和OOD法。 4、J. Rumbaugh等人提出的对象建模技术(OMT)。 5、Jacobson 提出的面向对象的软件工程(OOSE)。 6、G.Booch J.Rumbough Jacobson等人在Booch方法、OMT 和OOSE的基础上推出了统一建模语言UML。
9.1.2 面向对象开发方法的组成
1、OOA法 就是要解决“做什么”的问题。OOA 法的基本任务就是要
建立三种模型:
对象模型(信息模型) 定义构成系统的类和对象,它们的属性与操作。
状态模型(动态模型) 描述任何时刻对象的联系及其联系的改变,即时序。常
用状态图, 事件追踪图描述。 功能/处理模型(函数模型)
3、OOP 法 使用面向对象的程序设计语言,如C++进行程序设计。 Coad和Yourdon给出一个面向对象的定义: 面向对象=对象+类+继承+消息 ,
则可以认为这个软件系统是面向对象的。
面向对象方法的主要特点:
按照人类习惯的思维方法,对软件开发过程所有阶段进行 综合考虑
传统的程序设计技术是面向过程的设计方法,是以算法为 核心,把数据和过程作为相互独立的部分,程序代码用于处 理这些数据。将数据和代码分离,反映了计算机的观点,但 却忽视了数据和操作之间的内在联系,所以用这种方法设计 的软件系统其解空间与问题空间不一致。
描述系统内部数据的传送处理。 显然,在三大模型中,最重要的是对象模型。
9.1.2 面向对象开发方法的组成
2、OOD 法 在需求分析的基础上,进一步解决“如何作”的问题,
OOD 法也分为概要设计和详细设计。 概要设计:细化对象行为,添加新对象,认定类,组类
库,确定外部接口及主要数据结构 详细设计:加细对象描述
9.1.1 什么是面向对象的开发方法
面向对象技术的特点 1、对软件开发过程所有阶段进行综合考虑。 2、软件生存期各阶段所使用的方法、技术具有 高度的连续性,用符合人类认识世界的思维方式 来分析、解决问题。 3、将OOA、OOD、OOP有机地集成在一起。 OOA(Object-Oriented Analysis)面向对象分析 OOD( Object-Oriented Design )面向对象设计 OOP( Object-Oriented Program )面向对象的 程序设计
9.1.1 什么是面向对象的开发方法
什么是面向对象 根据Coad和Yourdon的定义,按照以下4个概念 设计和实现的系统,称为是面向对象的。 面向对象=对象 (object)
+类 (classification) +继承(inheritance) +通信 (communication with messages)
9.2 面向对象的概念
理解面向对象的基本概念对于学习和掌握面向对象的开 发方法是十分重要的。
对象(Object) 类(Class) 继承(Inheritance) 多态性(Polymorphism) 消息(Information) 方法(method)
9.1 面向对象方法概述
9.1.1 什么是面向对象的开发方法 OOSD(Object-Oriented Software Development) 法是一种把面向对象的思想应用于软件开发过程, 指导开发活动的系统方法。 面向对象的方法是一种运用对象、类、继承、 封装、聚合、消息传送、多态性等概念来构造系 统的软件开发方法。
而面向对象的方法以对象为核心,强调模拟现实世界中的 概念而不是算法,尽量用符合人类认识世界的思维方式来渐 进地分析、解决问题,使问题空间与解空间具有一致性,便 于对软件开发过程所有阶段进行综合考虑,能有效地降低软 件开发的复杂度,提高软件质量。
面向对象的方法的代表性成果有:
1、B.Henderson-sellers 和 J.m.Edwards提出的面向对象软件 生存期喷泉模型及面向对象的系统开发方法。
9.1.2 面向对象开发方法的组成
OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计
OOA OOD OOP
第9章 面向对象方法学引论
传统的软件工程方法是面向过程的,将数据和 处理过程分离,求解过程是先对应用领域(问题 空间)进行分析,建立起问题空间的逻辑模型, 再通过一系列复杂的转换和算法,构造计算机系 统,获得解空间。
由于问题空间与解空间的模型、描述方式的不 同,存在着复杂的转换过程,需求变化就更难适 应。传统的软件工程方法难于支持软件复用。
第9章 面向对象方法引论
面向对象的思想最初出现于挪威斯陆大学和挪 威计算机中心共同研制的Simula 67 语言中,其 后,随着位于美国加利福尼亚的Xerox(施乐) 研究中心推出的Smalltalk--76 和80 语言,面 向对象的的程序设计技术迅猛的发展。
到了20世纪90年代,面向对象方法学已经成为 人们在开发软件是首选的成熟的范型,成为当前 最好的软件开发技术。
强调的是对一个系统中的对象特征和行 为的定义。建立系统的三类(对象、状 态、处理)模型。
与OOA密切配合顺序实现对现实世界的进 一步建模。
是面向对象的技术中发展最快的,使用 面向对象的程序设计语言,进行编码。
现实世界
面
OOA
向 对
象
开
OOD 发
方
法
OOP
结构化
结 分析 构 化 结构化 开 设计 发 方 结构化 法 编程
第9章 面向对象方法学引论
教学目标
掌握面向对象方法学的概念、掌握用于面向 对象分析、设计的3种模型(对象模型、动态模 型、功能模型)。
教学重点
面向对象方法学的基本概念
教学难点
面向对象建模的了解
第9章 面向对象方法学引论
教学内容
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 三种模型之间的关系
2、G.Booch提出的面向对象的开发方法。 3、P.Coad和E.Yourd提出的OOA和OOD法。 4、J. Rumbaugh等人提出的对象建模技术(OMT)。 5、Jacobson 提出的面向对象的软件工程(OOSE)。 6、G.Booch J.Rumbough Jacobson等人在Booch方法、OMT 和OOSE的基础上推出了统一建模语言UML。