UML参考手册 第二部分 基 本 概 念 第4章 静 态 视 图 4.1 概述 静态视图是UML的基础。模型中静态视图的元素是应用中有意义的概念,这些概念包括真实世界中的概念、抽象的概念、实现方面的概念和计算机领域的概念,即系统中的各种概念。举个例子,一个剧院的售票系统有各种概念,如票、预订、预约计划、座位分配规则、网络订票和冗余信息等。 静态视图说明了对象的结构。一个面向对象的系统使数据结构和行为特征统一到一个独立的对象结构中。静态视图包括所有的传统数据结构思想,同时也包括了数据操作的组织。数据和操作都可量化为类。根据面向对象的观点,数据和行为是紧密相关的。比如,Ticket对象可以携带数据,如价格、演出日期、座位号,该对象还可以有基于它的操作,例如:预留这张票或以一定折扣计算它的价格。 静态视图将行为实体描述成离散的模型元素,但是不包括它们动态行为的细节。静态视图将这些行为实体看作是将被类所指定、拥有并使用的物体。这些实体的动态行为由描述它们内部行为细节的其他视图来描述,包括交互视图和状态机视图。动态图要求静态视图描述动态交互的事物—如果不首先说清楚什么是交互作用,就无法说清楚交互作用怎样进行的。静态视图是建立其他视图的基础。 静态视图中的关键元素是类元及它们之间的关系。类元是描述事物的建模元素。有几种类元,包括类、接口和数据类型。包括用例和信号在内的其他类元具体化了行为方面的事物。实现目的位于像子系统、构件和节点这几种类元之后。 为了利于理解和模型的可重用性,大的模型必须由较小的单元组成。包是拥有和管理模型内容的一般的组织单元。任何元素都可被包所拥有。模型是用来描述完整的系统视图的包,并且使用时或多或少地独立于其他的模型—这是掌握描述系统的更细节的包的基础。 对象是从建模者理解和构造的系统中分离出来的离散单元。它是类的实例—对象是一个可识别的状态,该状态的行为能被激发。它是一个其结构和行为都由类来描述的具有身份的个体。类元之间的关系有关联、泛化及各种不同的依赖关系,包括实现和使用关系。4.2 类元 类元是模型中的离散概念,拥有身份、状态、行为和关系。有几种类元包括类、接口和数据类型。其他几种类元是行为概念、环境事物、执行结构的具体化。这些类元中包括用例、参与者、构件、节点和子系统。表4-1列出了几种类元和它们的功能。元模型术语类元中包括了所有这些概念,因为类是我们所最熟悉的术语,所以先讨论它,再根据类与其他概念的区别来定义其他概念。 表4-1 各种类元 1. 类 类代表了被建模的应用领域中的离散概念—物理实体(如飞机)、商业事物(如一份订单)、逻辑事物(如广播计划)、应用事物(如取消键)、计算机领域的事物(如哈希表)或行为事物(如一项任务)。类是有着相同结构、行为和关系的一组对象的描述符号。所用的属性与操作都被附在类或其他类元上。类是面向对象系统组织结构的核心。 对象是具有身份、状态和可激发行为的离散实体。对象是用来构造实际运行系统的个体;类是用来理解和描述众多个别对象的个别概念。 类定义了一组有着状态和行为的对象。属性和关联用来描述状态。属性通常用没有身份的纯数据值表示,如数字和字符串。关联则用有身份的对象之间的关系表示。个体行为由操作来描述,方法是操作的实现。对象的生命期由附加给类的状态机来描述。类的表示法是一个矩形,由带有类名、属性和操作的分格框组成。如图4-1所示。 图4-1 类表示法 一组类可以用泛化关系和建立在其内的继承机制分享公用的状态和行为描述。泛化使更具体的类(子类)与含有几个子类公同特性的更普通的类(超类)联系起来。一个类可以有零个或多个父类(超类)和零个或多个后代(子类)。一个类从它的双亲和祖先那里继承状态和行为描述,并且定义它的后代所继承的状态和行为描述。类在它的包含者内有唯一的名字,这个包含者通常可能是一个包但有时也可能是另一个类。类对它的包含者来说是可见性,可见性说明它如何被位于它的可见者之外的类所利用。类的多重性说明了有多少个实例可以存在,通常情况下,可以有多个(零个或多个,没有明确限制),但在执行过程中一个实例只属于一个类。2. 接口 接口是在没有给出对象的实现和状态的情况下对对象行为的描述。接口包含操作但不包含属性,并且它没有对外界可见的关联。一个或多个类或构件可以实现一个接口,并且每个类都可以实现接口中的操作。3.