|
<p class="MsoNormal" style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: 36pt; TEXT-ALIGN: justify;"><b><span style="FONT-SIZE: 14pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">面向对象的标准建模语言<span lang="EN-US">UML<p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">摘要<span lang="EN-US">:<p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">面向对象的标准建模语言<span lang="EN-US">UML,</span>是当今软件工程领域中最具有意义的成果之一<span lang="EN-US">,</span>它定义的统一语义和符号表示可以规范面向对象技术市场<span lang="EN-US">,</span>使项目源于一个成熟的标准建模语言<span lang="EN-US">,</span>从而拓宽了所研制与开发的软件系统的适用范围<span lang="EN-US">,</span>并提高其灵活程度。本文就<span lang="EN-US">UML</span>中的一些特征与技术作了一个总体概述。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">关键词<span lang="EN-US">:UML;</span>用例<span lang="EN-US">;</span>静态建模机制<span lang="EN-US">;</span>动态建模机制<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑;"><p><font size="3"> </font></p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">0</span></b><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">引 言<span lang="EN-US"><p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">自从面向对象语言<span lang="EN-US">Smalltalk</span>及其环境出现以后<span lang="EN-US">,</span>十几年来面向对象技术的研究已遍布计算机软硬件各个领域<span lang="EN-US">:</span>面向对象语言<span lang="EN-US">,</span>面向对象程序设计方法学<span lang="EN-US">,</span>面向对象操作系统<span lang="EN-US">,</span>面向对象数据库<span lang="EN-US">,</span>面向对象的建模语言等等。由于面向对象技术在软硬件开发方面呈现出巨大的优越性<span lang="EN-US">,</span>人们将其视为解决软件危机的一个很有希望的突破口<span lang="EN-US">,</span>从而使面向对象技术的研究和应用成为二十世纪计算机技术研究和应用的一个相当活跃的领域。然而虽然说面向对象技术兴起已近<span lang="EN-US">20</span>年的历史<span lang="EN-US">,</span>但真正走向实用却是近几年。在国外<span lang="EN-US">,</span>利用面向对象建模语言开发软件的企业已逐渐增多<span lang="EN-US">,</span>而国内了解建模语言和工具的企业还相对较少。<span lang="EN-US">UML(UnifiedModelingLanguage)</span>统一建模语言<span lang="EN-US">,</span>是面向对象建模语言<span lang="EN-US">,</span>主要用于软件系统的面向对象建模。可以说在软件工程发展过程中<span lang="EN-US">,</span>其中最重要的、具有划时代重大意义的 成果之一就是统一建模语言<span lang="EN-US">UML</span>的出现。在世界范围内<span lang="EN-US">,</span>至少在近<span lang="EN-US">10</span>年内<span lang="EN-US">,UML</span>将是面向对象技术领域内占主导地位的标准建模语言。主要有三个原因<span lang="EN-US">:</span>一、可以使我们在不同项目之间实施统一的软件工程方法以便管理<span lang="EN-US">,</span>打破它们之间的屏障<span lang="EN-US">;</span>二、国际化<span lang="EN-US">,</span>可以使在系统集成领域和工业界有很多合作伙伴<span lang="EN-US">;</span>三、标准化<span lang="EN-US">,</span>它已被<span lang="EN-US">OMG(ObjectManagementOrganization)</span>采纳为国际标准。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18.75pt; TEXT-INDENT: -18.75pt; mso-list: l0 level1 lfo1; tab-stops: list 18.75pt;"><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑; mso-bidi-font-size: 12.0pt;"><span style="mso-list: Ignore;">1<span style="FONT: 7pt 'Times New Roman';"> </span></span></span></b><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">UML</span></b><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">概述<span lang="EN-US"><p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">面向对象的分析与设计<span lang="EN-US">(OOA&D)</span>方法的发展在<span lang="EN-US">80</span>年代末至<span lang="EN-US">90</span>年代中出现了一个高潮<span lang="EN-US">,UML</span>是这个高潮的产物。它不仅统一了<span lang="EN-US">Booch</span>、<span lang="EN-US">Rumbaugh</span>和<span lang="EN-US">Jacobson</span>的表示方法<span lang="EN-US">,</span>而且对其作了进一步的发展<span lang="EN-US">,</span>并最终统一为大众所接受的标准建模语言。<span lang="EN-US">Booch</span>是面向对象方法最早的倡导者之一<span lang="EN-US">,</span>他提出了面向对象软件工程的概念且他设计的<span lang="EN-US">Booch1993</span>比较适合于系统的设计和构造<span lang="EN-US">;Rumbaugh</span>等人提出了面向对象的建模技术<span lang="EN-US">(OMT)</span>方法<span lang="EN-US">,</span>采用了面向对象的概念<span lang="EN-US">,</span>并引入各种独立于语言的表示符<span lang="EN-US">;Jacobson</span>于<span lang="EN-US">1994</span>年提出了<span lang="EN-US">OOSE</span>方法<span lang="EN-US">,</span>其最大特点是面向用例<span lang="EN-US">(Use-Case),</span>并在用例的描述中引入了外部角色的概念。由此<span lang="EN-US">,</span>在面对这么多的建模语言<span lang="EN-US">,</span>用户很难区别这些语言之间的差别<span lang="EN-US">,</span>也很难找到一种比较适合其应用特点的语言<span lang="EN-US">,</span>况且众多的建模语言也各有特色<span lang="EN-US">,</span>即使这些不同的建模语言大多类同<span lang="EN-US">,</span>但仍存在某些细微的差别<span lang="EN-US">,</span>这就极大地妨碍了用户之间的交流。因此在客观上<span lang="EN-US">,</span>极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上<span lang="EN-US">,</span>根据应用需求<span lang="EN-US">,</span>统一建模语言。<span lang="EN-US">UML</span>就是这样一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计<span lang="EN-US">,</span>还支持从需求分析开始的软件开发的全过程。这种语言继承了各种面向对象和一些结构化建模语言的优点<span lang="EN-US">,</span>把它们有机地融为一体<span lang="EN-US">,</span>也代表了面向对象方法的软件开发技术的发展方向<span lang="EN-US">,</span>具有巨大的市场前景<span lang="EN-US">,</span>也具有重大的科研价值和经济价值。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18.75pt; TEXT-INDENT: -18.75pt; mso-list: l0 level1 lfo1; tab-stops: list 18.75pt;"><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑; mso-bidi-font-size: 12.0pt;"><span style="mso-list: Ignore;">2<span style="FONT: 7pt 'Times New Roman';"> </span></span></span></b><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">UML</span></b><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">的特征<span lang="EN-US"><p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt;"><font size="3"><span lang="EN-US" style="FONT-FAMILY: 华文细黑;">UML</span><span style="FONT-FAMILY: 华文细黑;">是以面向对象图的方式来描述任何类型的系统<span lang="EN-US">,</span>具有很广泛的应用领域。特别是在建立软件系统的模型中<span lang="EN-US">,</span>它支持从系统需求、系统分析到系统设计的整个建模过程<span lang="EN-US">,</span>提供<span lang="EN-US">UML</span>图形的编辑和美化工具<span lang="EN-US">,</span>保证得到语法正确、语义完整的<span lang="EN-US">UML</span>图形模型<span lang="EN-US">,</span>并提供包括文档管理和图形打印等辅助支持。它不仅支持建立系统的静态模型<span lang="EN-US">,</span>还支持描述系统的动态模型。在系统对象模型中<span lang="EN-US">:</span>通过包图、类图和对象图定义系统对象及对象间的静态关系<span lang="EN-US">;</span>通过顺序图、合作图和状态图描述对象间的交互关系、对象的生命周期以及生命周期中对象可能存在的状态和状态间的转换约束。在系统体系结构模型中<span lang="EN-US">:</span>通过组件图和配置图支持软件体系结构和硬件体系结构以及通信机制的定义。可以看出<span lang="EN-US">UML</span>吸取了面向对象技术领域中的长处<span lang="EN-US">,</span>当然也包括一些非<span lang="EN-US">OO</span>方法的影响。<span lang="EN-US">UML</span>符号表示考虑了各种方法的图形表示<span lang="EN-US">,</span>删掉了大量易引起混乱的、多余的和极少使用的符号<span lang="EN-US">,</span>也添加了一些新符号。因此<span lang="EN-US">,</span>在<span lang="EN-US">UML</span>中汇入的这些思想是依据最优秀的<span lang="EN-US">OO</span>方法和丰富的计算机科学实践经验综合提炼而成的。尽管<span lang="EN-US">UML</span>支持从需求分析开始的软件开发的全过程<span lang="EN-US">,</span>但如何恰当地将这种可视化图形建模技术用于解决软件开发所面临的问题<span lang="EN-US">,</span>如何研制和开发支持<span lang="EN-US">UML</span>的建模过程及其支持环境<span lang="EN-US">,</span>仍是目前该领域有待研究的问题。<span lang="EN-US"><p></p></span></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18.75pt; TEXT-INDENT: -18.75pt; mso-list: l0 level1 lfo1; tab-stops: list 18.75pt;"><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑; mso-bidi-font-size: 12.0pt;"><span style="mso-list: Ignore;">3<span style="FONT: 7pt 'Times New Roman';"> </span></span></span></b><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">UML</span></b><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">的静态建模机制<span lang="EN-US"><p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">在软件开发当中<span lang="EN-US">,</span>当采用面向对象技术设计系统时<span lang="EN-US">,</span>首先是描述需求<span lang="EN-US">,</span>然后根据需求建立系统的静态模型<span lang="EN-US">,</span>以构造系统的结构<span lang="EN-US">,</span>其中主要用用例图、类图<span lang="EN-US">(</span>包含包<span lang="EN-US">)</span>、对象图、构件图和配置图等五个图形来表现<span lang="EN-US">,</span>也即称之为标准建模语言<span lang="EN-US">UML</span>的静态建模机制。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑;"><p><font size="3"> </font></p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -36pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑;"><span style="mso-list: Ignore;"><font size="3">3.1</font><span style="FONT: 7pt 'Times New Roman';"> </span></span></span><span style="FONT-FAMILY: 华文细黑;"><font size="3">用例图<span lang="EN-US">(Usecasediagram)</span>在面向对象领域中用例这一概念已广泛地接纳<span lang="EN-US">,</span>并认为它是第二代面向对象技术的标志。用例被定义为系统执行的一系列动作<span lang="EN-US">,</span>动作执行的结果能被指定执行者察觉到。那么从用户的角度来看<span lang="EN-US">,</span>用例图就是来描述系统功能<span lang="EN-US">,</span>并指出各功能的执行者<span lang="EN-US">(</span>执行者是指用户在系统中所扮演的角色<span lang="EN-US">)</span>。在许多情况下会使用到用例。用例用来获取需求<span lang="EN-US">,</span>规划和控制项目。用例的获取是需求分析阶段的主要任务之一<span lang="EN-US">,</span>而且是首先要做的工作。大部分用例将在项目的需求分析阶段产生并且随着工作的深入会发现更多的用例<span lang="EN-US">,</span>这些都应及时增添到已有的用例集中。用例集中的每一个用例都是一个潜在的需求。图<span lang="EN-US">1</span>就是一个简单的用例图的例子<span lang="EN-US">:</span>其中椭圆表示一个用例<span lang="EN-US">,</span>二个小人的图形表示执行者。从图中可以看出<span lang="EN-US">,</span>一个用例就是用户与计算机之间的一次典型交互作用。通过实践<span lang="EN-US">,</span>我们发现执行者对提供用例是非常有用的<span lang="EN-US">,</span>面对一个大系统要列出用例清单常常是十分困难。这时可先列出执行者清单<span lang="EN-US">,</span>再对每个执行者列出它的用例<span lang="EN-US">,</span>问题就会变得容易很多。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -36pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑;"><span style="mso-list: Ignore;"><font size="3">3.2</font><span style="FONT: 7pt 'Times New Roman';"> </span></span></span><span style="FONT-FAMILY: 华文细黑;"><font size="3">类图<span lang="EN-US">(Classdiagram)</span>、对象图<span lang="EN-US">(Objectdiagram)</span>类、对象和它们之间的关联是面向对象技术中最基本的元素。对一个软件系统来讲<span lang="EN-US">,</span>其类模型和对象模型就揭示了系统的结构<span lang="EN-US">,</span>在<span lang="EN-US">UML</span>中<span lang="EN-US">,</span>类和对象模型分别由类图和对象图来描述。类图定义了系统中的类<span lang="EN-US">,</span>描述了类之间的联系如关联、依赖、聚合等<span lang="EN-US">,</span>也包括类的内部结构<span lang="EN-US">(</span>类的属性和操作<span lang="EN-US">)</span>。由于类图描述的是一种静态关系<span lang="EN-US">,</span>所以在系统的整个生命周期都是有效的。对象图是类图的实例<span lang="EN-US">,</span>一个对象图就是类图的一个实例。由于对象的存在是有其生命周期的<span lang="EN-US">,</span>因此对象图只能在系统某一时间段存在。类图技术是<span lang="EN-US">OO</span>方法的核心<span lang="EN-US">,</span>是定义其它图的基础。在类图的基础上<span lang="EN-US">,</span>状态图、合作图等才能进一步描述系统其他方面的特性。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -36pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑;"><span style="mso-list: Ignore;"><font size="3">3.3</font><span style="FONT: 7pt 'Times New Roman';"> </span></span></span><span style="FONT-FAMILY: 华文细黑;"><font size="3">构件图<span lang="EN-US">(Componentdiagram)</span>、配置图<span lang="EN-US">(Deploymentdiagram)</span>构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。构件图可以用来显示编译、链接或执行时构件之间的依赖关系<span lang="EN-US">,</span>这样有助于我们分析和理解部件之间的相互影响程度。配置图定义系统中软硬件的物理拓扑结构以及在此结构上执行的软件。它可以显示实际的计算机和设备<span lang="EN-US">(</span>用节点表示<span lang="EN-US">)</span>以及它们之间的连接关系<span lang="EN-US">,</span>也可显示连接的类型及部件之间的依赖性<span lang="EN-US">,</span>还可以显示网络之间的通信路径。特别是在节点内部<span lang="EN-US">,</span>可以放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。配置图常常用于帮助理解分布式系统。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18.75pt; TEXT-INDENT: -18.75pt; mso-list: l0 level1 lfo1; tab-stops: list 18.75pt;"><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑; mso-bidi-font-size: 12.0pt;"><span style="mso-list: Ignore;">4<span style="FONT: 7pt 'Times New Roman';"> </span></span></span></b><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">UML</span></b><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">的动态建模机制<span lang="EN-US"><p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 18.75pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">通过静态建模以后<span lang="EN-US">,</span>接着要描述系统的行为<span lang="EN-US">,</span>也就是描述所建立的模型是否可以执行或者执行时的时序状态和其交互关系。其中主要用状态图、活动图、顺序图、合作图等四个图形来表现<span lang="EN-US">,</span>把之称为标准建模语言<span lang="EN-US">UML</span>的动态建模机制。在面向对象技术中<span lang="EN-US">,</span>对象间的交互是通过对象间消息的传递来完成的。对象通过相互间的消息传递进行合作<span lang="EN-US">,</span>并在其生命周期中根据传递的结果不断改变自身的状态。<span lang="EN-US">UML</span>的四个动态模型中都采用了这种机制。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -36pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑;"><span style="mso-list: Ignore;"><font size="3">4.1</font><span style="FONT: 7pt 'Times New Roman';"> </span></span></span><span style="FONT-FAMILY: 华文细黑;"><font size="3">状态图<span lang="EN-US">(StateDiagram)</span>、活动图<span lang="EN-US">(ActivityDiagram)</span>状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常<span lang="EN-US">,</span>我们都用状态图来表示单个对象在其生命周期中的行为<span lang="EN-US">,</span>一个状态图就是一系列状态以及状态之间的转移。所以也可以称状态图是对类图的一种补充。在实际当中<span lang="EN-US">,</span>我们并不需要画出所有类的状态图<span lang="EN-US">,</span>而只要为那些有多个状态且行为受外界环境的影响发生改变的类画状态图。活动图描述满足用例要求所要进行的活动以及活动间的约束关系<span lang="EN-US">,</span>有利于识别并行活动。它的应用非常广泛<span lang="EN-US">,</span>既可用来描述操作<span lang="EN-US">(</span>类的方法<span lang="EN-US">)</span>的行为<span lang="EN-US">,</span>也可以描述用例和对象内部的工作过程。活动图是由状态图变化而来的<span lang="EN-US">,</span>但它们各自用于不同的目的。活动图总是依据对象状态的变化来捕获动作<span lang="EN-US">(</span>将要执行的工作或活动<span lang="EN-US">)</span>与动作的结果<span lang="EN-US">,</span>在一个活动结束后将立即进入下一个活动。并且活动图对表示并发行为特别有用。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -36pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt;"><span lang="EN-US" style="FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑;"><span style="mso-list: Ignore;"><font size="3">4.2</font><span style="FONT: 7pt 'Times New Roman';"> </span></span></span><span style="FONT-FAMILY: 华文细黑;"><font size="3">顺序图<span lang="EN-US">(SequenceDiagram)</span>、合作图<span lang="EN-US">(CollaborationDiagram)<p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 72pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">顺序图用来描述对象之间的动态的交互关系<span lang="EN-US">,</span>它强调对象之间消息发送的顺序<span lang="EN-US">,</span>同时显示对象之间的交互。顺序图中的消息可以是信号、操作调用或<span lang="EN-US">Java</span>中的<span lang="EN-US">RMI(RemoteMethodInvocation),</span>当对象接收到消息后立即开始执行活动<span lang="EN-US">,</span>也就是说该对象被激活了。合作图描述相互合作的对象间的交互关系和链接关系。虽然顺序图和合作图都用来描述对象间的交互关系<span lang="EN-US">,</span>但侧重点不一样<span lang="EN-US">,</span>顺序图着重体现交互的时间顺序<span lang="EN-US">,</span>合作图则着重体现交互对象间的静态链接关系。因此<span lang="EN-US">,</span>如果强调时间和顺序<span lang="EN-US">,</span>则使用顺序图<span lang="EN-US">;</span>如果强调上下级关系<span lang="EN-US">,</span>则选择合作图。<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 18.75pt; TEXT-INDENT: -18.75pt; mso-list: l0 level1 lfo1; tab-stops: list 18.75pt;"><b><span lang="EN-US" style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-family: 华文细黑; mso-bidi-font-size: 12.0pt;"><span style="mso-list: Ignore;">5<span style="FONT: 7pt 'Times New Roman';"> </span></span></span></b><b><span style="FONT-SIZE: 16pt; FONT-FAMILY: 华文细黑; mso-bidi-font-size: 12.0pt;">结束语<span lang="EN-US"><p></p></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">总之<span lang="EN-US">,UML</span>适用于以面向对象技术来描述任何类型的系统<span lang="EN-US">,</span>而且适用于<span lang="EN-US"><p></p></span></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><span style="FONT-FAMILY: 华文细黑;"><font size="3">系统开发的不同阶段<span lang="EN-US">,</span>从需求规格描述直至系统完成后的测试和维护。用户在遵循增量迭代开发的原则下<span lang="EN-US">,</span>完全可以根据自己所开发系统的特点<span lang="EN-US">,</span>在每次迭代的微过程<span lang="EN-US">(</span>分析、设计、实现、测试和配置<span lang="EN-US">)</span>中<span lang="EN-US">,</span>灵活的选用<span lang="EN-US">UML</span>所提供的各种图。我们认为<span lang="EN-US">,</span>将来的软件开发方式应该有三个主要特点<span lang="EN-US"> 1)</span>软件开发的自动化程度将越来越高<span lang="EN-US">;(2)</span>在开发的软件中隐蔽性将越来越好<span lang="EN-US">;(3)</span>在新的软件工程环境下<span lang="EN-US">,</span>将有能力开发出自适应的软件系统。设置不当<span lang="EN-US">,</span>等等。因此<span lang="EN-US">,</span>在<span lang="EN-US">Domino</span>应用系统中<span lang="EN-US">,</span>对于功能、内容不同的数据库<span lang="EN-US">,</span>可根据具体情况分别建立各自的联接文档<span lang="EN-US">,</span>在文档中指定不同的复制时段与间隔<span lang="EN-US">,</span>以均衡网络及服务器的负载。对于那些应尽可能随时在全系统保持一致的数据库<span lang="EN-US">,</span>如公共地址簿、重要通告数据库等<span lang="EN-US">,</span>应该在每天<span lang="EN-US">24</span>小时都作复制<span lang="EN-US">,</span>且复制间隔必须很短<span lang="EN-US">;</span>对于更新频率不高、且不要求立即同步信息的数据库<span lang="EN-US">,</span>如每日工作汇报数据库<span lang="EN-US">,</span>则可只在每日下班至次日上班之间的时段进行复制<span lang="EN-US">,</span>间隔则可设为数小时<span lang="EN-US">,</span>或每日只复制一次<span lang="EN-US">;</span>对于更新频率、同步要求介于上述两种之间的数据库<span lang="EN-US">,</span>可在每日几个时段进行复制<span lang="EN-US">,</span>并选定适当的间隔。数据库的权限设置应充分考虑到对各级服务器的要求<span lang="EN-US">,</span>力求在不影响信息正常复制的同时<span lang="EN-US">,</span>将对数据的更改限制在局部范围之内。例如<span lang="EN-US">,</span>在用来向下级发布通告的数据库中<span lang="EN-US">,</span>可以给下级机构服务器赋予“读者”权限<span lang="EN-US">;</span>这样<span lang="EN-US">,</span>即使该数据库在下级机构服务器上的副本遭到破坏<span lang="EN-US">,</span>也不会影响其它各处的副本。系统中的重要数据库如公用地址簿、<span lang="EN-US">OA</span>应用数据库及电子信箱等均应在当地建立备份<span lang="EN-US">,</span>以防止意外情况下的数据丢失。为此<span lang="EN-US">,</span>可在当地另一台<span lang="EN-US">Domino</span>服务器上建立上述数据库的增量复制的副本<span lang="EN-US">(Replica),</span>根据实际需要做间隔较短的定时单向复制。当原数据库的文档遭到误改、误删<span lang="EN-US">,</span>甚至数据库本身出现严重错误时<span lang="EN-US">,</span>管理员可以通过反向复制迅速恢复最后一次备份时的内容。对于这种增量备份过程形成的副本<span lang="EN-US">,</span>管理员需要定期进行整理、删除等维护<span lang="EN-US">,</span>并根据具体情况利用磁带机、光盘等存储介质进行长期备份。网管中心及各部门用于复制的服务器均起着中心<span lang="EN-US">(Hub)</span>的作用<span lang="EN-US">,</span>是整个<span lang="EN-US">Domino</span>系统在系统范围内进行数据同步的枢纽。这些服务器一旦发生故障<span lang="EN-US">,</span>将会导致电子邮件和<span lang="EN-US">OA</span>等应用系统在各部门内的瘫痪<span lang="EN-US">,</span>造成严重后果。因此<span lang="EN-US">,</span>对这些服务器必须在软、硬件上作出备份<span lang="EN-US">,</span>以便在原服务器停用时<span lang="EN-US">,</span>及时由备份服务器接替运行。如前所述<span lang="EN-US">,Domino</span>提供了强大的管理、控制功能<span lang="EN-US">,</span>为其在<span lang="EN-US">Intranet</span>中运行创造了良好的基本条件。然而<span lang="EN-US">,</span>系统设备、多台服务器的配置和管理以及大量用户的统一管理都是十分复杂而烦琐的工作<span lang="EN-US">,</span>需要对<span lang="EN-US">Domino</span>系统有深入的了解和丰富的应用、管理经验。实际上<span lang="EN-US">,</span>对于任何应用系统<span lang="EN-US">,</span>如果设置或管理不当<span lang="EN-US">,</span>必然会使用户面临潜在的风险。<span lang="EN-US"><p></p></span></font></span></p><span style="FONT-SIZE: 12pt; FONT-FAMILY: 华文细黑; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">参考文献<span lang="EN-US">:[1]</span> <span lang="EN-US">NonKaufman.LANSolutions[DB/OL].http://www.perfectlan.'com,<chsdate wst="on" isrocdate="False" islunardate="False" day="12" year="1999">1999-10-12</chsdate>/<chsdate wst="on" isrocdate="False" islunardate="False" day="20" year="2000">2000-03-20</chsdate>.</span> <span lang="EN-US">(</span>上接第<span lang="EN-US">29</span>页<span lang="EN-US">)</span> 标准建模语言<span lang="EN-US">UML</span>及其集成化支持环境<span lang="EN-US">,</span>将为该开发方式提供极有希望的途径。参考文献<span lang="EN-US">:[1]</span> 刘超<span lang="EN-US">,</span>张莉<span lang="EN-US">,</span>周伯生<span lang="EN-US">.</span>可视化面向对象建模技术——标准建模语言<span lang="EN-US">UML[M].</span>北京<span lang="EN-US">:</span>北航出版社<span lang="EN-US">,1999,7.[2]</span> 陈世鸿<span lang="EN-US">,</span>彭蓉<span lang="EN-US">.</span>面向对象软件工程<span lang="EN-US">[M].</span>北京<span lang="EN-US">:</span>电子工业出版社<span lang="EN-US">,1999,5.[3]</span> 邵维忠<span lang="EN-US">,</span>杨芙清<span lang="EN-US">.</span>面向对象的系统分析<span lang="EN-US">[M].</span>南宁<span lang="EN-US">:</span>广西科技出版社<span lang="EN-US">,1998,12.[4]</span> <span lang="EN-US">EdwardYourdon,CarlArgila.</span>实用面向对象软件工程教程<span lang="EN-US">[M].</span> </span> |
|