- UML是什么?
Unified Modeling Language,翻译为标准建模语言。在软件架构的时候,通常要进行大规模、复杂系统进行建模,而UML能以面向对象图的方式来描述任何类型的系统,具有非常广的应用范围。
- UML的特点?
(1)UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。它实际上是一种通用的建模语言,可以为许多面向对象建模方法的用户广泛使用。
(2)UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。
(3)UML是一种建模语言,而不是一个开发过程。
- UML的分类?
1.用例图
说明:(1)是谁要使用系统(2)该系统的功能是什么
包含元素:系统、参与者、用例
2.类图
静态视图模型。描述系统中的类,以及各个类之间的关系:
(1) 泛化:一般与特殊之间的继承关系。描述了子类如何继承父类的所有特征和行为。例如:北京人是中国人的一种。
(2) 实现:一种类与接口的关系,类是接口所有特征和行为的实现 。类→接口
(3) 关联:表示类与类之间的拥有关系,可以是双向的也可以是单向的。比如上司和下属,老师和学生等。代码体现:成员变量
(4) 聚合:整体与部分的关系,且部分可以离开整体而非共生关系。如:键盘和键帽是整体和部分的关系,键帽离开键盘仍可存在。(聚合是关联中的一种:强关联,在语义上无法区分,必须考察具体的逻辑关系)
(5) 组合:整体与部分的关系,但部分不可以离开整体。如公司和部门。(组合是关联中的一种:比聚合关系还要强。)
(6) 依赖:使用关系。一个类的实现需要另一个类的协助。(代码实现:局部变量)
3.对象图
与类图类似,是类图的实例,显示类的多个对象实例而不是实际的类。
4.包图
用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。
5.状态图
一种由状态、变迁、事件和活动组成的状态机,
描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
6.活动图
状态图的一种特殊情况。这些状态大都处于活动状态。
本质:一种流程图,描述了活动到活动的控制流,描述用例要求所要进行的活动,以及活动见的约束关系,有利于识别并行活动。
分类:带泳道的活动图/带对象流的活动图(构成对象流,有箭头的虚线)
7.序列图(顺序图)
显示参与者如何以一系列顺序的步骤与系统的对象交互。
强调消息是如何在对象之间被发送和接收的。
消息用从一个对象的生命线到另一个对象生命线的箭头表示。
箭头以时间顺序在图中从上到下排列。
涉及元素:①生命线:生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。
②同步消息③异步消息④注释⑤约束⑥组合
8.协作图
交互图的一种,描述了收发消息的对象的组织关系,
强调对象之间的合作关系。
时序图按照时间顺序布图,而写作图按照空间结构布图
- 不同图的差异比较?
1.序列图<—>协作图
相同点: 都是交互图,二者在语义上是等价,因此可以相互转化
不同点:序列图侧重时间顺序,协作图侧重对象间的关系
2.状态图<—>活动图
相同点:都是行为图。
不同点:状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述
3.活动图<—>交互图
相同点:都涉及到对象和他们之间传递的关系
不同点:前者观察的是传送消息的对象,后者观察的是对象之间传递的消息