UML-类
————————————————————类图的作用——————————————————————————
软件建模:
功能模型:用例模型
数据模型(对象模型):类图
行为模型:顺序图、互动图。。。。
数据库的依据(类图是ER图的超集)、生成代码、体现类与类之间的关系、可视化体现
———————————————————————类—————————————————————————
属性(attribute)描述了类的静态特征
操作(operation)描述了类的行为
——————————————————————————————————————————————————
对象与类是同构的,类是对象的抽象,对象是类的实例。
——————————————————————————————————————————————————
面向对象需求分析(OOA)、面向对象设计(OOD)、面向对象程序设计(OOP)、面向对象测试(OOT)
———————————————————如何识别类与对象———————————————————————
词性法:
找出事件流当中所有名词,有些名词是用来描述的,将其剔除。
———————————————————类在UML当中的表示————————————————————
第一个隔间-类名(驼峰式命名法):类名首字母小写,类名包含多个单词,每个单词的首字母要大写,且中间没有空格。
名称下方没有下划线的是类,有下划线的是对象。
类名下方的第一个隔间内。单字的属性名要小写,多个单词的属性名要去掉空格,且除第一个单词外其余单词首字母都要大写。
第二个隔间-属性定义语法:
[可见性] 属性名 [:类型][[多重性]][=初始值][{特性串,特性串}]
可见性 | 类的成员是否能被其他类可见或者可访问 | public(+,允许类的内外部访问),protected(#,允许本类及子类访问)private(-,仅允许在本类中访问)package(~,仅允许在定义的包中访问) |
类型 | 属性值的类型 | |
多重性 | 类的实例中有多个该属性的实例 | |
初始值 | 属性初始化即具有的值,可以简化类实例时的初始化工作 | |
特性串 | 属性其他需要特别说明的特性 |
第三个隔间-[可见性] 操作名称 ([参数列表])[:返回类型] [{属性字符串}]
可见性 | 与属性相同 | |
参数列表 | 参数名:类型 | [方向]参数名:类型[=默认值] |
方向 | 参数传递的方向 | in(输入参数,不能对它进行修改),out(输出参数,等价于返回参数和in参数,为了向调用者传递信息可以对它进行修改),inout(输入参数,等价于返回参数和in参数,为了向调用者传递信息可以对它进行修改) |
返回类型 | 即操作返回值的类型 | |
属性字符串 | 说明操作的特性或约束 |
————————————————————————————————————————
关联关系
特殊的关联关系(聚合与组合)
泛化关系
依赖关系
实现关系
关系 | 功能 | UML符号 |
依赖关系 | 表示类之间的使用关系 | 带箭头的虚线,指向被使用者 |
泛化关系 | 把一般类连接到它的特殊类 | 带空心三角箭头的实线,箭头指向父类 |
关联关系 | 表示对象之间的结构关系 |
带普通箭头的实心线,指向被拥有者 (如果两个类可以互相访问,则是一条直线) |
实现关系 | 连接定义和实现 | 带三角空心箭头的虚线,箭头指向接口 |
聚合关系(aggregation) | 描述一个整体由一些描述部分的对象组成 | 带空心菱形的实心线,菱形指向整体 |
组合关系(composition) | 部分要完全依赖于整体 | 带实心菱形的实线,菱形指向整体 |
——————————————————————————————————————————————
关联关系:
关联关系的实例被称为链(link)
———————————————————————————————————————————————
根据描述,建立类图。