一种软件开发方法学至少由3部分组成
- 用于表达基本信息的术语。
- 用于组织基本信息的表达格式。
- 在不同抽象层之间进行映射的过程指导。
UML解决的问题
- 提供8个术语,用于抽象表达客观世界中各式各样的事物。
- 提供4个术语,用于抽象表达客观世界中各式各样事物之间的关系。
- 提供4种工具,用于抽象表达客观世界中各种系统的模型。
表达客体的术语
1.类与对象 (class and object)
类是一组具有相同属性、操作、关系和语义的对象的描述,对象是类的一个实例。通常把类表示为具有3个栏目的矩形,每个栏目分别代表类名、属性和操作。
类可以是抽象类,即没有实例的类,其类名采用斜体字表示。
类体现了数据抽象、过程抽象、局部化以及信息隐蔽等原理。类与对象的变体可以是参与者(Actor)。
2.接口(interface)
接口是操作的一个集合,其中每一个操作描述了类、构件或子系统的一个服务。接口根据需求,可以分为供接口与需接口,用于表示提供服务和需要服务。小圆圈表示提供服务,就是需要去实现,半圆圈表示需求服务,就是要别人实现。
接口对系统中的“接缝”予以模型化。也就是说,通过声明一个接口,表明一个类、构件、子系统为其它类、构件、子系统提供了所需要的、且与实现无关的行为,或表明一个类、构件、子系统所要得到的、且与实现无关的行为。
- 协作(collaboration)
协作是一个交互,涉及交互的三个要素:交互各方、交互方式以及交互内容。在UML中,协作表示为虚线椭圆。
协作可以表现系统实现的一种构成模式。
- 用况(use case)
用况是对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。在UML中,用况用实线椭圆表示。
在系统建模中,用况一般用于模型化系统中功能行为,是建立系统功能模型的一个重要术语。并且,由用况表达的系统,往往可以通过协作予以精化。
- 主动类(active class)
主动类是一种至少具有一个进程或线程的类。其对象行为通常是与其他元素行为并发的。主动类的表示与类相似,只是多了两条竖线。
在系统建模中,主动类一般用于模型化系统中的并发行为。它的变体是进程和线程。
- 构件(component)
构件是系统设计中的一个模块化组件,通过外部接口隐藏它的内部实现。构件一般用于表达解空间中可独立标识的成分。换言之,构件不能用于问题定义。
- 制品(artifact)
制品是系统中包含物理信息的、可替代的物理部件。常用于代表有关源代码信息或运行时信息的一个物理打包,因此在一个系统中,可能存在不是类型的部署制品,例如源代码、可执行程序和脚本。可见,它的变体可以是应用、文档、库、页、表。
- 节点(node)
节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。
UML把这8个术语统称为类目。用于描述客体。
表达客体关系的术语
为了表达各类事物之间的相互依赖和作用,UML给出了4个术语:关联、泛化、细化、依赖。