UML的组成
类图
一个类(class)是一类或者一组具有类似属性和共同行为的事物。
例如:洗衣机(washing machine)具有品牌、型号、***、容量等属性;具有加衣物、洗涤剂、开机、关机等操作行为。
用一个UML表示法表示洗衣机的属性和行为:
对象图
对象(object)是一个类的实例,是具有具体属性值的一个具体事物。
例如:你的洗衣机的品牌可能是“LD”,型号为“WashMeister”,***为“GL007”,容量为16磅。
用UML表示对象:
用例图
用例(use case)是从用户的观点对系统行为的一个描述。
例如:你使用一台洗衣机,显然就是为了洗衣服。
我们用UML来描述这个需求:
1、小人称为参与者(actor),是发起用例的实体,可以是一个人也可以是另一个系统。
2、椭圆代表用例。
需要注意:用例位于一个代表着系统的矩形中,而参与者在矩形外
状态图
在任一给定的时刻,一个对象总是处于某一特定的状态。
例如:一台洗衣机可以处于浸泡(soaking)、洗涤(washing)、漂洗(rinsing)、脱水(spinning)、关机(off)等状态。
用UML的状态图来描述上面所提及的状态:
1、该图说明洗衣机可以从一个状态转移到另一个状态。
2、最顶端的符号代表起始状态,最底端的符号代表终止状态。
注意:从一个状态到另一个状态的转换并不总是线性的。有时候,条件会指明不同的路径。
顺序图
类图和对象图表达的是系统的静态结构。
在一个运行的系统中,对象之间要发生交互,并且经历一段时间,UML的顺序图所表达的就是这种基于时间的动态交互。
例如:洗衣机包含一个定时器(timer)、一个注水的进水管(water piper)和一个用来装衣物的洗涤缸(drum)等构件。这些构件也是对象,一个对象之中还可以包含其他对象。
该顺序图表示执行“洗衣服”用例时发生的事:
活动图
用例和对象的行为中的各个活动之间通常具有时间顺序。
用UML活动图描述部分洗衣机工作:
协作图
顺序图和协作图都能够表示对象之间的交互,UML中把它们合称为交互图。
但是两者并不相同,协作图不是按照垂直方向表示时间顺序,而是通过消息标记前面的数字来表示时间顺序的。
构件图
UML 1.x 版本中的软件构件图标:
UML 2.0 中的软件构件图标:
部署图
UML部署图显示了基于计算机系统的物理体系结构。
它可以描述计算机,展示它们之间的连接,以及驻留在每台机器中的软件。
每台计算机用一个立方体来表示,立方体之间的连接线表示这些计算机之间的通信关系。