⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umlsemantics006.htm

📁 软件开发文档大全
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<head><meta NAME="&acute;&iexcl;&atilde;&Iacute;&acirc;&Egrave;&iacute;&frac14;&thorn;&sup1;&iexcl;&egrave;&sup3;&Igrave;" Content="Author:Asia Alien"><title>UML语义(中文)</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link REL="stylesheet" HREF="../../newcss.css" TYPE="text/css"></head><body>  <b><font face="Arial" size="5"><h3><font face="Arial" size="7">  <img border="0" src="i/umldilver.gif" WIDTH="606" HEIGHT="15"></font></h3>          <h3></font></b><font size="5">5<a name="5"></a>. </font>结构化元素:类型、类和实例&nbsp;    <b><a href="umlsemantics001.htm">返回目录</a></b></h3>           <blockquote>             <p>             <font size="3"><img border="0" src="i/image6.gif" WIDTH="620" HEIGHT="479"></font></p>            <b><font face="Arial" size="5"><p></font></b><font size="5">5.1 </font><a name="5.1"></a>描述</p>              <p>本图描述了类型/实例和类型/类关系(分别表示UML中的本质/现象关系和说明/实现关系),包含下列元模型类:</p>              <blockquote>                <p>活动类 活动类是包含一个或多个线程的类。</p>                <p>行为实例类 行为实例类是行为的具体现象。</p>                <p>类 类是对类型的实现。</p>                <p>构件 构件是提供模型元素物理分组的可复用部件。</p>                <p>表达式 参见第四节。</p>                <p>实例类 实例类是类型的具体现象。</p>                <p>模型元素 参见第二节。</p>                <p>结点                结点是运行时段体现计算资源的物理对象,通常至少具有内存和处理能力,而且构件可以分配到结点上。</p>                <p>基本类型 基本类型是非类的类型,例如整型或枚举。</p>                <p>责任 责任是它所在类型的约定或义务。</p>                <p>信号 信号是命名的事件。</p>                <p>状态 状态是一个实例在时空中某个给定时刻的情况。</p>                <p>标志值 参见第三节。</p>                <p>类型 类型是对论域及其行为的规格说明。</p>                <p>类型表达式                类型表达式是取值为对一个或多个类型的引用的表达式。</p>                <p>用例 用例是为特定主角提供结果值的系统执行动作的顺序集合。</p>                <p>值 值是表达式的结果值。</p>                <font face="Times New Roman"><p></font> <font face="Times New Roman"></p>              </blockquote>              </font><p>本图还介绍了下列关系:</p>              <blockquote>                <p>动作                动作是实例到其动作的共享关联。时间实例表现为一个动作序列;行为实例指定了实例的动作。</p>                <p>特征 参见第三节。</p>                <p>一般化 活动类是类的子类型。</p>                <font face="Times New Roman"><p></font>类是类型的子类型。</p>                <font face="Times New Roman"><p></font>构件是类的子类型。</p>                <font face="Times New Roman"><p></font>实例类是模型元素的子类型。</p>                <font face="Times New Roman"><p></font>结点是类的子类型。</p>                <font face="Times New Roman"><p></font>基本类型是类型的子类型。</p>                <font face="Times New Roman"><p></font>责任是标志值的子类型。</p>                <font face="Times New Roman"><p></font>信号是类的子类型。</p>                <font face="Times New Roman"><p></font>类型是模型元素的子类型。</p>                <font face="Times New Roman"><p></font>类型表达式是表达式的子类型。</p>                <font face="Times New Roman"><p></font>用例是类型的子类型。</p>                <p>实例化                实例化是实例和类型之间的关联,表示实例是类型的具体现象。实例是类型的实例化。</p>                <p>引用                引用是类型表达式和类型集合之间的关联,表示类型表达式引用了给定的类型。一个类型表达式可以引用一个或多个类型。</p>                <p>角色                角色是实例到角色集合的共享聚集。在时空中的某一时刻,一个实例能扮演零个或多个角色。</p>                <p>状态实例                状态实例是一个实例到此实例的状态的共享关联。在时空中的某一时刻,一个实例具有一个特定的状态。</p>                <p>值                值是一个实例到所属类型属性值集合的组合聚集。值是特定实例的上下文中一个类型的属性值。</p>              </blockquote>              <b><font face="Arial" size="5"><p></font></b><font size="5">5.2 </font><a name="5.2"></a>基本语义</p>              <p>类型是模型元素的子类型。类型的责任是指定论域及其中的行为。类型实例的名字是表现类型名的名字实例;其值非空。类型的multiplicity属性是多重记号,被用作指定一个特定组合中类型实例所允许的实例的数量。多重记号的默认值是0              .. *。一个类型实例定义一个命名空间。</p>              <p>责任是标志值的子类,是预定义的标志值。责任的责任是表示它所在类型实例的约定或义务。责任的value属性是一个字符串,表示它所在类型实例的约定或义务。责任实例通过特征关系附着到类型实例上。这个关系未实现,但可以从标志值到元素定义的特征关系导出。</p>              <p>类型表达式是表达式的子类型。类型表达式的责任是提供取值为对一个或多个类型实例的引用的表达式,这里引用表示类型实例使用事件,而不是定义事件。referencedTypes操作返回被类型表达式实例引用的类型实例的列表。</p>              <p>引用是类型表达式实例和类型实例集合之间的关联,表示类型表达式实例引用类型实例集合。引用的责任是在类型实例和被引用的类型表达式实例之间建立一种关系。每个类型实例可以被零个或多个类型表达式实例引用,而每个类型表达式实例可以引用一个或多个类型实例。引用是一种隐含关系,它未被实现,但可以从类型表达式的值中导出。</p>              <p>基本类型是类型的抽象子类型。基本类型的责任是指定非类的类型,例如整型和枚举。基本类型的details属性未解释,并亟待实现。UML的实现必须提供基本类型的具体子类。</p>              <p>用例是类型的子类型。用例的责任是指定用例实例集合,其中用例实例体现了为特定主角提供结果值的系统执行动作的顺序。</p>              <p>类是类型的子类型。类的责任是支持类型的实现。 <font face="Times New Roman"></p>              </font><p>类型和类的分离构成了UML中的说明/实现结构。这里类实例支持类型实例的实现,类型实例本身并不提供实现。在这种情况下,类型实例是类实例的界面。这种类型/类的关系可以扩展到类的子类型。这样,一个给定的类型实例可以是零个或多个类实例(包括其子类型:活动类、信号、构件和结点)的界面,一个给定的类实例(包括其子类型子类型:活动类、信号、构件和结点)可以支持零个或多个类型实例的实现。由于类是类型的子类型,类实例本身就是类型实例。然而,因为类型和类是各自独立的概念,所以对一个模型而言,可能存在独立的类和类型网。如下面章节所述,求精是指定类型实例和类实例之间的界面/支持关系的构造型依赖关系。</p>              <p>活动类是类的子类型。活动类的责任是指定包含一个或多个线程的类实例。</p>              <p>信号是构造型类。信号的责任是指定命名事件。</p>              <p>构件是类的子类型。构件的责任是指定提供模型元素实例进行物理分组的可复用部件。</p>              <p>结点是类的子类型。结点的责任是指定构件实例可以分配到的物理部件。</p>              <p>实例类是模型元素的子类型。实例类的责任是指定类型实例的具体现象。其中类实例提供类型实例的实现,对应于类实例的实例类的实例在时空中实现类型实例,就是说,实例类的实例体现了在时间和空间存在的实体。</p>              <p>实例类的实例的名字是可选的,但一旦存在,就不能为空。一个实例类的实例定义一个命名空间。即,与实例类的实例关联的值、动作、状态实例和角色根据其类型必须具有唯一的名字。</p>              <p>实例化化是实例类的实例与其所属的类型实例之间的关联。实例化的责任是指定作为类型实例具体现象的实例类的实例。每个类型实例可以具有零个或多个实例类的实例,而每个实例类的实例是不超过一个类型实例的实例化。在大多数情况下,每个实例类的实例是一个类型实例的实例化。然而,可能指定无类型的实例类的实例,这种情况常存在于不完整的和/或正在开发的模型中。</p>              <p>角色是实例类的实例到类型实例的共享聚集。角色的责任指定给定实例类的实例在时空中的某一时刻所扮演的角色,这里的角色表示实例类的实例对其客户的外部表现。既然实例类的实例通常是类型实例的实例化,它的角色就可以改变了。</p>              <p>值是表达式的结果值。值的责任是具体提供一个值。值的value属性未解释,它的语义取决于值实例提供值的表达式的类型。</p>              <p>值是一个实例类的实例到所属类型属性值实例集合的组合聚集。值的责任是按照对应属性实例的实例类的实例值指定实例类实例的静态值,这里,属性实例是关联类型实例的成员,实例类的实例是该类型实例的实例化。每个实例类的实例具有零个或多个值实例,而每个值实例是零个或一个实例类实例的值。值实例如果作为实例类实例的值,则其数量、名字和类型必须和该实例类实例所属的类型实例属性的数量、名字和类型匹配。</p>              <p>行为实例类是行为的具体现象。行为实例类的责任是将动作时序流事件具体化。</p>              <p>动作是实例到其动作的共享关联。只有用例实例的实例具有动作。动作的责任是指定与暂时的实例类实例关联的动作流。每个实例类实例与零个或一个行为类实例关联,而每个行为类实例和零个或多个实例类实例关联。实例类实例的动作必须与用例实例的可能动作匹配。</p>              <p>状态是在时空中某一给定时刻一个实例类实例的情况。状态的责任是具体化一个状态。</p>              <p>状态实例是实例类实例到其状态的共享关联。状态实例的责任是指定实例类实例的静态状态实例。每个实例类实例与零个或一个状态实例关联,而每个状态实例与零个或多个实例类实例关联。实例类实例的状态必须和它所属类型实例的可能状态匹配。</p>              <p>类型和实例类的分离构成了UML中的说明/实现结构。其中,实例类实例提供了类型实例的具体现象。这种类型/实例关系可以扩展到类型的子类型。</p>              <b><font face="Arial" size="5"><p></font></b><font size="5">5.3<a name="5.3"></a> </font>导出语义</p>              <p>模型元素的语义参见第二节。</p>              <p>标志值的语义参见第三节。</p>              <p>表达式的语义参见第四节。</p>              <p>类型的语义参见第七节。</p>              <p>行为实例类的语义参见第十节。</p>              <p>基本类型是类型的子类型,所以,它拥有类型的所有性质,参见第七节。</p>              <p>类型表达式实例表达了类型表达式实例到它所引用的类型实例的依赖。根据第二节所介绍的名字的语义,改变与引用类型实例关联的名字实例只影响类型表达式所看到的名字,而不会改变类型实例本身。这些语义对于实现类型表达式实例的使用与它所引用的类型实例之间的匹配具有重要的意义。正如第七节将要介绍的,属性实例可以是类型实例的成员,属性实例具有一个取值为类型表达式的type属性。如果属性A具有类型T,T的名字被改为U,那么A仍然属于同一个类型实例,但类型实例具有新的名字U。</p>              <p>类及其子类型都是类型的子类型,所以它们都拥有类型的所有性质,参见第七节。类及其子类型(活动类、构件和结点)的语义参见第八节。类的子类型──信号的语义参见第七、第十和第十一节。</p>              <p>活动类、类、构件、实例类、结点、基本类型、责任、信号、状态、类型和值都是元素的子类型,所以它们都可以具有构造型、标志值、依赖、附注和限制条件实例。表达式和类型表达式不是元素的子类型,所以不具有这些性质。</p>              <p>由于用例是类型的子类型,用例实例可以参加第六节介绍的一般化关系和关联关系。即,用例实例可以是抽象的,也可以参加到其他类型实例的关系中,这些类型实例包括主角(构造型类型实例)和其他用例实例。而且,如第七节所述,对与类型实例关联的成员实例可以指定具有一个方向,就是说指定了类型实例提供成员实例或请求成员实例。</p>              <p>不具有名字的实例类实例通常被看作具有唯一的名字,以区别于其他无名的实例类实例。</p>              <p>本节所描述的角色关系与求精的语义和第六节将要介绍的角色关系的语义互相影响。基本上,以其它类型(或类型的子类型)实例为求精的类型实例组成了求精类型实例的静态界面。给定的求精类型实例在关联(参见第六节)中所扮演的角色必须与这些静态界面相同或者是这些静态界面的子集;这是对求精类型实例和关联实例中角色的静态语义的陈述。本节所描述的角色关系也必须与这些静态界面相同或是它们的子集;这是对实例类实例的动态语义的陈述。也就是说,类型实例的界面是静态的,但必须在给定上下文的子集中;另一方面,实例类实例的界面是动态的,因为在不同时刻实例类实例在扮演不同的角色。</p>              <p>在每个类型实例及其实例类实例之间,实例类实例的值、动作、状态实例和角色必须与所属类型实例的属性、动作、状态和角色相匹配。值实例和属性实例的匹配,是指它们的名字和类型匹配。行为类实例的匹配是指动作序列必须是用例实例(不是类型实例,因为只有用例实例是暂时的)中的一个可能的动作序列的实例。状态实例的匹配是指状态实例必须是类型实例的一个可能状态的实例。将一个角色实例匹配到一个类型,是指角色实例必须是类型实例的一个可能的角色。</p>              <p>注意:与实例类实例相关联的状态实例体现了状态实例的发生。状态实例的这种现象并不明确,而是在第十节介绍的语义的结果,其中状态是状态机的部件,状态机是一种行为,行为类/行为实例类的关系提供了一种明确的本质/现象结构。</p>              <p>在UML中有许多不同种类的本质/现象对。特别是,类/关系、关联/链接、关联角色/链接角色、属性/实例、表达式/值、参数/值、信号/消息、操作/消息和行为类/行为实例类定义了UML中类似类型和实例的语义所体现的本质/现象对,这些对也可以应用于它们的子类型。</p>              <b><font face="Arial" size="5"><p></font></b><font size="5">5.4 </font><a name="5.4"></a>标准元素</p>          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -