类图和对象图

类图和对象图

1. 类的属性

[可见性] 属性名 [:类型] [’['多重性 [次序] ‘]’] [=初始值] [{特性}]
可见性:Java也叫访问控制 属性名:personNumber
类型:基本数据类型或用户自定义类型(类)
多重性:如1…*表示该属性值有一个或多个,还可以是有序的(用ordered指明)
约束特性:changeable(可变的); addOnly(只可加); Frozen(冻结的);
作用域:具有类作用域的属性 – Java的静态变量或类变量
具有对象作用域的属性 – 非静态变量或实例变量

2. 类的操作

[可见性] 操作名 [(参数列表)] [:返回类型] [{约束特性}]
操作名:setValue
约束特性:文字串(说明操作的一些有关信息)
操作接口:操作名、参数列表和返回类型组成操作接口
操作的实现:操作的具体实现叫方法
类的职责:属性和操作(形式化描述) – 职责(非形式化描述)

3. 类之间的关系

(1)关联关系:关联(Association)关系是类与类之间最常用的一种关系 – 是一种结构化关系 – 用于表示一类对象与另一类对象之间有联系 – 如汽车和轮胎、班级和学生等等用Java等实现关联关系时通常将一个类的对象作为另一个类的成员变量
●双向关联:一条实线或者实线双向箭头
●单向关联:实线单向箭头
●自关联;
●多重性关联;
●聚合关系;:空心棱形实线箭头
●组合关系:实心棱形实线箭头

(2)依赖关系:依赖(Dependency)关系是一种使用关系–大多数情况下–依赖关系体现在某个类的方法使用另一个类的对象作为参数 – 驾驶员开车–在Driver类的drive( )方法中将Car类型的对象car作为一个参数传递 – 以便在drive( )方法中能够调用car的move( )方法–且驾驶员的drive( )方法依赖车的move( )方法–因此类Driver依赖类Car
符号:虚线箭头

(3)泛化关系:泛化(Generalization)关系也就是继承关系 – 用于描述父类与子类之间的关系–父类又称作基类或超类–子类又称作派生类
符号:实线空心三角形箭头

4. 类版型

实体类:保存需要放进持久存储体(数据库-文件等)的信息–通常实体类在数据库中有 相应的表(实体的属性对应表的字段) – 但不一定一一对应

边界类:位于系统与外界的交界处-它是系统内的对象和系统外的参与者的联系媒介 窗体-对话框-报表-表示通讯协议-直接与外部设备(如打印机和扫描仪)交互的类-直接与外部系统交互的类等都是边界类的例子

控制类:协调边界类和实体类之间的交互–如果用例逻辑比较简单可以不用控制类而 直接利用边界类来操作实体类实现业务逻辑
引入边界类-控制类-实体类的概念-有助于分析人员和设计人员确定系统中的类;一般按下面的BEC模式进行分析和设计。

BEC模式:将对象分为三类–边界对象-控制对象-实体对象
●参与者只能与边界对象互动
●每个用例可以对应生成一个控制类
●实体对象一般不能发送消息给边界对象和控制对象(返回消息除外)

5. 类图

类及其关系–构成类图–描述的是类和类之间的静态关系;在软件开发的不同阶段使用的类图具有不同的抽象层次。

领域模型–从面向对象的视角看待现实世界–主要工作是找出相关类–然后明确它们的关系–必要时加入一些多重性描述和业务规则–不涉及具体语言

分析模型–从领域模型将得到实体类–对软件系统进行分析–可以得到边界类;描述的是软件的接口–不是软件的实现–最利于开发者使用和交流的类图

设计模型–加入了抽象类–接口等设计元素–加入了设计模式等–描述了类的实现细节-可以直接映射到可执行代码–因此–涉及具体语言和设计模式等

6. 对象图

表示一组对象及它们之间的联系–是系统的详细状态在某一时刻的快照;常用于表示复杂的类图的一个实例;
对象是类的实例–对象之间的链是类之间的关联的实例–因此–对象图实质上是具有关联关系的类图的实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值