面向对象技术引论练习题 、给出下列概念的定义,并说明它们在软件开发中的作用: (1)对象(2)类(3)属性(4)服务(5继承 (6)封装(7)关联(8聚合(9)消息(10)抽象 、介绍面向对象方法的主要思想,论述该方法为什么有利 于改进软件开发。 三、以你所学习的OOA方法为背景,阐述OOA的主要过程与 策略
面向对象技术引论练习题 一、给出下列概念的定义,并说明它们在软件开发中的作用: (1)对象 (2)类 (3)属性 (4)服务 (5)继承 (6)封装 (7) 关联 (8)聚合 (9) 消息 (10)抽象 二、介绍面向对象方法的主要思想,论述该方法为什么有利 于改进软件开发。 三、以你所学习的OOA方法为背景,阐述OOA的主要过程与 策略
第三部分 面向对象的设计
第三部分 面向对象的设计
第一章什么是面向对象的设计(ooD)? 概而言之,面向对象的设计(OOD)就是运用面向对象 方法进行系统设计;但不同时期有不同内容及特点。 早期的oOD(八十年代至九十年代初) 历史:从ooP发展到ooD G. Booch1982年发表“ Object-Oriented Design”, 首次称“面向对象的设计”。 1986年发表“ Object-Oriented Development 较完整地阐述了OOD思想。 两个术语都用OOD作为缩写,内容上也没有根本区别 RJ. Abbott1983年提出正文分析方法,用规范的英语描述对一个问 题的解释,然后从描述中提取对象及其特征。例:名词—对象,动词 —操作。被后来的许多OOD方法所采用。 1986年后,相继出现了一批(早期的)OOD方法
概而言之,面向对象的设计(OOD)就是运用面向对象 方法进行系统设计;但不同时期有不同内容及特点。 第一章 什么是面向对象的设计(OOD)? 一、早期的OOD(八十年代至九十年代初): 历史:从OOP发展到OOD G. Booch 1982 年发表“Object-Oriented Design” , 首次称“面向对象的设计” 。 1986 年发表“Object-Oriented Development” 较完整地阐述了OOD思想。 两个术语都用OOD作为缩写,内容上也没有根本区别 R. J. Abbott 1983年提出正文分析方法,用规范的英语描述对一个问 题的解释,然后从描述中提取对象及其特征。例:名词——对象,动词 ——操作。被后来的许多OOD方法所采用。 1986年后,相继出现了一批(早期的)OOD方法
早期的0D方法 Booch86--Object-Oriented Development 面向对象的开发 GOOD--General object-Oriented Development 通用面向对象的开发 HOOD-Hierarchical Object-Oriented Design 层次式面向对象的设计 OSD-Object-Oriented Structured Design 面向对象的结构设计
早期的OOD方法 Booch86——Object-Oriented Development 面向对象的开发 GOOD——General Object-Oriented Development 通用面向对象的开发 HOOD——Hierarchical Object-Oriented Design 层次式面向对象的设计 OOSD——Object-Oriented Structured Design 面向对象的结构设计 ……
早期OoD的特点: 1、不是基于00A的 大多基于结构化分析结果(数据流图) 2、是0o编程方法的延伸 多数方法与编程语言有关,特别受Ada影响很大 3、不是纯oO的 对某些oo概念(如继承)缺少支持, 搀杂一些非oo概念(如数据流、包、模块等) 4、不是只针对软件生命周期的设计阶段 OoD中的“D”—指的是 Design或 Development 多少涉及分析问题(如识别向题域的对象),但很不彻底 早期的OOD可看作现今OA&D方法的雏形
1、不是基于OOA的 大多基于结构化分析结果(数据流图) 2、是OO编程方法的延伸 多数方法与编程语言有关,特别受Ada影响很大 3、不是纯OO的 对某些OO概念(如继承)缺少支持, 搀杂一些非OO 概念(如数据流、包、模块等) 4、不是只针对软件生命周期的设计阶段 OOD中的“D”——指的是Design 或 Development 多少涉及分析问题(如识别问题域的对象),但很不彻底 ——早期的OOD可看作现今OOA&D方法的雏形 早期OOD的特点:
二、现今(90年代)的oOD 背景: 从结构化分析文档识别ooD的对象并非良策,识别对 象的关键问题在于用oo方法进行系统分析。 oo方法从设计发展到分析,出现OOA方法。 ooA和OoD构成完整的oOA&D方法体系。 ooD基于00A 识别对象由ooA完成, ooD的主要定义对象如何实现
二、现今(90年代)的OOD 背景: 从结构化分析文档识别OOD的对象并非良策,识别对 象的关键问题在于用OO方法进行系统分析。 OO方法从设计发展到分析,出现OOA方法。 OOA和OOD构成完整的OOA&D方法体系。 OOD基于OOA, 识别对象由OOA完成, OOD的主要定义对象如何实现
特点 1.以面向对象的分析为基础,一般不依赖结构化分析。 2.与相应的ooA方法共同构成一种0oA&D方法体系。 ooA和ooD采用一致的概念与原则,但属于软件生命 周期的不同阶段,有不同的目标及策略。 3.较全面地体现面向对象方法的概念与原则。 4.大多数方法独立于编程语言,通过面向对象的分析与 设计所得到的系统模型可以由不同的编程语言实现。 定义: 面向对象的设计(OOD)就在是OOA模型基础上运用 面向对象方法进行系统设计,目标是产生一个符合具体 实现条件的OOD模型
定义: 面向对象的设计(OOD)就在是OOA模型基础上运用 面向对象方法进行系统设计,目标是产生一个符合具体 实现条件的OOD模型。 特点: 1. 以面向对象的分析为基础,一般不依赖结构化分析。 2. 与相应的OOA方法共同构成一种OOA&D方法体系。 OOA和OOD采用一致的概念与原则,但属于软件生命 周期的不同阶段,有不同的目标及策略。 3. 较全面地体现面向对象方法的概念与原则。 4. 大多数方法独立于编程语言,通过面向对象的分析与 设计所得到的系统模型可以由不同的编程语言实现
有多种00A&D方法: Booch方法 Coad-Yourdon方法 本课重点讲授 Firesmith方法 Coad/Yourd Jacobson方法(oosE) on方法,加以 Martin-Ode方法 适当改进 Rumbaugh方法(OMT) Wrfs- Brock方法
有多种OOA&D方法 : Booch方法 Coad -Yourdon方法 Firesmith方法 Jacobson方法(OOSE) Martin -Odell方法 Rumbaugh方法(OMT) Wirfs -Brock方法 …… 本课重点讲授 Coad/Yourd on方法,加以 适当改进
coad/ burdon方法: 概念:对象、类、属性、服务、整体-部分结构、一般-特殊 结构、实例连接、消息连接、主题。 原则:抽象、封装、继承、关联、消息通讯、通用的组织方 法、粒度控制、行为分类。 ooA模型 ooA过程 五个层次 五个活动 刷象层 识别类及对象 结构层 识别结构 主题层 识别主题 属性层 定义属性 服务层 定义服务
Coad/Yourdon方法: 概念:对象、类、属性、服务、整体-部分结构、一般-特殊 结构、实例连接、消息连接、主题。 原则:抽象、封装、继承、关联、消息通讯、通用的组织方 法、粒度控制、行为分类。 识别类及对象 识别结构 识别主题 定义属性 定义服务 OOA过程 ——五个活动 对象层 结构层 主题层 属性层 服务层 OOA模型 ——五个层次
oD模型 五个层次,四个部分 剧象层 人机交互问题域任务管理数据管理 结构层 部分 部分 部分 部分 主题层 CHIC) (PDC) (TMC) (DMC) 属性层 般服务层 ooD过程针对四个部分,进行四个相应的活动 设计问题城帝分 设计人机交互部分的 设计任务管理部分 设计数据管理部分 上述每个活动都包含与ooA相同的五个活动 识别类及对象、识别结构、识别主题、定义属性、定义服务
人机交互 部分 (HIC) 问题域 部分 (PDC) 任务管理 部分 (TMC) 数据管理 部分 (DMC) 对象层 结构层 主题层 属性层 服务层 OOD模型 ——五个层次,四个部分 OOD过程 针对四个部分,进行四个相应的活动 设计问题域部分 设计人机交互部分的 设计任务管理部分 设计数据管理部分 上述每个活动都包含与OOA相同的五个活动—— 识别类及对象、识别结构、识别主题、定义属性、定义服务