• 1. 第4章 类图及其应用 《Rational Rose 2003基础教程》 配套电子教案
  • 2. 内 容基本概念 类图操作 类规范与类的应用 属性规范与应用 操作规范与应用 关联规范与应用 泛化规范与应用 依赖规范与应用 聚合规范与应用 逻辑包规范与应用
  • 3. 引 言 类图是逻辑视图的重要组成部分,用于对系统的静态结构建模,涉及到具体的实现细节。 在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;在系统编码阶段,根据类图中的类及它们之间的关系实现系统的功能。
  • 4. 类图的地位和作用
  • 5. 1.1 类 定义 类是一组具有相同属性、相同行为、和其他对象有相同关系、有相同表现的对象描述 类具有属性和操作 图形表示 类名、属性、操作 可以简化表示 1 基本概念
  • 6. 1.1 类 属性 一般描述类的某个特征,可以确定并区分对象以及对象的状态 完整的语法表示 [可见性]属性名[多重性][:类型]=[初值][{特殊串}] 操作 操作是与类相关联的行为,表示类提供的服务 完整的语法表示 [可见性] 操作名[(参数表)][:返回类型] [{特殊串}] 1 基本概念
  • 7. 1 基本概念 1.1 类 对象 对象是一个类的实例,对象的每一个属性都有具体的值 图形表示 John是对象名,Person是类名 对象在交互图和状态机中使用 接口 一组可重用的操作,描述类的部分行为 图形表示 两种表示方法
  • 8. 1 基本概念 1.2 关系 1)关联(association) 定义 两个类在概念上有连接关系时,类之间的连接称为关联;提供了不同类的对象可以相互作用的连接 图形表示 用一根连接类的实线表示,用箭头表示关联的方向 ;如果不明确指明方向,则默认关联是双向的
  • 9. 1 基本概念 1.2 关系 2)聚合(aggregation) 定义 类之间的一种整体与部分的关系 体现了一种层次结构,整体类位于部分类的上层,多个部分类处于并列的层次 图形表示 尾端带一个菱形的单箭头直线 菱形指向整体部分
  • 10. 1 基本概念 1.2 关系 3)泛化(generalization) 定义 泛化关系是继承机制中产生的类与类之间的关系 “is a part of”关系:一个事物是另一个事物的种类 图形表示 一条带有空心大箭头的有向实线,箭头指向父类
  • 11. 1 基本概念 1.2 关系 4)依赖 定义 两个元素之间的一种关系,其中一个元素(提供者)的变化将影响另一个元素(客体),或向它提供所需信息 显示一个类引用另一个类 图形表示 用两个模型元素之间带箭头的虚线表示,箭尾处的模型元素(客户)依赖于箭头处的模型元素(提供者)
  • 12. 1 基本概念 1.2 关系 5)实现 定义 类和接口之间的关系是实现关系,表示类实现接口提供的操作显示一个类引用另一个类 图形表示 因接口的表示方法而异
  • 13. 2.1 创建新的类图 步骤 右单击浏览器中的逻辑视图名称“Logical View” ; 单击快捷菜单中的New > Class diagram; 输入新类图的名称。 2 类图操作
  • 14. 2.2 删除类图 删除类图时,类图中的类并不删除,它们仍然在浏览器和其它模型图中 要删除一幅类图: 右单击浏览器中的类图 ; 单击快捷菜单中的Delete。 2 类图操作
  • 15. 2 类图操作2.3 类图工具箱 常用工具如图 可以定制工具箱 右单击工具箱; 单击快捷菜单中的“Customize……”; 在弹出的“自定义工具栏”对话框中,选择相应的工具图标,然后单击“添加”或“删除”将选定的工具图标添加至窗口的工具箱中,或从工具箱中移走。
  • 16. 3 类规范与类的应用 3.1 类规范 8个标签 General标签 Detail标签 Operation标签 Attributes标签 Relations标签 Components标签 Nested标签 Files标签
  • 17. 3 类规范与类的应用 3.1 类规范 1)General标签 名称(Name) 构造型(Stereotype) 输出控制(Export Control) 选项含义Public系统中所有其它类都能访问这个类Protected这个类可以在嵌套类、友元或同一个类中访问Private这个类可以在友元或同一个类中访问Implementation这个类只能由同一包中的其它类访问
  • 18. 3 类规范与类的应用3.1 类规范 1)General标签 构造型(Stereotype) 构造型Actor参与者boundary边界Business actor业务参与者Business entity业务实体Business worker业务工人Control控制Domain域Entity实体Interface接口Table表格View视图
  • 19. 3 类规范与类的应用 3.1 类规范 2)Detail标签 多重性(Multiplicity) 存储需求(Space) 并发性(Concurrency) 类型描述Sequential默认设置。当只有一个控制线程时,类能正常工作;有多个控制线程时,不能保证类能否正常工作Guarded存在多个控制线程时,类正常工作但不同种的类应相互协作,保证不会互相干扰Active类有自己的控制线程Synchronous存在多个控制线程时,类的正常工作不需要与其他类相互协作,类本身能处理互斥情形
  • 20. 3 类规范与类的应用3.1 类规范 3)Attributes标签 4)Operation标签 5)Relations标签 6)Nested标签 创建嵌套类 右单击标签中任一空白处,从快捷菜单中选择Insert,输入嵌套类名称; 按一般方法创建父类和嵌套类:在浏览器中,将嵌套类拖放到父类。
  • 21. 3 类规范与类的应用 3.1 类规范 7)Components标签 显示用于实现系统中类的构件 复选标记框“Show all components”表示是否要显示模型中的所有构件;如果选中该标记,则显示系统中的所有构件;否则,只显示实现所选类的构件 显示构件时,同时还显示构件所属的包,以及实现所采用的编程语言
  • 22. 3.2 类的操作 添加一个类 单击工具箱中的类图标; 在模型图任一位置单击,新类取名为NewClass; 输入新的类名。 删除一个类 单击模型图中要删除的类; 选择Edit > Delete from Model。 3 类规范与类的应用
  • 23. 4.1 属性规范 3个标签: General标签 Detail标签 DDL标签4 属性规范与应用
  • 24. 4 属性规范与应用 4.1 属性规范 1)General标签 属性数据类型(Type) 属性构造型(Stereotype) 属性的初值(Initial) 输出控制(Export Control) 选项含义Public公共属性。任何其它类都可以浏览或修改属性的之值Protected保护属性。类及其派生类可以访问该属性Private专用属性。其他类不能访问该属性Implemented实现属性。只能被同一包中的类访问可见性Rose图注UML图注Public+Protected#Private-Implemented<无>
  • 25. 4.1 属性规范 2) Detail标签 属性控制(Containment) By value:按数值 By reference:按引用 Unspecified:未指定 静态属性(Static) 派生属性(Derived) 4 属性规范与应用
  • 26. 4 属性规范与应用 4.2 属性操作 增加一个属性 右单击浏览器或类图中的类,选择New > Attribute,用Name:DataType = Initial Value格式,输入属性名。或者, 打开类的规范窗口,选择“Attributes”标签,右单击属性区的任何位置,在快捷菜单中选择Insert。 删除一个属性 右单击浏览器某个属性,从快捷菜单选择Delete。或者, 选择类图中的某个属性,用退格键删除模型图中的属性名、数据类型和初始值,单击模型图中任一位置,确认删除。 或者, 打开属性类的类规范窗口,选择“Attributes”标签,右单击要输出的属性,从快捷菜单中选择Delete,确认删除 。
  • 27. 5 操作规范与应用 5.1 操作规范 1)General标签 返回值的类型(Return) 构造型(Stereotype) 输出控制(Export Control) 可见性含义Pulic操作可以被其它类访问。Protected操作可以被子类、友元类或本身访问Private操作可以被友元类或本身访问Implemented操作是公开的,但只被同一包中的类访问
  • 28. 5 操作规范与应用 5.1 操作规范 2)Detail标签 操作变元(argument) 操作协议(Protocol) 操作限制(Qualification) 内存长度(Size) 时间(Time) 并发性(Concurrency) Sequential:只有一个控制线程时,操作正常工作。 Guarded:存在多个控制线程时,不同线程的类相互协作,操作可正常工作。 Synchronous:存在多个控制线程时,操作可正常工作。
  • 29. 5.1 操作规范 3)异常(Exceptions)标签 操作可抛出的异常 通过其中的4个按钮添加、删除和上、下移动异常 5 操作规范与应用
  • 30. 5.1 操作规范 4)前置条件(Preconditions)标签 前置条件(Preconditions) 指定操作运行之前应满足的条件,即操作的入口行为,通常是不等式 交互图(Interaction Diagram) 说明操作语义的交互图 5 操作规范与应用
  • 31. 5.1 操作规范 5)语义(Semantics)标签 语义(Semantics) 指定操作的工作 在文本框中用伪代码描述操作逻辑 交互图(Interaction Diagram) 说明了操作语义的交互图 5 操作规范与应用
  • 32. 5.1 操作规范 6)后置条件(Postconditions)标签 后置条件(Postconditions) 指定操作运行之后要符合的条件,即操作的出口行为,通常是不等式 交互图(Interaction Diagram) 说明操作语义的交互图 5 操作规范与应用
  • 33. 5.2 操作应用 增加一个操作 类似于添加一个属性的操作 删除一个操作 类似于删除一个属性的操作 5 操作规范与应用
  • 34. 6.1 关联规范 1)General标签 关系名(Name) 一个动词或动词短语,描述关系的作用,是可选的 关系名在关系线上斜体显示 6 关联规范与应用
  • 35. 6.1 关联规范 1)General标签 角色(Role) 描述类在关系中的作用 通常是名词或名词短语,显示在起这个作用的类旁边 角色名前带有一个加号“+”, 6 关联规范与应用
  • 36. 6 关联规范与应用 6.1 关联规范 2)Detail标签 链接元素(Link Element) 链接元素也称为关联类,可以放置与关联相关的属性 使用限制(Constraints) 限制是必须符合的条件。在Rose中可以设置关系的限制条件 输入的限制条件在生成代码时成为说明语句
  • 37. 6 关联规范与应用 6.1 关联规范 3)Role A General和Role B General 标签 Rose在生成代码时要给关联建立一个属性 Export Control字段设置该属性的可见性 可见性含义Public公共属性。任何其它类都可以访问或修改属性的之值Protected保护属性。类及其派生类可以访问该属性Private专用属性。其他类不能访问该属性Implemented实现属性。只能被同一包中的类访问
  • 38. 6 关联规范与应用 6.1 关联规范 4)Role A Detail和Role B Detail标签 多重性(Multiplicity) 表示关联中一个类的几个实例与另一个类的一个实例相联系 包容(Containment) 设置关联属性是按值还是按引用包容 Static 类所有的实例共享的属性 Friend 表示客户类能访问提供者类的非公共属性和操作 选项含义By value按数值。属性放在类中By reference按引用。属性放在类外,类指向这个属性Unspecified未指定。还没有指定控制类型
  • 39. 6 关联规范与应用6.2 Key/Qualifier规范 定义 即限定词,。在一对多的关联中,索引范围很广,使用限定符可以缩小关联的范围 按下面的步骤可以打开Key/Qualifier规范窗口: 双击关联,打开关联规范窗口; 单击“Role A Detail”标签; 双击Key/Qualifier字段列表中的限定词。
  • 40. 6.2 Key/Qualifier规范 定义限定词 右单击关联规范窗口Key/Qualifier字段列表,从快捷菜单中选择Insert,直接在列表中输入限定词和类型 删除限定词 右单击关联规范窗口Key/Qualifier字段列表,从快捷菜单中选择Delete 修改限定词 单击关联规范窗口Key/Qualifier字段列表,直接在列表中编辑限定词和类型。6 关联规范与应用
  • 41. 6.3 关联的操作 增加关联 改变关系的导航 在要移动的关系端单击右键,在快捷菜单中选择Navigable 删除关联 6 关联规范与应用
  • 42. 7 泛化规范与应用 7.1泛化规范 General 标签 7.2 泛化操作 创建一个泛化关系 删除一个泛化关系
  • 43. 8 依赖规范与应用 8.1 依赖规范 General标签 8.2 依赖操作 创建一个依赖关系 删除一个依赖关系
  • 44. 9.1 聚合规范 参考关联规范 9.2 聚合操作 创建一个聚合关系 删除一个聚合关系9 聚合规范与应用
  • 45. 10 逻辑包规范与应用 10.1 逻辑包操作 包的定义 包是一种分组机制,将模型中紧密相关的部分放在同一个包中,减少了模型的规模 包之间的关系表现为依赖关系、泛化关系和精化关系 包的操作 增加一个包 删除一个包 10.2 逻辑包规范 4个标签,如图