ch10面向对象的设计方法

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

《边界》 命令窗口
34
命令窗口
2020/11/17
10章 面向对象的设计方法
《控制》
⑶控制类(设计阶段) 用例管理
用例管理
➢控制类:在边界类和实体类中间起协调作用的类, 在域层和可视层之间起开关控制的作用(它包含 了事件的应用逻辑或业务规则)。
➢它负责从边界类对象获取信息,然后发送到适当 的实体类对象,就像是域层和可视层之间的一个 开关或控制器。
➢如果参与者是一个类,也 execute Query( ) 可给其添加属性和操作。 get Connection( )
参与者及其操作
28
2020/11/17
10章 面向对象的设计方法
构造型用《》符号描述
➢域模型展现用户工作环境下的情况及它们间的联 系,类不是特指软件类。创建设计类图,则要定 义软件类。
➢基于一个已存在的模型元素定义一种新的 模型元素。
➢可应用于所有的模型元素(类、节点、组 件、关系、包、操作)
27
2020/11/17
10章 面向对象的设计方法
例:参与者的三种表示形式
Actor
Icon形式
Actor
Label形式
Actor
Decoration形式
➢参与者可用构造型表示。
《Actor》 Bill System
⑴创建设计类图的基础版本,或初步模型:包含 属性名称等基本信息,以便用来设计交互图。
⑵开发交互图,即为每一个用例产生一个交互图: 其决定哪些对象一起工作,及怎样协同工作。 (系统设计的核心)。
⑶根据开发交互图时得到的信息,返回设计类图 并开发方法名称(可视化和特征信息是在设计类 图的迭代中被修改的)。
4
2020/11/17
10章 面向对象的设计方法
10.1 OO设计—分析和程序设计的桥梁
➢OO设计是一个建立一系列OO设计模 型的过程,程序员利用这些模型对系统 进行编码和测试。
➢在软件设计中,细节设计规范主要是由 软件设计专家完成的,用户只是偶尔参 与——主要是为了对设计进行纠正。
5
2020/11/17
10章 面向对象的设计方法
3. 方法特征包括内容
➢方法可见性; ➢方法名; ➢类型表达式(方法返回参数的类型); ➢方法参数列表(输入参数)。 ➢方法特征:描述调用该方法所需的所有
信息的符号。
40
2020/11/17
10章 面向对象的设计方法
参数表
➢在OO的程序设计中,分析员通过使用 完整标识来识别每一个方法。
2020/11/17
10章 面向对象的设计方法
2. 属性的格式
➢属性可见性(+:可见,-:不可见。可见性表 示其他对象是否能直接访问这些属性);
➢属性名称; ➢类型表达式(如字符型、字符串型、整型、
数字型、货币型或日期型); ➢初值; ➢原型(在花括号内),比如{关键字}。
39
2020/11/17
➢ 职员此时会输入个人 信息的更改(消息4)。
2020/11/17
10章 面向对象的设计方法
2. 谁在控制
➢没有模块能进行控制。 ➢有一个启动程序,但一旦程序开始执行,
就没有哪个模块或对象来控制了。(与结 构化程序不同,没有主控模块) ➢结构化程序←→主机-终端(指令) ➢OO程序←→计算机网络(中心任务)
《数据访问》 命令数据库读取
36
命令数据库读取
2020/11/17
10章 面向对象的设计方法
10.2.2 设计类符号
1. 定义设计类的内部符号 2. 属性的格式 3. 方法特征包括内容
37
2020/11/17
10章 面向对象的设计方法
1. 定义设计类的内部符号
➢名字:类名、构造型
➢属性
➢方法
38
➢实现方法:将它们写入文件或DB。实体类在 DB中有相应的表,其属性对应DB中的字段。
33
2020/11/17
10章 面向对象的设计方法
⑵边界类(设计阶段)
➢从系统和外界进行交互的对象中归纳、抽象出来。 ➢是系统内对象和系统外的参与者的联系媒介,外
界消息通过边界类的对象实例发送给系统。(窗 体、对话框、报表) ➢边界类:存在于系统的自动化边界上的类。
的说明。
20
2020/11/17
10章 面向对象的设计方法
10.2 设计类和设计类图
10.2.0 设计类图与域模型类图 10.2.1 设计类图符号 10.2.2 设计类符号 10.2.3 一些基本的设计准则 10.2.4 开发初步设计类图
21
2020/11/17
10章 面向对象的设计方法
10.2.0 设计类图与域模型类图
间的联系。
14
2020/11/17
Student 类 的 简 化 设 计 类
15
10章 面向对象的设计方法
2020/11/17
10章 面向对象的设计方法
10.1.2 OO设计过程和模型
1. 设计过程 2. 输入的模型 3. 用例的实现
16
2020/11/17
10章 面向对象的设计方法
1. 设计过程-步骤
10
2020/11/17
10章 面向对象的设计方法
3. 模块的实例化
➢OO系统由一系列计算对象组成。每个对象都封 装了它自身的数据和程序逻辑。
➢分析员通过一个类来定义程序逻辑的结构和数据 字段。类定义描述一个执行对象的结构或模板。
➢只有当程序开始执行时,对象才能存在。该过程 称为类模块的实例化,或基于类定义所提供的模 板生成对象实例。
➢实例化:根据类定义所提供的模板创建对象。
11
2020/11/17
10章 面向对象的设计方法
4. OO设计目标
➢识别并确定所有对象,并生成每个用例,比如 用户界面对象、问题域对象及DB访问对象。
➢用足够的细节说明每个类,使程序员能理解对 象是如何协同工作以生成用例,并可为每一个 类编写OO的代码。
25
2020/11/17
10章 面向对象的设计方法
10.2.1 设计类图符号
1. 构造型 2. 标准的构造型
26
2020/11/17
10章 面向对象的设计方法
1. 构造型
➢构造型是UML扩展机制,防止UML变得 复杂,允许用户进行必要的扩展和调整。
➢它必须在UML中已经定义的内容基础之 上,为已有的元素增加新的语义而非语法。
第10章 面向对象的设计方法
2020/11/17
10章 面向对象的10.1 面向对象设计——分析和程序设计的桥梁 10.2 设计类和设计类图 10.3 交互图——实现用例和定义方法 10.4 用顺序图设计 10.5 用协作图设计 10.6 更新设计类图 10.7 包图——将主要部分结构化 10.8 三层设计的实现问题 要点回顾
➢方法重载:两个方法有同一名字(getCustomer)。 ➢要知道哪个方法被激活,则编译器要知道包含
参数是什么——即输入的参数是数字 (CustomerID)还是字符串(CustomerName)。
➢UML允许设计者使用构造型为每一个类指明一 个专门的类型。构造型将模型元素以特定的类型 分类。通过说明要强调的特征来扩展模型元素的 基本定义。
➢开始设计一个用例图时,首先要定义一个构造型。
➢构造型:按照模型元素的特征进行归类的一种方
式,用《》符号描述。
29
2020/11/17
扩展机制示例
衍型exception使得 Overflow成为一个
➢在一个用例中,一个控制类应该同一个且仅一个 参与者相关联。
➢其协调边界类和实体类之间的消息及消息发送的 顺序。
35
2020/11/17
10章 面向对象的设计方法
⑷数据访问类(设计阶段)
➢数据访问类:从DB获取信息。 ➢从DB获取信息或向DB发送信息的类。 ➢不同于向实体类方法中插入DB访问逻
辑(包括SQL语句),在设计中通常包含 一个访问DB的独立的类的层次。
9
10章 面向对象的设计方法
➢ 程序包括输入窗口对 象,用来输入学生ID 及其他信息。
➢ 当学生输入ID后,窗 口对象会发消息(消息 2)给学生类,程序会 产生一个新的学生对 象(实例),同时也转到 DB中取得学生信息并 把这些信息组成一个 对象(消息3)。
➢ 执行后新的学生对象 给窗口对象返回一个 消息并显示在屏幕上。
阅读章节要求
2
2020/11/17
10章 面向对象的设计方法
先导案例
➢NEW CAPlTAL BANK
3
2020/11/17
10章 面向对象的设计方法
概述
➢开发OO设计模型,程序员要用其为系统编码。 ➢开发设计类图和交互图(顺序图和协作图)。 ➢为域层、可视层和数据访问层开发设计类图。 ➢将类关联到包图中,并说明其中的联系和依赖。 ➢优秀的设计准则,以及应用这些准则的方法。
➢一些OO语言允许多个方法使用同一个 名称,为了区分使用参数表。
➢在OO语言中,需要用方法名和参数表 去激活相应的方法。
41
2020/11/17
10章 面向对象的设计方法
方法重载
➢要通过客户ID或客户名来取得客户记录,可建 立两个方法,并为它们起同一个名字: “getCustomer(CustomerlD)”、 “getCustomer(CustomerName)”。
➢设计类图和详细交互图均使用对方作为设 计时的输入,二者的开发过程是平行的。
➢设计类图是OO分析时开发的域模型类图的 扩展(分析阶段可忽略属性或方法)。
➢域模型类图揭示问题域类和它们之间的联 系。
➢设计类图是域设计模型类图更详细的体现。 通过集成来自交互图和其他模型的信息来 完成。
22
2020/11/17
7
2020/11/17
10章 面向对象的设计方法
1. OO程序如何工作
➢OO程序是由一系列协同完成某一任务的 程序对象组成。
➢每个程序对象有程序逻辑和一些必要的属 性,这些逻辑和属性封装在一个单元中。
➢对象之间通过互相传递消息来协调工作, 它们共同工作来完成主程序的功能。
8
2020/11/17
OO事件驱动程序流
10章 面向对象的设计方法
➢设计类图时,还要在以前的域模型的基础 上增加很多类。
➢当这些类被定义后,通常会在不同的类图 中证明它们。
➢系统中的类能被分解到各种不同的类图中, 比如用户界面类。
➢也用子系统来开发各种类图。
23
域模型类图 设计类图
2020/11/17
额外类的例子
10章 面向对象的设计方法
➢例:学生注册系统,用程序语言实现部分类的 定义。分别用Java和Visual 实现类 的定义。
12
Java
VB
2020/11/17
10章 面向对象的设计方法
5. 简化设计类例
➢OO设计的主要部分是设计类图、交互图, 还要设计有些类的状态图。
➢如:一个设计类说明帮助定义属性和方法。 ➢通过代码可以帮助了解设计和编程实现之
⑷用包图将设计类图分割成相关的功能。
17
2020/11/17
带 有 各 自 输 入 模 型 的 设 计 模 型
18
10章 面向对象的设计方法
2020/11/17
10章 面向对象的设计方法
2. 输入的模型
➢交互图:用例图、用例描述、活动图、系 统顺序图、设计类图
➢设计类图:域模型类图、交互图 ➢包图:设计类图
19
2020/11/17
10章 面向对象的设计方法
3. 用例的实现
➢称设计模型的最终开发结果为用例的实现。
➢术语实现指的是对每个用例的详细系统过 程进行说明,而不是实现用例,换言之, 是制定了软件的蓝图。
➢OO的设计也是用例驱动的(设计是由一个 用例接着一个用例完成的)。
➢用例的实现:对每个用例的详细系统过程
构造型的速记 符号,称图标
2020/11/17
10章 面向对象的设计方法
《实体》
⑴实体类 消费者
➢实体类:是问题域中的核心类。
消费者
➢从客观世界中的实体对象归纳和抽象出来(来自 域模型)。用于长期保存在系统中的信息以及提 供针对这些信息的相关处理行为。实体类的对 象是永久性的,即持久类。
➢持久类:程序结束后仍然存在的实体类。在系 统关闭后这些数据仍存在。
10章 面向对象的设计方法
10.1 OO设计—分析和程序设计的桥梁
10.1.1 OO程序设计概述 10.1.2 OO设计过程和模型
6
2020/11/17
10章 面向对象的设计方法
10.1.1 OO程序设计概述
1. OO程序如何工作 2. 谁在控制 3. 模块的实例化 4. OO设计目标 5. 简化设计类例
模型元素
10章 面向对象的设计方法
EventQueue中版本 和作者是标记值
add上的约束{ordered}使得 EvenrQueue中的事件按序排列
30
2020/11/17
10章 面向对象的设计方法
2. 标准的构造型
(0)设计模型中的标准构造型 ⑴实体类 ⑵边界类 ⑶控制类 ⑷数据访问类
31
设 计 模 构造型类 型 中 的 标 准 构 造 型
相关文档
最新文档