UML概念:

  1. UML-Unified Model Language
    统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素
    2. UML是由一堆图组成的,包括:用例图、类图、对象图、状态转换图、活动图、时序图、包图、协作图、构件图、部署图等。

    UML作用:

    帮助开发团队以一种可视化的方式理解系统的功能需求,有利于队员间在各个开发环节间确立沟通的标准,便于系统文档的制和项目的管理。

    UML主要模型:

  2. 功能模型
    从用户的角度展示系统的功能,包括用例图。
    2. 对象模型
    采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。
    3. 动态模型
    展现系统的内部行为。 包括序列图、活动图、状态图。

    一个小例子,帮助大家理解:

    uml.png
    车的类图结构为<<abstract>>,表示车是一个抽象类;<br />它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示;
    小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示;<br />小汽车与发动机之间是组合关系,使用带实心箭头的实线表示;
    学生与班级之间是聚合关系,使用带空心箭头的实线表示;<br />学生与身份证之间为关联关系,使用一根实线表示;
    `学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;

    介绍下类之间的各种关系:

    1. 泛化关系 : 泛化表示的是一种继承关系
    【表示方法】 : 带空心三角箭头的实线,箭头指向父类
    2. 实现关系 : 是一种类与接口的关系,表示类是接口所有特征和行为的实现
    【表示方法】 : 一条带空心三角箭头的虚线表示
    3. 聚合关系 : 聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义,且部分可以离开整体而单独存在;例如一个部门由多个员工组成;
    【表示方法】 : 一条带空心菱形箭头的实线表示,菱形指向整
    4. 组合关系 : 与聚合关系一样,组合关系同样表示整体由部分构成的语义;比如公司由多个部门组成;
    【表示方法 】: 带实心菱形箭头的实线,菱形指向整体
    5. 关联关系 : 描述不同类的对象之间的结构关系,是一种拥有的关系,它使一个类知道另一个类的属性和方法,如学生和学校就是一种关联关系
    【表示方法 】: 双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。箭头指向被拥有者
    6. 依赖关系 : 是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
    【表示方法 】: 一条带箭头的虚线,箭头指向被使用者

    对UML中的各个图的功用做一个简单介绍:

    用例图:
    描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
    类图:
    类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。
    对象图:
    与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系
    包图:
    包图用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。
    活动图:
    描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
    状态图:
    描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。
    序列图(顺序图):
    序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
    协作图:
    和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
    构件图(组件图)
    描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件是软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
    部署图(配置图)
    是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。部署图用于表示一组物理结点的集合及结点间的相互关系,从而建立了系统物理层面的模型。
    注:
    一:这十种模型图各有侧重:
    1:用例图侧重描述用户需求,
    2:类图侧重描述系统具体实现;
    二:描述的方面都不相同:
    1:类图描述的是系统的结构,
    2:序列图描述的是系统的行为;
    三:抽象的层次也不同:
    1:构件图描述系统的模块结构,抽象层次较高,
    2:类图是描述具体模块的结构,抽象层次一般,
    3:对象图描述了具体的模块实现,抽象层次较低。
    在有的文献书籍中,将这九种模型图分为三大类
    结构分类、动态行为和模型管理
    1:结构分类包括用例图、类图、对象图、构件图和部署图,
    2:动态行为包括状态图、活动图、顺序图和协作图,
    3:模型管理则包含类图。
    UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法