UML 图(语法)+元(语义)
基本构造块:
事物(Things) 是实体抽象化的最终结果,是模型中的基本成员
结构事物 静态部分 概念或实体 (类、接口、协作(collaboration)、用例(Use Case)、
活动类(Active Class)、组件(Component)、结点(Node)
行为事物 动态部分 交互(ineraction) 状态机(state machine)
分组事物 盒子
注释事物 注释事物是UML模型的解释部分
关系(Relationships)
依赖:两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义
关联:对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系)
泛化:一种一般化-特殊化的关系
实现:个类指定了由另一个类保证执行的契约。
图(Diagrams)
图是事物集合的分类,UML中包含多种图:
(1)类图(Class Diagram):类图描述系统所包含的类、类的内部结构及类之间的关系;
(2)对象图(Object Diagram):对象图是类图的一个具体实例;
(3)包图(Package Diagram):包图表明包及其之间的依赖类图;
(4)组件图(Compoment Diagram,也称构件图):组件图描述代码部件的物理结构以及各部件之间的依赖关系;
(5)部署图(Deployment Diagram):部署图定义系统中软硬件的物理体系结构;
(6)用例图(Usecase Diagram):用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系;
(7)顺序图(Sequence Diagram):顺序图表示对象之间动态合作的关系;
(8)协作图(Collaboration Diagram):合作图描述对象之间的协作关系;
(9)状态图(Statechart Diagram):状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件;
(10)活动图(Activity Diagram):活动图描述系统中各种活动的执行顺序。
表1.1 UML图分类
类型 包含
静态图 类图、对象图、包图
行为图 状态图、活动图
用例图 用例图
交互图 顺序图、协作图
实现图 组件图、部署图
(1)描述需求;
(2)根据需求建立系统的静态模型;
(3)描述系统的行为。
(1)和(2)中所建立的模型是静态的(采用用例图、类图、对象图、组件图和部署图等),是标准建模语言UML中的静态建模机制;
(3)中所建立的模型则表示执行时的序列、状态或交互关系(以状态图、活动图、顺序图和协作图描述),
是标准建模语言UML中的动态建模机制。
此外,需要说明的是,UML只是一种建模语言,它独立于具体的建模过程。
因此,利于它建模时,可遵循任何类型的建模过程。
尽管如此,UML的作者们为我们推荐了RUP(Rational Unified Process)。
RUP由Rational软件公司首创,其最重要的特点有三:
(1)软件开发是由用例驱动的;
(2)软件开发是以体系结构设计(Architectural Design)为中心;
(3)软件开发是个迭代过程。
RUP包括四个阶段,每个阶段又分为若干次迭代,每次迭代都有一个核心工作流,如图1.1所示。
用例:
用例之间
包含:用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分
扩展:扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。
它是以隐含形式插入的,也就是说,
扩展用例并不在基本用例中显示
a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开
b.表明只在特定条件(如例外条件)下才执行的分支流;
c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。
所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。
泛化:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。
当父用例能够被使用时,任何子用例也可以被使用
通讯关联
通讯关联以箭头或实线表示。
若使用箭头,箭头所指方将是对话的被动接受者;
如果不强调对话中的主动与被动关系,则可以使用不带箭头的关联实线
例模型 用例图+详细描述(用例规约)