1. 说明
- 1.类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系。
- 2.在面向对象系统的建模中所建立的最常见的图是类图。
- 3.类图给出系统的静态设计视图。
- 4.包含主动类的类图给出了系统的静态进程视图。
- 5.类图中通常包括:类,接口,协作,依赖、泛化和关联关系。
- 6.类图中也可以包含注解和约束。
- 7.类图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
- 8.类图用于对系统的静态设计视图建模。
- 9.这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。
2. 图示
- 1.实线空心三角箭头:代表泛化关系,表示类之间的继承关系。箭头从子类指向父类。在Java中,这种关系用extends 关键字表示。
- 2.虚线空心三角箭头:代表实现关系,表示类实现了接口的所有方法和特征。箭头从类指向接口。
- 3.虚线箭头:代表依赖关系,表示一个类的实现需要另一个类的协助。在Java中,这通常意味着一个类的方法参数需要传入另一个类的对象
- 4.实线箭头:代表关联关系,表示类与类之间的连接。这种关系使一个类知道另一个类的属性和方法。与依赖关系相比,关联关系更强且不是临时性的。
- 5.空心菱形实线箭头:代表聚合关系,是关联关系的一种特例,表示整体与部分的关系,但部分对象可以脱离S整体对象独立存在。箭头中的空心萎形指向被聚合类,箭头本身指向聚合类。
3. 类图使用方式
3.1 对系统的词汇建模
- 1.对系统的词汇建模涉及做出这样的决定:哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外。
- 2.用类图详细描述这些抽象和它们的职责。
3.2 对简单的协作建模
- 1.协作是一些共同工作的类、接口和其他元素的群体,该群体提供的一些合作行为强于所有这些元素的行为之和。
- 2.用类图对这组类以及它们之间的关系进行可视化和详述。
3.3 对逻辑数据库模式建模
- 1.将模式看作为数据库的概念设计的蓝图。
- 2.很多领域要在关系数据库或面向对象数据库中存储永久信息,可以用类图对这些数据库的模式建模。
4. 例题
4.1 例题1
- 1.题目
1.一个完整的软件系统需从不同视角进行描述,下图属于软件架构设计中的(D),用于(D)视图来描述软件系统 。
A.对象图
B.时序图
C.构件图
D.类图
A.进程
B.开发
C.物理
D.用户
- 2.分析
1.“4+1”视图模型从五个不同的视角来描述软件架构,每个视图只关心系统的一个侧面,五个视图结合在一起才能反映软件架构的全部内容。
2.逻辑视图。逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。在OO技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。逻辑视图中使用的风格为面向对象的风格,在设计中要注意保持一个单一的、内聚的对象模型贯穿整个系统。
3.开发视图。开发视图也称为模块视图,在UML中被称为实现视图,它主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,例如,软件开发的容易性、软件的复用性和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统I/O关系的模型图和子系统图来描述。
4.进程视图。进程视图侧重于系统的运行特性,主要关注一些非功能性需求,例如,系统的性能和可用性等。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构等,它也定义了逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。
5.物理视图。物理视图在UML中被称为部署视图,它主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装和通信等问题。当软件运行于不同的物理节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小化。
6.场景视图。场景视图可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景视图是最重要的需求抽象。场景视图对应UML中的用例视图。在开发软件架构时,它可以帮助架构设计师找到构件及其相互关系。同时,架构设计师也可以用场景来分析一个特定的视图,或描述不同视图的构件之间是如何相互作用的。场景视图可以用文本表示,也可以用图形表示。