第08章面向对象方法学

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9.8 统一过程RUP 统一过程RUP
软件工程
Software Engineering
面向对象方法: 面向对象方法: (Objected Oriented,简称为OO ) Oriented,简称为 简称为OO 面向对象分析: 面向对象分析: (Object Oriented Analysis,简称OOA) Analysis,简称 简称OOA) 面向对象设计: 面向对象设计: ( Object Oriented Design,简称OOD) Design,简称OOD)
消息传递: 消息传递:对象彼此之间仅能通过传 递消息相互联系。 递消息相互联系。 封装性: 封装性:对象的信息都被封装在该对 象类的定义中, 象类的定义中,必须发消息请求它执行其 某个操作,处理它的数据, 某个操作,处理它的数据,不能从外界直 接对它的数据进行操作。 接对它的数据进行操作。 OO = Objects + Classes +Inheritance + Communication with Messages 面向对象=对象+ 面向对象=对象+类+继承+消息传递 继承+
6.方法(Method):方法是对象所能执行的操作, 方法(Method):方法是对象所能执行的操作, 是类中所定义的服务。 是类中所定义的服务。 7.封装(Encapsulation):就是把对象的属性和 封装(Encapsulation): 方法结合成一个独立的系统单位,并尽可能隐蔽 方法结合成一个独立的系统单位, 对象的内部细节。 对象的内部细节。 8.继承(Inheritance) :利用继承子类可以自动 继承(Inheritance) 的拥有父类中定义的属性和方法。继承有两种: 的拥有父类中定义的属性和方法。继承有两种: 单继承和多重继承。 单继承和多重继承。
【例】画出招聘考试管理系统的顺序图
9.4 建立功能模型
确定输入、输出值 确定输入、 数据流图中的输入、输出值是系统与外部之 数据流图中的输入、 间进行交互的事件的参数。 间进行交互的事件的参数。
画数据流图 定义服务
9.5 面向对象设计
9.5.1 系统设计 1. 将系统分解为子系统 2. 设计问题域子系统 3. 设计人-机交互子系统 设计人4. 设计任务管理子系统 5. 设计数据管理子系统 9.5.2 对象设计 1.对象描述 1.对象描述 2.设计类中的服务 2.设计类中的服务 3.设计类的关联 3.设计类的关联 4. 链属性的实现 5. 设计的优化
9.2 建立对象模型
9.2.1 确定对象和类 1. 对象 2. 类 类是具有相同属性和服务的一组对象的集合。 类是具有相同属性和服务的一组对象的集合。 对象有三种表示方式: 对象有三种表示方式: 对象名:类名 对象名: :类名 对象名
9.2.2 确定类的相互关系
1. 类的一般-特珠关系 类的一般-
对象模型 是三个模型中最关键的一个模型,它 是三个模型中最关键的一个模型, 的作用是描述系统的静态结构,包括构成 的作用是描述系统的静态结构, 系统的类和对象,它们的属性和操作, 系统的类和对象,它们的属性和操作,及 它们之间的关系。 它们之间的关系。 在对象模型技术中, 在对象模型技术中,类与类之间的关 系叫做关联。 系叫做关联。
2. 聚集关系
“整体—部分”关系 整体—部分”
90 80 70 60 50 40 30 20 10 0 第一季度 第三季度 东部 西部 北部
3. 关联关系
阶 链属性
限定
4. 主动对象 一组属性和一组服务的封装体,其 一组属性和一组服务的封装体, 中至少有一个服务不需要接收消息就能主 动执行(称为主动服务)。 动执行(称为主动服务)。
类(Class):类是对具有相同数据和相同操 (Class): 作的一组相似对象。 作的一组相似对象。 继承(Inheritance):在层次结构中, ):在层次结构中 继承(Inheritance):在层次结构中,下 层的派生类具有和上层的基类相同的特性(包 层的派生类具有和上层的基类相同的特性( 括数据和方法),这种现象称为继承。 括数据和方法),这种现象称为继承。 ),这种现象称为继承 继承是使用已存在的定义做为基础建立新 定义的技术。 定义的技术。
9.多态性(Polymorphism):多态是 多态性(Polymorphism): ):多态是 指一个实体在不同条件下具有不同意义或 用法的能力。 用法的能力。 10.重载(Overloading):重载有两种: 10.重载(Overloading):重载有两种: (1)函数重载 (2)运算符重载
9.5.3 面向对象设计的准则
1. 模块化 2. 抽象 3. 信息隐藏 4. 低耦合(弱耦合) 低耦合(弱耦合) 5. 高内聚 (强内聚) 强内聚) 6.重用性 6.重用性
9.5.4 面向对象设计的启发规则 1.设计结果应该清晰易懂 1.设计结果应该清晰易懂 2.一般—特殊结构的深度应适当 2.一般 一般— 3.设计简单的类 3.设计简单的类 4.使用简单的协议 4.使用简单的协议 5.使用简单的服务 5.使用简单的服务 6. 把设计变动减到最小
9.7 面向对象系统的实现
9.7.1 选择程序设计语言 1. 选择编程语言的关键因素 2. 面向对象语言的技术特点 3.选择面向对象语言的实际因素 9.7.2 面向对象程序设计 1.提高软件的可重用性 1.提高软件的可重用性 2. 可扩充性 3. 健壮性
9.7.3 面向对象的测试 1. 面向对象的测试步骤分为四个层次: 面向对象的测试步骤分为四个层次: a) 算法层:测试类的每个服务。 算法层:测试类的每个服务。 b) 类层:测试同一类中的所有服务与属性之间相 类层: 互作用。 互作用。 c) 模板层:测试协同工作的类之间的相互作用。 模板层:测试协同工作的类之间的相互作用。 d) 系统层:把子系统组装成完整的面向对象软件 系统层: 系统,同时进行测试。 系统,同时进行测试。 2.面向对象的确认测试 主要用黑盒法, 主要用黑盒法,根据动态模型和描述系统 行为的脚本来设计测试用例。 行为的脚本来设计测试用例。
基于三个模型的分析过程
功能模型着重于系统内部数据的传送 和处理。 和处理。 功能模型定义“做什么” 功能模型定义“做什么” 动态模型定义“何时做” 动态模型定义“何时做” 对象模型定义“对谁做” 对象模型定义“对谁做”。
面向对象分析原则: 面向对象分析原则: 1.包含原则 对现实世界中事物进行抽象时, 对现实世界中事物进行抽象时,强调 对象的各个实例的相似方面。 对象的各个实例的相似方面。 2.排斥原则 对不能抽象成某一对象的实例, 对不能抽象成某一对象的实例,要明 确地排斥。 确地排斥。
面向对象方法学的主要优点
1. 与人类习惯的思维方法一致 2. 稳定性好 3. 可重用性好 4. 较易开发大型软件产品 5.可维护性好
8.1.2 面向对象的概念
1.对象(object) 对象(object) (1)对象的定义:在应用领域中有意义的、与 对象的定义:在应用领域中有意义的、 所要解决的问题有关系的任何事物都可作为 对象。 对象。 (2)对象的特点
9.2.3 划分主题 1、主题 主题是把一组具有较强联系的类组织在 一起而得到的类的集合。 一起而得到的类的集合。 2、主题图 主题图有三种表示方式:展开方式、 主题图有三种表示方式:展开方式、压 缩方式和半展开方式。 缩方式和半展开方式。
9.3 建立动态模型 动态模型描述对象和关系的状态、 动态模型描述对象和关系的状态、状态转 换的触发事件,以及对象的服务(行为)。 换的触发事件,以及对象的服务(行为)。 状态: (1)状态:对象在其生存周期中的某个特定阶 段所具有的行为模式。 段所具有的行为模式。 事件: (2)事件:事件是引起对象状态转换的控制信 息。瞬时完成。 瞬时完成。 服务:也称为行为, (3)服务:也称为行为,对象在某种状态下所 发生的一系列处理操作。需要时间。 发生的一系列处理操作。需要时间。 动态模型的建立首先编写脚本, 动态模型的建立首先编写脚本,从脚本中 提取事件,画出UML的顺序图 的顺序图, 提取事件,画出UML的顺序图,再画出对象的 状态转换图。 状态转换图。
以数据为核心 主动性 实现了数据封装 本质上具有并行性 模块独立性好
2.类(Class):类是具有相同属性和相 Class): ):类是具有相同属性和相 同 方法的一组对象的集合。 方法的一组对象的集合。 3.实例(Instance):一个对象是类的 实例(Instance): ):一个对象是类的 一个实例。 一个实例。 4.属性(Attribute):是类中所定义的数 属性(Attribute): 据,它是对客观世界实体所具有的性质 的抽象。 的抽象。 5.消息(Message):消息就是向对象发出 消息(Message): 的服务请求。分为同步消息和异步消息 的服务请求。
8.1 面向对象方法概述
对象(Object): ):面向对象方法把客观世 对象(Object):面向对象方法把客观世 界中的实体抽象为问题域中的对象。 界中的实体抽象为问题域中的对象。 每个对象可用它本身的一组属性和它可以 执行的一组操作来定义。 执行的一组操作来定义。 属性一般只能通过执行对象的操作来改变。 属性一般只能通过执行对象的操作来改变。 一般只能通过执行对象的操作来改变 操作又称为方法或服务 操作又称为方法或服务,它描述了对象执 又称为方法或服务, 行的功能,若通过消息传递, 行的功能,若通过消息传递,还可以为其他对 象使用。 象使用。
OOA的两个任务: OOA的两个任务: 的两个任务 1、形式地说明我们所面对的应用问题, 形式地说明我们所面对的应用问题, 最终成为软件系统基本构成的对象, 最终成为软件系统基本构成的对象,还有 系统所必须遵从的, 系统所必须遵从的,由应用环境所决定的 规则和约束。 规则和约束。 2、明确地规定构成系统的对象如何协同 合作,完成指定的功能。 合作,完成指定的功能。
UML顺序图或活动图 例:画UML顺序图或活动图 【例】画出招聘考试管理系统的顺序图 某市人事局举行统一招聘考试。首先, 某市人事局举行统一招聘考试。首先,各招聘单 位向人事局登记本单位各专业的招聘人数,由人 位向人事局登记本单位各专业的招聘人数, 事局向社会公布招聘情况;考生报名、填志愿; 事局向社会公布招聘情况;考生报名、填志愿; 人事局组织安排考试;录入考试成绩;向考生和 人事局组织安排考试;录入考试成绩; 招聘单位公布成绩;招聘单位进行录用; 招聘单位公布成绩;招聘单位进行录用;发录用 通知书。这里,共有三个对象类:人事局、 通知书。这里,共有三个对象类:人事局、考生 和招聘单位。 和招聘单位。
动态模型 动态模型着重于系统的控制逻辑。 动态模型着重于系统的控制逻辑。 它包括两个图,一是状态图,一是顺 它包括两个图,一是状态图, 序图。 序图。
功能模型 功能模型表明,通过计算,从输入数 功能模型表明,通过计算, 据能得到什么样的输出数据,不考虑参加 据能得到什么样的输出数据, 计算的数据按什么时序执行。 计算的数据按什么时序执行。 功能模型由多个数据流图组成,它们 功能模型由多个数据流图组成, 指明从外部输入,通过操作和内部存储, 指明从外部输入,通过操作和内部存储, 直到外部输出,这整个的数据流情况。 直到外部输出,这整个的数据流情况。
来自百度文库
9.1 面向对象分析
面向对象分析过程: 面向对象分析过程: 1. 分析对象的属性、服务及消息的传递。 分析对象的属性、服务及消息的传递。 2. 分析对象在系统中的不同状态及状态的转换。 分析对象在系统中的不同状态及状态的转换。 通过分析要建立三种模型: 通过分析要建立三种模型: 描述系统数据结构的对象模型。 描述系统数据结构的对象模型。 描述系统控制结构的动态模型。 描述系统控制结构的动态模型。 描述系统功能的功能模型。 描述系统功能的功能模型。
相关文档
最新文档