第10章 面向对象分析和设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1+
损失
折扣
商品
退货
农产品
肉食品
前一页
建 立 对 象 模 型
划分主题
例如:可以把划分成“总行”、 “分行”和“ ATM” 等三个主题,这三 个主题的编号分别是 1、2和3,如图 10.4 所示。
事实上,这个系统的规模并不很大, 也可以不引入主题层。为了使图简单、 清晰,在下面的章节中讨论这个例子时 将忽略主题层。
前一页
前一页
ATM的主题划分
前一页
找出候选的“类—&—对象”
建 立 对 象 模 型
通常,在需求陈述中不会一个不漏的 写出问题域中所有有关的类 —&— 对象。 因此,分析员应该根据领域知识或常识, 进一步提取出隐含的类—&—对象。
例如,在ATM系统的需求陈述中虽然 没写“通信链路”和“事务日志”,但是, 根据领域知识和常识可以知道,在ATM系 统中应该包含这两个实体。
建 立 对 象 模 型
3. 进一步完善 —— 标明阶数
应该初步判定各个关联的类型,并粗略在确 定关联的阶数。但也不必花费过多精力,随着分 析和认识的逐渐深入,阶数也会经常改动。
前一页
前一页
ATM系统原始对象图
表示关联的图形符号
组 合 关 系
归纳关系
前一页
描 绘 教 材 结 构 的 聚 集 树
前一页
ATM、中央计算机、分行计算机及柜员终端组成网络 总行拥有多台ATM
ATM设在主要街道上
分行提供分行计算机和柜员终端 柜员终端设在分行营业厅及储蓄所内 分行分摊软件开发成本 储户拥有账户
前一页
确定关联
建 立 对 象 模 型
1. 初步确定关联
(2)需求陈述中隐含的关联
总行由各个分行组成 分行保管账户 总行拥有中央计算机 系统维护事务日志 系统提供必要的安全性
前一页
识别继承关系
建 立 对 象 模 型
一般可以使用两种方式建立继承关系:
自底向上:抽象出现有类的共同性质泛化出父类, 这个过程实质上模拟了人类归纳思维过程。例如,在 ATM系统中,“远程事务”和“柜员事务”是类似 的,可以泛化出父类“事务”;类似地,可以从 “ATM”和“柜员终端”泛化出父类“输入站”。 自顶向下:模拟人类的演绎思维过程,把现有类 细化成更具体的子类。从应用域中常常能明显看出自 顶向下的具体化工作。例如,带有形容词修饰的名词 词组往往暗示了一些具体类。但是,在分析阶段应该 避免过度细化。
前一页
建 立 对 象 模 型
划分主题
主题(或范畴):是指导读者—需要读懂系统 模型的人,理解大型、复杂模型的一种机制。通过 划分主题,把一个大型、复杂的对象模型分解成几 个不同的概念范畴。心理研究表明,人类的短期记 忆能力一般限于一次记忆5~9个对象,这就是著名的 7加减2原则。面向对象分析从下述两个方面来体现 这条原则:控制可见性和指导读者的注意力。
建立对象模型
主 要 内 容
确定类—&—对象 确定关联 划分主题 确定属性 识别继承关系 定义服务
前一页
建 立 对 象 模 型
确定属性
属性是对象的性质,借助于属性我们能 对类—&—对象和结构有更深入更具体的认识。 注意,在分析阶段不要用属性来表示对象间的 关系,使用关联能够表示两个对象间的任何关 系,而且把关系表示得更清晰、更醒目。 一般说来,确定属性的过程包括分析和 选择两个步骤。
储户拥有现金兑换卡
前一页
确定关联
建 立 对 象 模 型
1. 初步确定关联
(3)根据问题域知识得出的关联
现金兑换卡访问账户
分行雇用柜员
前一页
确定关联
建 立 对 象 模 型
2. 筛选
经初步分析得出的关联只能作为候 选的关联,还需经过进一步筛选,去掉 不正确的或不必要的关联。筛选时主要 根据下述标准删除候选的关联。
前一页
建 立 对 象 模 型
确定“类—&—对象”
在ATM系统的例子中,经过初步筛 选,剩下下列类—&—对象:ATM、中 央计算机、分行计算机、柜员终端、总 行、分行、柜员、储户、账户、事务、 现金兑换卡。
前一页
建立对象模型
主 要 内 容
确定类—&—对象 确定关联(结构) 划分主题 确定属性 识别继承关系 定义服务
前一页
建 立 对 象 模 型
找出候选的“类—&—对象”
另一种更简单的分析方法,称为非正式分析。 这种分析方法以用自然语言书写的需求陈述为依据。 名 词:作为类—&—对象的候选者。
形容词:作为确定属性的线索。 动 词:作为服务(操作)的候选者。
用这种简单方法确定的候选者是非常不准确的, 往往包含大量不正确的或不必要的事物,还必须经 过更进一步严格筛选。
前一页
确定属性
建 立 对 象 模 型
1. 分析
通常,在需求陈述中用名词词组表示属性。 属性的确定既与问题域有关,也和目标系统的 任务有关。应该仅考虑与具体应用直接相关的 属性,不要考虑那些超出所要解决的问题范围 的属性。 在分析过程中应该首先找出最重要的属性, 以后再逐渐把其余属性增添进去。在分析阶段 不要考虑那些纯粹用于实现的属性。
前一页
建 立 对 象 模 型
筛选出正确的“类—&—对象”
冗余:
如果两个类表达了同样的信息,则保留在此 问题域中最富于描述力的名称。
例如:用非正式分析法得出了34个候选的类, 其中储户与用户,现金兑换卡与磁卡及副本分别描 述了相同的二类信息,因此,应该去掉“用户”、 “磁卡”、“副本”等冗余的类,仅保留“储户” 和“现金兑换卡”这两个类 。
建 立 对 象 模 型
划分主题
在开发大型、复杂系统的过程中,为了降低复 杂程度,人们习惯于把系统再进一步划分成几个 不同的主题。 应该按问题领域而不是用功能分解方法来确定 主题。此外,应该按照使不同主题内的对象相互 间依赖和交互最少的原则来确定主题。 主题可以采用UML中的包来展现。
在开发很小的系统时,不一定要引入 主题层。
前一页
建 立 对 象 模 型
确定关联(删去的)
① ATM、中央计算机、分行计算机及柜员终 端组成 网络。 ② ATM设在主要街道上。 ③ 分行分摊软件开发成本。
④ 系统提供必要的安全性。
⑤ 系统维护事务日志。 ⑥ ATM吐出现金。
⑦ ATM打印账单。 ⑧ 柜员终端设在分行营业厅及储蓄所内。
前一页
确定关联
对象模型
动态模型
功能模型
建立对象模型
主 要 内 容
确定类—&—对象 确定关联 划分主题 确定属性 识别继承关系 定义服务
前一页
建 立 对 象 模 型
确定“类—&—对象”
类—&—对象是在问题域中客观存在的, 系统分析员的主要任务,就是通过分析找 出这些类—&—对象。首先,找出所有候选 的类—&—对象;然后,从候选的类—&— 对象中筛选掉不正确的或不必要的。
前一页
建 立 对 象 模 型
找出候选的“类—&—对象”
下面以ATM系统为例,说明非正式分析过程。 认真阅读需求陈述,从中找出下列名词,可以把它 们作为类—&—对象的初步的候选者 : 银行,自动取款机(ATM),系统,中央计算 机,分行计算机,柜员终端,网络,总行,分行, 软件,成本,市,街道,营业厅,储蓄所,柜员, 储户,现金,支票,账户,事务,现金兑换卡,余 额,磁卡,分行代码,卡号,用户,副本,信息, 密码,类型,取款额,账单,访问。
前一页
建 立 对 象 模 型
确定关联
两个或多个对象之间的相互依赖、相 互作用的关系就是关联。分析确定关联, 能促使分析员考虑问题域的边缘情况,有 助于发现那些尚未被发现的类 —&— 对象。
前一页
确定关联
建 立 对 象 模 型
1. 初步确定关联
在需求陈述中使用的描述性动词或动词 词组,通常表示关联关系。
杂货店、库存、顾客、商品、终端、退货、供 应商、发货、肉食品、农产品、损失、折扣
练习:确定上述问题中对象类之间可 能有的继承关系
杂货店、库存、顾客、商品、终端、退货、供 应商、发货、肉食品、农产品、损失、折扣
练习:建立上面问题的对象模型
供应商 发货 杂货店 终端 库存货物
交易 -名称 -数量 -金额 -日期 顾客 -姓名 -地址
识别继承关系
确定了类的属性之后,就可以利用继承机 制共享公共性质,并对系统中众多的类进行归 纳组织。 继承关系的建立实质上是知识抽取过程, 它应该反映出一定深度的领域知识,因此必须 有领域专家密切配合才能完成。
通常,许多归纳关系都是根据客观世界现 有的分类模式建立起来的,只要可能,就应该 使用现有的概念。
前一页
ATM
增 加 继 承 关 系 对 象 模 型
ATM
建立对象模型
主 要 内 容
确定类—&—对象 确定关联 划分主题 确定属性 识别继承关系 定义服务
前一页
练习:用非正式方法分析以下问题中 的对象
一家杂货店想使其库存管理自动化,这家杂 货店拥有能够记录顾客购买的所有商品的名 称和数量的销售终端 顾客服务台也有类似的终端,以处理顾客的 退货。它在码头有另一个终端处理供应商发 货。肉食部和农产品部都有用于输入由于损 耗导致的损失和折扣。
在初步确定关联时,大多数关联可以 通过直接提取需求陈述中的动词词组而得出。
最后,分析员还应该与用户及领域专 家讨论问题域实体间的相互依赖、相互作用 关系,根据领域知识再进一步补充一些关联。
前一页
建 立 对 象 模 型
确定关联
1. 初步确定关联
以ATM系统为例,经过分析初步确定出下列 关联:
(1)直接提取动词短语得出关联
wk.baidu.com
前一页
确定属性
建 立 对 象 模 型
2. 选择
认真考察经初步分析而确定下来的那些 属性,从中删掉不正确或者不必要的属性。
前一页
ATM 系 统 中 各 个 类 的 属 性
建立对象模型
主 要 内 容
确定类—&—对象 确定关联 划分主题 确定属性 识别继承关系 定义服务
前一页
建 立 对 象 模 型
• 找出候选的类—&—对象
• 筛选出正确的类—&—对象
前一页
建 立 对 象 模 型
找出候选的“类—&—对象”
对象是问题域中有意义的事物的抽 象,它们既可能是物理实体,也可能是 抽象概念。具体地说,大多数客观事物 可分为下述五类。
前一页
建 立 对 象 模 型
找出候选的“类—&—对象”
( 1 )可感知的物理实体。例如:飞机、书、房 屋等等。 ( 2 )人或组织的角色。例如:医生、教师、雇 员、计算机系、财务等等。 ( 3 )应该记忆的事件。例如:飞行、演出、访 问、交通事故等等。 (4)两个或多个对象的相互作用,通常具有交易 或接触的性质。例如:购买、纳税、结婚等等。 (5)需要说明的概念。例如:政策、法规、版 权等等。
面 向 对 象 分 析 的 基 本 过 程
前一页
三个子模型与五个层次
上述五个层次对应着在面向对象分析 过程中建立对象五项主要活动:
• 找出类—&—对象
• 识别主题
• 识别结构
• 定义属性
• 定义服务
面 向 对 象 分 析 的 基 本 过 程
前一页
三个子模型与五个层次
面向对象建模得到的模型包含对象的 三个要素:
前一页
建 立 对 象 模 型
确定关联
2. 筛选
已删去的类之间的关联 如果在分析确定类—&—对象的过程中 已经删掉了某个候选类,则与这个类相关 的关联也应该删去,或用其他类重新表达 这个关联 。
前一页
确定关联
建 立 对 象 模 型
2. 筛选
已删去的类之间的关联
以ATM系统为例,由于已经删去了 “系统”、“网络”、“市”、“街道”、 “成本”、“软件”、“事务日志”、“现 金”、“营业厅”、“储蓄所”、“账单” 等候选类,因此,与这些类有关的下列八个 关联也应该删去。
第10章 面向对象分析 OOA
面 向 对 象 分 析 的 基 本 过 程
前一页
三个子模型与五个层次
面向对象建模得到的模型包含对象的 三个要素:
对象模型
动态模型
功能模型
面 向 对 象 分 析 的 基 本 过 程
前一页
三个子模型与五个层次
复杂问题(大型系统)的对象模型由下五个 层次组成:主题层(也称为范畴层)、类—&— 对象层、结构层、属性层和服务层,如图:
表示关联的图形符号
对 象 模 型
关联关系
限定:一个受限的关联由两个对象及
一个限定词组成,可以看作一种特殊的链属 性。利用限定词通常能有效地减少关联的阶 数。
前一页
表示关联的图形符号
对 象 模 型
关联关系
链属性:链属性就是关联链的性质。
前一页
建立对象模型
主 要 内 容
确定类—&—对象 确定关联 划分主题 确定属性 识别继承关系 定义服务