【内容】
1.什么是UML?
UML(Unified Modeling Language)是一种可视化的面向对象建模语言。
它支持面向对象系统的分析、设计、实现和交付等各个环节,可以用于系统的理解、设计、浏览、维护和信息控制。
2.什么是UML建模?
UML建模技术是一种建模语言,指用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等。
UML建模技术主要分为结构建模、动态建模和模型管理建模3个方面:
第1个方面是从系统的内部结构和静态角度来描述系统的,在静态视图、用例视图、实施视图和配置视图中适用,采用了类图、用例图、组件图和配置图等图形。
第2个方面是从系统中对象的动态行为和组成对象间的相互作用、消息传递来描述系统的,在状态机视图、活动视图和交互视图中适用,采用了状态机图、活动图、顺序图和合作图等图形。
第3个方面描述如何将模型自身组织到高层单元,在模型管理视图中适用,采用的图形是类图。建模的工作集中在前两方面,而且并非所有图形元素都适用或需要采用。
3.UML建模工具
主流UML工具:Rational Rose、Together、Microsoft Visio。
其中Rational Rose:是一种工具,它可以再Rose建模中提供建立、视图、修改和操作组件的能力。界面如下:
4.UML的基本结构
(1)UML中的事物
事物:构成模型图的一些基本图示符号,它们表示一些面向对象的基本概念。
(2)UML中的关系
关系:表示基本图示符号之间的关系。
(3)UML中的图
图:特定的视角对系统所作的抽象描述。
总结:事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。
5.UML中的事物
UML的事物有四种:结构事物、行为事物、分组事物、注记事物。
结构事物
名称 | 含义 | 图示 |
Class(类) | 类是对一组具有相同属性、方法、关系和语义的对象的描述。 一个类实现一个或多个接口。 | |
Interface(接口) | 接口描述了一个类或构件的一个服务的操作集。接口仅仅是定义了一组操作的规范,它并没有给出这组操作的具体实现。 | |
Collaboration(协作) | 协作定义了一个交互,它是由一组共同工作以提供某协作的角色和其它元素构成的群体。 | |
Use Case(用例) | 用例是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值且可观察的结果。 | |
Active Class(主动类) | 其对象至少拥有一个进程或线程,因此它能启动控制活动。 | |
Components(构件) | 构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。 | |
Nodes(节点) | 节点是在运行时存在的物理元素,它表示了一种可计算的资源,它通常至少有一些记忆能力处理能力。 | |
行为事物
名称 | 含义 | 图示 |
Interaction(交互) | 交互这样一种行为,它由在特定语境中共同完成一定特定任务的一组对象之间交换的消息组成。 | |
State Mechanism(状态机) | 状态机是这样一种行为,描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。 | |
分组事物
包是UML中唯一的组织机制。
名称 | 含义 | 包 |
Package(包) | 包可以拥有其他元素,这些元素可以是类、接口、构件、节点、协作、用例和图,甚至可以是其他包。 | |
注记事物
名称 | 含义 | 图示 |
Notes(注释) | 注释事物用来描述、说明和标注模型的任何元素。有一种主要的注释事物,称为注解。 注解是一个依附于一个元素或一组元素之上,对它进行约束或解释的简单符号。 | |
6.UML中的关系
名城 | 含义 | 图示 |
关联(Association) | 描述了两个或多个类之间的结构性关系。 | |
依赖(Dependency) | 两个事物之间的一种使用关系。 | |
泛化(Generalization) | 是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。 | |
实现(Realization) | 是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。 | |
7.UML中的9种图
Use-Case Diagrams:用例图
用例图用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
Class Diagrams:类图
用于定义系统中的类,包括描述类的内部结构和类之间的关系。类图主要用于描述系统的静态结构。
Object Diagrams:对象图
对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。
State Diagrams:状态图
用来描述类的对象所有可能的状态以及事件发生时状态的转移条件。
Activity Diagrams:活动图
用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统的并行活动。
Sequence Diagrams:序列图
描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。
Collaboration Diagrams:协作图
描述对象之间的合作关系,更侧重于说明哪些对象之间有西欧阿西的传递。
Component Diagrams:构件图
构件图用来描述代码构件的物理结构以及各构件之间的依赖关系。一个构件可以是一个资源文件、一个二进制文件或者一个可执行文件。
Deployment Diagrams:部署图(实施图)
部署图定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及它们之间的连接关系。
9.UML中的规则
命名为事物、关系和图起名
范围给一个名称以特定含义的语境
可见性怎样让其他人使用或看见名称
完整性事物如何正确、一致地相互联系
执行运行或模拟动态模型的含义是什么
10. UML在软件开发各个阶段的应用
在软件开发各个阶段,使用不同的UML图对系统进行描述。
采用面向对象技术设计软件系统时,使用用例图来描述用户需求:使用类图、对象图、包图、构件图和部署图这5种静态图来描述系统的静态结构:使用顺序图、合作图、活动图和状态图这4种图描述动态行为。
需求:
采用用例图来描述需求(角色、功能、外部交互)。
分析:明确解决问题的细节
采用类图来描述静态结构;
采用顺序图、合作图、活动图、状态图来描述动态行为。
设计:给出解决方案
采用类图、包,对类的接口进行设计。
实现:
将类用某面向对象语言实现。
集成与交付:
构件图、包、部署图。
测试:
单元测试使用类图和类的规格说明书。
集成测试使用类图、包、构件图和合作图。
系统测试使用用例图来测试系统功能。