Unified Modeling Language (UML)又称统一建模语言或标准建模语言 简单的说我们可以用UML把软件规划、架构等表达出来,这样思路清晰,也便于优化。
面向对象设计图应运而生,它能清楚的描述以下几个问题: 1.类,包括数据成员和函数成员。 2.对象,类的实例。 3.类及对象的关系,继承或者包含。 4.类及对象之间的联系,相互作用与消息传递等。
UML中有9种图:类图、对象图、用例图、顺序图、协作图、状态图、活动图、组件图和实施图。这里只介绍下类图和对象图。
UML中类及对象的关系有以下几种:依赖、关联、聚合、组合、泛化和实现。
1.依赖关系。
如果类A使用了类B,或者说如果类B的变化会影响类A,则说类A依赖于类B。一般有以下几种情况属于依赖关系:类A调用类B的成员函数;类B的对象是类A的成员变量;类A的成员函数使用了类B类型的参数。依赖关系用带箭头的虚线表示,如下图:
2.关联关系。
上图中,重数A表示类B的每个对象与类A的多少个对象相关联,重数B则表示类A的每个对象与类B的多少个对象发生作用。比如,老师和学生的关联,老师类的重数应该是1,学生类的重数可能是n。
3.泛化关系。
如果类A和类B是从类C继承的子类,那么类C就是类A和类B的泛化。泛化关系用带空心三角形的实线表示:
4.聚合关系。
聚合表示类之间的关系是整体和部分的关系,但是聚合关系中的整体和部分是可以分开的。比如,我们可以选择某个主板、硬盘、机箱等配件组装一台电脑,以后这台电脑可以随时更换配件,还一样能够组成一台电脑。聚合关系用带空心菱形的实线表示。
5.组合关系。
组合关系也是整体和部分的关系,但是它与聚合关系不同的是,整体和部分是不可以分开的。比如,我们的房子由客厅、卧室、厨房等组合而成,房子不能和别人的房子对换客厅等任何房间,客厅、卧室等不能和房子分开。组合关系用带实心菱形的实线表示。
6.实现关系。
实现关系用来说明接口和实现接口的类之间的关系。实现关系图用带空心三角形的虚线表示:
UML中的注释。在UML图形上,注释表示为带有褶角的矩形,然后用虚线连接到UML的其他元素上,它是一种用于在图中附加文字注释的机制。