北大青鸟面向对象分析设计ppt(part3).ppt_第1页
北大青鸟面向对象分析设计ppt(part3).ppt_第2页
北大青鸟面向对象分析设计ppt(part3).ppt_第3页
北大青鸟面向对象分析设计ppt(part3).ppt_第4页
北大青鸟面向对象分析设计ppt(part3).ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ACCP V4.0 第三章 类图 ACCP V4.0 回顾 q用例图用于描述系统的需求 q用例之间的关系有:包含或扩展关系 q用例图用于表示系统的行为或功能 q用例图的各个组成部分包括:系统、参与者和用 例 qRational XDE 可以方便的编写用例图 2 ACCP V4.0 目标 q标识和理解关键抽象 q标识所需的类 q标识所需的类属性和方法 q讨论类之间的各种关系 q掌握如何在 Rational XDE 中绘制类图 3 ACCP V4.0 q关键抽象是在系统范围上的一些重要概念,主要 是从需求中得到(例如词汇表、业务规约以及用 例模型),这些概念也会涉及到系统所针对的业 务领域知识。关键抽象通常表现为系统的实体 , 其重要的原因为: 关键抽象 在线拍卖 拍卖和拍卖物项 信用卡 竞拍 分类 用户帐户和未付款项 关键抽象 业务实体 实体之间的关系 例如:一个拍卖就 包含一个拍卖物项 强调与系统设计有关的实体 排除系统外部多余的实体 最后,关键抽象成为分析模型中的类 4 ACCP V4.0 候选类 q在分析的初始过程中阐明的类称为候选类 冗余类 无关类 标识类的角色 多个类定义同一 个实体 任何不属于应用程 序域的类都需去除 保留基类,而排除 所有作为角色的类 标识候选类 模糊类 没有明确功能的 类称为模糊类 5 ACCP V4.0 识别类 3-1 q 类是一组对象,这些对象具有共同的属性和共同的行为 q 类是创建对象的模板 类可捕获对象的本质 对象是类的实例化 6 ACCP V4.0 识别类 3-2 q在标识类时,需查找: q有形事物 q事件 q扮演的角色 q交互 q位置 q组织单位 7 ACCP V4.0 识别类 3-3 q标识的类也称为候选类。可从以下方面标识类: 需求说明 用例 应用程序专家 研究系统 q 分析以下方面可标识其他候选类: 相似的系统 以前的系统 用例 应用程序专家 需求说明 以前的系统 相似的系统 候选类 8 ACCP V4.0 类图 2-1 q 类是对一组对象的描述,这些对象具有相似的属性、操作、关系 和行为。 Window size: Size visibility: boolean display() hide() 类名称 属性 操作 类名称 属性 方法 结结构说说明语语法 类 对一组对象的描述,这些对象具有相 同的属性、操作、方法、关系和语义 9 ACCP V4.0 类图 2-2 q 类名称通常可对应于现实生活中的实体 类名称 类属性 类方法 属性(:特性,特征) 属性是进一步描述对象实例的数据。 操作(:方法、服务和行为) 操作是对象可执行的过程。 AccountHolder -Name: String -Age: Integer +Status: Boolean # Hobby : String AccountHolder -Name : String -Age : Integer +Status : Boolean # Hobby : String +GetName(): String +SetName(sName : String) Order +Order(id: integer) +getQuantity(): integer +setQuantity(id: integer) +addOrder(id: integer) +cancelOrder(id:integer) 类名称 方法 参数类型 参数名称方法名 称 -id: integer -quantity: integer = 0 访问模式 属性 属性名称 属性类型 属性值 10 ACCP V4.0 在 Rational XDE 中构建类图 q创建一个项目 q新建一个类图 q添加UML类 q添加属性和操作(方法) 11 ACCP V4.0 对象图 CAH : AccountHolder Name = “Charles” Age = 35 Status = True 实例化于 属性变量赋予的值 类对象 12 ACCP V4.0 q类不是孤立存在的 q因此,类与类之间创建了一种关系: q类关系可能指明某种共享关系 q类关系可能指明某种类型的语义连接 类关系 关联 接口与实现 组合 泛化与继承 聚合 依赖 类关系 13 ACCP V4.0 关联 2-1 结结构说说明语语法 关联 两个或多个类符之间的一种关系,此 关系涉及类的各个实例之间的连接 q 识别类之后,需要识别关联 q 多重性(multiplicity)定义有多少对象参与了某个关系 q 各个类都可能与自身有关联 公司部门雇员 示例:“雇员为公司工作” 14 ACCP V4.0 关联 2-2 public class Person /* modelguid AE706A50-C99B-4002-B0BC-8BF3830FC5A7 */ private Car _Vehicle; public class Car /* modelguid F6646612-CF1E-4039-9A1B-36FD4ACACD5F */ public String go() return new String(“Hi! it going.“); /* modelguid 5439D942-4CD0-4F1E-BF7B-096DFFB66303 */ public void startEngine() 15 ACCP V4.0 泛化 2-1 结结构说说明语语法 泛化 它是较一般类和较具体类之间的分类关系 q 泛化:标识各个类之间的共同性。 q 指明特化类(子类)的对象可取代泛化类(父类)的对象。 q 是“is-a”关系。 形状 抽象 圆圈 父类 子类 抽象类 泛化关系 16 ACCP V4.0 泛化 2-2 public class Printer /* modelguid 949C10B9-AFE3-40BB-8201-3B87B5E23BB0 */ public void print() public class ColorPrinter extends Printer /* modelguid E708B557-A667-4319-B199-A52E7F182B71 */ public void print() public class BlackWhitePrinter extends Printer /* modelguid 6808C7F6-0353-48C8-A325-28E6BAB12FEC */ public void print() 17 ACCP V4.0 依赖 2-1 结结构说说明语语法 依存 如果一个类依靠另一个类的服务来完成其 角色,则它们之间的关系称为依存关系 q 依赖关系指明两个或多个类之间的语义关系,尽管两个类之间没有明确 的关联,一个类发生变化也会导致另一个类发生变化。 q 可用一种构造型来表示依赖的类型。 18 ACCP V4.0 依赖 2-2 public class Worker /* modelguid 48434AC5-09B2-4769-A478-17A9CCF08596 */ public void purchaseCleaner(Cleaner clean) /use cleaner /forget about cleaner public class Cleaner /* modelguid 60A968A8-D591-433F-98DB-536240F149CA */ public void clean() 19 ACCP V4.0 聚合 2-1 结结构说说明语语法 聚合 一种特殊形式的关联,指定了聚合(整 体)和组件部分之间的整体 - 部分关系 q 共享聚合(空心菱形)意味着在组合端的多重性有多个。 q 模拟“整体-部分”关系。 整体部分 门门房子 1*2* 汽车车 20 ACCP V4.0 public class Computer /* modelguid 5B07F355-C068-4F71-B2CC- E5B5E9C298ED */ private KeyBoard _KeyBoard; public class KeyBoard 聚合 2-2 21 ACCP V4.0 组合 2-1 结结构说说明语语法 组合 一种特殊形式的关联,指定了聚合(整 体)和组件部分之间的整体-部分关系 q 这是一种更强的聚合,表达了类与类之间更强的耦合 q 组合的图形为实心菱形。 q 容器负责创建和删除各个部分。 圆圈点 多边形 点 圆圈 22 ACCP V4.0 组合 2-2 import java.util.ArrayList; /* modelguid AA7857DF-9F6C-4A65-A41D-E4A92998A343 */ public class Motor /* modelguid 0BFB212F-9DCE-4D48-AE12-A2DDEA980E17 */ private ArrayList _Cogs = new ArrayList(); /* modelguid E4522F65-B996-4CDD-A75E-81FE14A7FCB1 */ public Motor() this._Cogs.add(new Cog(); this._Cogs.add(new Cog(); public class Cog 23 ACCP V4.0 接口和实现 2-1 符号 类接口用于描述类的 外部可见行为。 它呈现为一个圆圈与 名称一同出现。 验证 类的实现是其内部视 图,涵盖了其行为的 秘密 类的接口提供了其外 部视图,因此在隐藏 其结构以及其行为的 秘密时,强调了抽象 24 ACCP V4.0 接口和实现2-2 public interface ICargoTransport /* modelguid 66855DC0-6F08-42DE-ADA1-FD06625C8605 */ public void loadCargo(); public class Truck implements ICargoTransport public String go() return new String(“It is going!“); /* modelguid 4E19DF60-35EA-4827-943A-51CC99255A48 */ public void loadCa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论