📄 app-uml1.htm
字号:
Booch</font><font FACE="宋体" SIZE="3">首先联合</font><font size="3">Jim Rumbaugh</font><font
FACE="宋体" SIZE="3">加盟</font><font size="3">Rational</font><font FACE="宋体"
SIZE="3">软件公司开始了统一</font><font size="3">OO</font><font FACE="宋体"
SIZE="3">方法学和工具的历程。以融合</font><font size="3">Booch</font><font
FACE="宋体" SIZE="3">和</font><font size="3">OMT</font><font FACE="宋体" SIZE="3">方法的</font><font
size="3">UML</font><font FACE="宋体" SIZE="3">开发开始。</font><font size="3">1995</font><font
FACE="宋体" SIZE="3">年</font><font size="3">10</font><font FACE="宋体" SIZE="3">月</font><font
size="3">UML0.8</font><font FACE="宋体" SIZE="3">发布。</font><font size="3">1995</font><font
FACE="宋体" SIZE="3">年秋</font><font size="3">,Ivar Jacobson</font><font
FACE="宋体" SIZE="3">和他的</font><font size="3"> Objectory </font><font
FACE="宋体" SIZE="3">公司加盟</font><font size="3">Rational,UML</font><font
FACE="宋体" SIZE="3">中加入了</font><font size="3">OOSE</font><font FACE="宋体"
SIZE="3">方法</font><font size="3">,</font><font FACE="宋体" SIZE="3">使其有可能最集中地包容当今最适用的各种</font><font
size="3">OO</font><font FACE="宋体" SIZE="3">方法。成为</font><font size="3">OO</font><font
FACE="宋体" SIZE="3">业界众望所归的大举措。</font><font size="3"></p>
<p ALIGN="JUSTIFY"> Booch</font><font FACE="宋体" SIZE="3">、</font><font
size="3">Rumbaugh</font><font FACE="宋体" SIZE="3">和</font><font size="3"> Jacobson</font><font
FACE="宋体" SIZE="3">努力的结果是</font><font size="3"> UML0.9</font><font
FACE="宋体" SIZE="3">、</font><font size="3">0.91</font><font FACE="宋体" SIZE="3">分别在</font><font
size="3">1996</font><font FACE="宋体" SIZE="3">年</font><font size="3">7</font><font
FACE="宋体" SIZE="3">月和</font><font size="3">10</font><font FACE="宋体" SIZE="3">月发布。其目标是及早向业界发布</font><font
size="3">UML1.0</font><font FACE="宋体" SIZE="3">正式版本。</font><font size="3"></p>
<p ALIGN="JUSTIFY"> 1996</font><font FACE="宋体" SIZE="3">年</font><font
size="3">,</font><font FACE="宋体" SIZE="3">几家公司将</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">作为他们的商业战略。</font><font size="3"> Rational </font><font
FACE="宋体" SIZE="3">与愿意共同努力完成</font><font size="3">UML1.0</font><font
FACE="宋体" SIZE="3">定义的公司</font><font size="3">,</font><font FACE="宋体"
SIZE="3">建立了</font><font size="3">UML </font><font FACE="宋体" SIZE="3">加盟者协会。</font><font
size="3">1997</font><font FACE="宋体" SIZE="3">年</font><font size="3">1</font><font
FACE="宋体" SIZE="3">月</font><font size="3">,</font><font FACE="宋体" SIZE="3">它们的合作产生了</font><font
size="3">UML 1.0</font><font FACE="宋体" SIZE="3">。这些关于模型交互的方法标准建议主要集中在元模型和可选择的表示法上。</font><font
size="3">1997</font><font FACE="宋体" SIZE="3">年</font><font size="3">9</font><font
FACE="宋体" SIZE="3">月再次修订后为</font><font size="3">UML1.1</font><font
FACE="宋体" SIZE="3">。并被批准成为面向对象开发的行业标准语言。</font><font
size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
可见</font><font size="3">,UML</font><font FACE="宋体" SIZE="3">的创建也是一个迭代和增量的过程</font><font
size="3">,</font><font FACE="宋体" SIZE="3">非常类似于模型大型软件系统。</font><font
size="3"></p>
<p ALIGN="JUSTIFY"> Rational <font FACE="宋体" SIZE="3">把</font>UML<font
FACE="宋体" SIZE="3">带到一起</font>,<font FACE="宋体" SIZE="3">完成了工业标准语言的目标。</font>(<font
FACE="宋体" SIZE="3">第十三期</font>(4<font FACE="宋体" SIZE="3">月</font>13<font
FACE="宋体" SIZE="3">日</font>): <font FACE="宋体" SIZE="3">电脑时空版</font>)</p>
</font><font FACE="宋体" SIZE="3"><p ALIGN="JUSTIFY"> </p>
<p ALIGN="JUSTIFY">三、</font><font size="3">UML</font><font FACE="宋体" SIZE="3">的主要思想</font><font
size="3"></p>
<p ALIGN="JUSTIFY"> UML</font><font FACE="宋体" SIZE="3">是面向对象开发中一种通用的、统一的、图形模型语言</font><font
size="3">,</font><font FACE="宋体" SIZE="3">是近代软件工程环境上对象分析和设计的重要工具。它是建立在现代抽象模型理论上的表示法体系结构</font><font
size="3">,</font><font FACE="宋体" SIZE="3">用户籍</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">提供的视见元素构件可以设计、表达出复杂的面向对象软件的体系结构。</font><font
size="3"> </font><font FACE="宋体" SIZE="3">从模型元素到视见元素表示的映射是建立在域分析和方法学的基础上。</font><font
size="3">UML</font><font FACE="宋体" SIZE="3">模型元素的扩充机制支持域分析。</font><font
size="3">UML</font><font FACE="宋体" SIZE="3">采用面向对象机制表达其本身的语法和语义</font><font
size="3">,</font><font FACE="宋体" SIZE="3">统一的表示法体系可以支持何基于</font><font
size="3">OO</font><font FACE="宋体" SIZE="3">的方法学</font><font size="3">,</font><font
FACE="宋体" SIZE="3">以下分述之</font><font size="3">:</p>
<p ALIGN="JUSTIFY">1</font><font FACE="宋体" SIZE="3">、</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">的元模型理论</font><font size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
模型规定了对象的属性、操作以及聚集、结合和通信。利用表示法系统对它表达的层次叫模型层。</font><font
size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
一个系统往往是由多个模型的聚集、相互结合和通信组成。我们需要一种手段构成各个模型。为此把属性、操作、结合、通信进一步抽象为结构元素、行为元素来表达模型</font><font
size="3">,</font><font FACE="宋体" SIZE="3">并提供表达系统的机制</font><font
size="3">(</font><font FACE="宋体" SIZE="3">包</font><font size="3">),</font><font
FACE="宋体" SIZE="3">这一层称为元</font><font size="3">(Meta)</font><font
FACE="宋体" SIZE="3">模型层。为了准确地表达模型的语义</font><font
size="3">,</font><font FACE="宋体" SIZE="3">提供分类</font><font size="3">(</font><font
FACE="宋体" SIZE="3">型版</font><font size="3">)</font><font FACE="宋体" SIZE="3">、说明</font><font
size="3">(</font><font FACE="宋体" SIZE="3">标记值</font><font size="3">)</font><font
FACE="宋体" SIZE="3">和约束。在这样的元模型描述下生成的模型实例</font><font
size="3">,</font><font FACE="宋体" SIZE="3">语义可以得到准确的刻画。</font><font
size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
那么元模型体系结构的表示法又是什么呢</font><font size="3">?</font><font
FACE="宋体" SIZE="3">为了准确定义元模型的元素和各种机制</font><font
size="3">,</font><font FACE="宋体" SIZE="3">元</font><font size="3">-</font><font
FACE="宋体" SIZE="3">元模型提供的最基本的概念和机制指出</font><font
size="3">,</font><font FACE="宋体" SIZE="3">每个元类中有元属性</font><font
size="3">(MeteAttribute)</font><font FACE="宋体" SIZE="3">和元操作</font><font
size="3">(MetaOperation),</font><font FACE="宋体" SIZE="3">最基本的机制是类</font><font
size="3">-</font><font FACE="宋体" SIZE="3">实例化机制</font><font size="3">,</font><font
FACE="宋体" SIZE="3">即元模型是元</font><font size="3">-</font><font FACE="宋体"
SIZE="3">元模型的实例。</font><font size="3">UML</font><font FACE="宋体" SIZE="3">表示法的最上层其实就是元</font><font
size="3">-</font><font FACE="宋体" SIZE="3">元模型层。按照莫比乌斯怪圈理论</font><font
size="3">,</font><font FACE="宋体" SIZE="3">元</font><font size="3">-</font><font
FACE="宋体" SIZE="3">元模型是自定义的</font><font size="3">,</font><font
FACE="宋体" SIZE="3">相当于编译的自编译。为了和</font><font size="3">OMG</font><font
FACE="宋体" SIZE="3">组的元对象设施</font><font size="3">(Meta Object Facility</font><font
FACE="宋体" SIZE="3">简称</font><font size="3">MOF)</font><font FACE="宋体" SIZE="3">提供的元</font><font
size="3">-</font><font FACE="宋体" SIZE="3">元模型一致。</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">的元模型体系结构直接从</font><font size="3">MOF</font><font
FACE="宋体" SIZE="3">的元模型生成。</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">是元模型层的描述语言</font><font size="3">,</font><font
FACE="宋体" SIZE="3">它的实例兼及模型层</font><font size="3">,</font><font
FACE="宋体" SIZE="3">并可以直接对应</font><font size="3">OO</font><font
FACE="宋体" SIZE="3">语言中的类、类型、消息、继承、聚集、概括、接口。而元模型层次上有丰富的语义表达机制。四层模型的理论充分吸收了通用数据交换格式</font><font
size="3">CDIF(CASEData Interchange Format)</font><font FACE="宋体" SIZE="3">研究成果</font><font
size="3">,CDIF</font><font FACE="宋体" SIZE="3">是美国电子协会</font><font
size="3">EIA</font><font FACE="宋体" SIZE="3">为软件开发各不同阶段间数据交换提出的行业规范。</font><font
size="3"></p>
<p ALIGN="JUSTIFY">2</font><font FACE="宋体" SIZE="3">、</font><font size="3"> </font><font
FACE="宋体" SIZE="3">大型逻辑包装</font><font size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
一个软件系统</font><font size="3">,</font><font FACE="宋体" SIZE="3">由不同模型的系统组成。每个模型由模型元素按照某种组合机制构成。</font><font
size="3">UML</font><font FACE="宋体" SIZE="3">从表示角度上用无语义但有结构关系的包把相关元素封装在一起。包有包容</font><font
size="3">(</font><font FACE="宋体" SIZE="3">子包</font><font size="3">)</font><font
FACE="宋体" SIZE="3">和继承关系</font><font size="3">(</font><font FACE="宋体"
SIZE="3">新包可以继承所有指名旧包的描述</font><font size="3">)</font><font
FACE="宋体" SIZE="3">。系统和模型均按包的形式提供</font><font size="3">,</font><font
FACE="宋体" SIZE="3">即一个包可以封装一个模型</font><font size="3">,</font><font
FACE="宋体" SIZE="3">若干子包聚集为一系统包。用户可以在系统提供的包的基础上定义自己的系统和各模型</font><font
size="3">(</font><font FACE="宋体" SIZE="3">以包的形式</font><font size="3">)</font><font
FACE="宋体" SIZE="3">。</font><font size="3">UML</font><font FACE="宋体" SIZE="3">提供的包是基础</font><font
size="3">(Foundation)</font><font FACE="宋体" SIZE="3">包、行为元素</font><font
size="3">(Behavioral Element)</font><font FACE="宋体" SIZE="3">包和模型管理</font><font
size="3">(Model Management)</font><font FACE="宋体" SIZE="3">包。基础</font><font
size="3">(Foundation)</font><font FACE="宋体" SIZE="3">包描述一个软件系统提供的最基本支持</font><font
size="3">;</font><font FACE="宋体" SIZE="3">行为元素</font><font size="3">(Behavioral
Element)</font><font FACE="宋体" SIZE="3">包为模型元素定义各种动作、通讯</font><font
size="3">,</font><font FACE="宋体" SIZE="3">管理其使用情况、状态描述等等</font><font
size="3">;</font><font FACE="宋体" SIZE="3">模型管理</font><font size="3">(Model
Management)</font><font FACE="宋体" SIZE="3">包定义了模型元素如何组织成模型、包和子系统。</font><font
size="3"></p>
<p ALIGN="JUSTIFY">3</font><font FACE="宋体" SIZE="3">、</font><font size="3"> </font><font
FACE="宋体" SIZE="3">元模型的静态语义的形式化</font><font size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
用户借助</font><font size="3">UML</font><font FACE="宋体" SIZE="3">提供的表示法定义自己系统的元模型</font><font
size="3">,</font><font FACE="宋体" SIZE="3">特别是以</font><font size="3">(</font><font
FACE="宋体" SIZE="3">图形的</font><font size="3">)</font><font FACE="宋体" SIZE="3">视见元素表示模型元素时</font><font
size="3">,</font><font FACE="宋体" SIZE="3">其语义解释不够准确。</font><font
size="3">UML</font><font FACE="宋体" SIZE="3">提供形式化语言</font><font size="3">OCL(</font><font
FACE="宋体" SIZE="3">对象约束语言</font><font size="3">)</font><font FACE="宋体"
SIZE="3">以一阶谓词逻辑模型描述各种约束。</font><font size="3"></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋体" SIZE="3">
实际上</font><font size="3">UML</font><font FACE="宋体" SIZE="3">继承了软件工程中形式化规格说明语言研究的成果。因为只有形式规格说明描述的软件体系结构在其各开发阶段中才能保证语义的一致性。可惜形式语言约束只能准确刻划静态语义。对于动态语义除了加上</font><font
size="3">OCL</font><font FACE="宋体" SIZE="3">描述外</font><font size="3">,</font><font
FACE="宋体" SIZE="3">还必须以自然语言加以说明</font><font size="3">,</font><font
FACE="宋体" SIZE="3">完全形式化是极为复杂的。</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">在给出自身的语义说明时运用了这个办法</font><font
size="3">,</font><font FACE="宋体" SIZE="3">对于每个包都给出三个层次的说明</font><font
size="3">:1) </font><font FACE="宋体" SIZE="3">抽象的语法</font><font size="3">(Abstract
syntax):</font><font FACE="宋体" SIZE="3">由一个</font><font size="3">UML</font><font
FACE="宋体" SIZE="3">类图给出各元类之间的关系。</font><font size="3">2) </font><font
FACE="宋体" SIZE="3">良构的规则</font><font size="3">(Well-formedness rules):</font><font
FACE="宋体" SIZE="3">用形式语言</font><font size="3">OCL</font><font FACE="宋体"
SIZE="3">表达无边界效应的约束。</font><font size="3">3) </font><font
FACE="宋体" SIZE="3">语义</font><font size="3">(Semantics):</font><font FACE="宋体"
SIZE="3">用自然语言描述引入的新概念和动态语义。</p>
<p ALIGN="JUSTIFY"> 总的来说</font><font size="3">,UML</font><font
FACE="宋体" SIZE="3">元模型是由图形表示法、自然语言和形式语言组成的描述。设计者意识到用元模型自己表述元模型是有理论限制的。这种合成强调表述性和易读性间的平衡。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -