




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
统一建模语言UML简介摘 要统一建模语言UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。本文讨论了统一建模语言UML的发展历程及主要特点,主要介绍了UML的技术核心,各种模型图,并给出了实例。关键字:统一建模语言;用例图;类图;序列图;活动图;状态图1.引言随着计算机应用的飞速发展,软件的复杂度不断提高,源代码的规模越来越大,项目失败的可能性也相应增加。在长期的研究与实践中,人们越来越深刻地认识到,建立简明准确的表示模型是把握复杂系统的关键。模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。使用模型可使人们从全局上把握系统的全貌及其相关部件之间的关系,可以防止人们过早地陷入各个模块的细节。因此,建模是软件建设的功能需求分析的重要部分。对于软件的开发来讲,参与系统建设人员包括领域专家、软件设计开发人员、管理人员和操作人员,他们之间的交流成为系统开发的最大难题, 即如何将系统的功能需求分析以明确的、清晰的方式表达出来,使得系统在具体实现阶段能够顺利地、无歧义地进行。UML作为一种建模语言,正是这样一种标准的表示,它通过统一语义和符号表示来定义一些图和它们的意义,与使用的方法无关。所以,人们可以用各种方法使用UML,而不管方法如何变化,其基础都是UML的图,这就是UML的最终用途,即为不同领域的人们提供统一的交流标准。统一建模语言UML(Unified Modeling Language)是由Rational公司的知名专家Gray Booch,Ivar Jacoboson 和 Jim Rum baugh联合开发的第三代面向对象(Object-oriented,简称OO)的建模语言,它采纳和扩展了Booch标记法、OMT( Object-oriented Modeling and Design)标记法和OOSE标记法,还吸取了面向对象技术中其它流派的长处,其中也包括非OO方法的影响。在UML中汇入了OO领域中很多人的思想,这些思想并不是UML的开发者发明的,而是依据其他最优秀的OO方法和丰富的计算机科学实践经验综合提炼而成的,同时UML在演变过程中也提出了一些新的诸如模板、职责、扩展机制、线程、过程、分布式、并发、模式、合作、活动图等新概念,并清晰地区分类型、类、实例、细化、接口和部件等概念,具有很宽的应用领域。UML适用于以OO技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。UML描述了一个系统的静态结构和动态行为。UML将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定的功能的模型结构。静态结构定义了系统中的重要对象的属性和操作以及这些对象之间的相互关系。动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。从不同但相互联系的角度对系统建立的模型可用于不同的目的。UML还包括可将模型分解成包的结构组件,以便于软件小组将大的系统分解成易于处理的块结构,并理解和控制各个包之间的依赖关系,在复杂的开发环境中管理模型单元。它还包括用于显示系统实现和组织运行的组件。UML不是一门程序设计语言。但可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,或使用反向生成器工具将程序源代码转换为UML。2.UML的特点1.形式化UML定义采用了形式化技术,但并不是完全形式化的规约,对于语法结构给出了精确的规约,对其动态语义使用自然语言描述。UML定义在元模型层上,使用抽象语法(采用UML的类图描述元素之间的关系)、形式化规约(采用自然语言和对象约束语言)、语义(采用自然语言)描述元模型.这样,UML元模型通过自然语言文本和用UML完成的类图进行组合描述。形式化方法提供了规约环境的基础,它使得生成的模型比传统的模型更完整,一致和无二义。虽然基于形式的、数学的规约技术还没有在产业界广泛应用,但它确实比欠形式化方法有实质的优点。2.简单性UML是比较复杂的,在元模型层大约有90个元类、50个版式,分为3个大包:基础、行为、管理。每个包有许多子包。整个UML规范有674页。UML的基础原则也许几个小时就可搞植,然而要理解全部的概念、概念之间的关系、基础元模型则需要大量的时间和精力,比学一门程序设计语言难得多。如果建模语言简单、较小、易于记忆,用户将全部掌握它。用户主要是使用建模语言而不是学习它。复杂的建模语言,花费用户大量的时间,同时相应的CASE工具也比较难以实现。我们认为UML应该适当简化。3.唯一性UML在很多地方有大量的重复,有多种方法表示同一概念。如序列图和协作图在语义上是完全一样的,可用注释,也可用OCL表示约束。这样的重叠,理论上说是应该取消的,或者应该给出明确的指导原则说明什么时候采用什么形式。对于重复的概念,我们可以选择一个表示方法作为标准,其它方法可用CASE工具自动生成。4.无缝性使用UML进行无缝开发,必须去掉开发过程中概念的转变,即在设计、分析、实现中使用同一概念。无缝性,独立于程序语言.比如,如果模型中有多重继承,然而我们使用不支持多重继承的Java语言,那么我们就无法做到无缝开发。将UML与程序语言结合,如UML-Java, UML-C+,可做到一定的无缝性。无缝性有助于从模型中生成代码,也有助于软件的维护。无缝性使得问题域中的抽象映射到解空间的实现时,表示符号不变。这样避免了软件开发过程中各种模型的不匹配。在面向对象的无缝开发过程中,在各个阶段开发者都在同一抽象层上。在这点上,UML还需要改进。5.可逆性UML通过软件工具可实现模型与代码的同步,这种实现在现阶段还是比较弱的。Rational Rose能实现模型与VC+,VB ,Java代码的同步,但现阶段只能做到框架同步。可逆性对于产生可维护的软件非常有用,可保持模型与代码同步,可帮助创建和维护系统文档。模型中的改变可映射到代码中,代码的改变也能映射到模型中。6.支持性通常人们使用某种辅助软件来建立模型。这种软件应该易于建立正确的模型,易于使模型与代码同步。工具支持建模语言是非常重要的.建模语言的支持性指的是要有软件工具支持建模语言,在表示符号上要易于在计算机屏幕上绘出,在语义上要易于模型与代码的同步.这点UML做的非常好。3.UML的技术核心作为一种建模语言,UML的定义包括UML语义和UML表示法。其中UML语义是基于UML的精确元模型,并支持对元模型的扩展定义;UML表示法是定义UML符号的表示法,是为使用这些图形符号和文本语法进行系统建模提供标准。UML的主要内容可由下列5类图(共9种图形)定义:(1)用例图从用户角度描述系统功能,并指出各功能的操作者,聚合用户的功能需求,由系统、角色、用例组成。在需求分析阶段的前期,分析人员应该首先寻找系统的角色,然后寻找角色所需的功能而得到用例图。系统用矩形表示,名字注明在内部上端。角色表示系统边界以外与系统进行交互的实体,用人形符号来表示。用例是对系统功能的宏观描述,用椭圆来表示,它从外部用户的角度以黑盒的方式来描述系统应该实现什么样的功能,通常有一个正常情况和若干个例外情况流程。角色和用例之间的通信关系用直线来表示,而用例要完成的功能用文字或非形式化的语言来说明,着重描述用例向外部角色应提供的功能。图1为计算机网络仿真系统的组建网络拓扑结构这个用例,图中清晰地演示了各个视图符号的使用,其中的箭头线表示用例之间的使用关系,上面注明使用,表明这是一种UML的扩展机制。(2)静态图包括类图、对象图。其中类图描述系统中类的静态结构;对象图是类图的实例。类图类图用来描述类以及类之间的各种关系,具有简单明了,信息量大的优点,是其它图的基础。在需求分析阶段,通过在用例的功能描述中寻找名词或概念,可以得到各类之间的关系。类的图形符号在内部分为类名、属性、操作三部分的矩形,类名用黑体字表示。类之间的关系常见的有关联、继承。二元关联常见的有普通关联、限定关联、聚合。普通关联用直线表示。限定关联是一端依据某种属性可以将另一端的类的对象分为若干集合的关联,常用于一对多或多对多的关联中,其图形符号用一端带小矩形框的直线表示。聚合是二元关联的特例,表示整体与部分之间的关系,分为共享聚合和复合聚合。共享聚合中的部分对象可以独立于整体对象的生命期而单独存在,整体方与部分方的重数均可以为多重,图形符号用整体方带空心菱形的直线表示。复合聚合中的部分对象只能随整体对象生命期的结束而结束,不能单独存在,整体方的重数只能为1,部分方的重数可以为多重,图形符号用整体方带实心菱形的直线表示。至于关联的方向、名字可视需要取舍,关联的重数注明在各种连接的旁边。类之间的继承关系是指一个类可以使用另一个类的信息,同时,还具有自己特有信息的分类关系,用指向父类的三角箭头线表示。图2表示了分析图1的用例后得到的类图,设备类和网络连接线类之间是复合聚合,设备类和服务器、客户机类之间是继承关系。客户机类和光纤类之间的关系退化为普通关联。注意各个类的属性和操作应该从分析用例的序列图得到。对象图对象图是类图在某个运行时刻的实例化,用于表示那些复杂的类之间的关系。其图示较简单,将类图中类的名字改为带下划线的对象名,即成为对象的图形表示。各属性均有具体的值,对象之间的关系对于每一个连接来说在这里都是一对一的。(3)行为图分为状态图和活动图,用于描述系统的动态模型和组成对象间的交互关系。其中状态图是对类图的补充,仅为那些有多个状态其行为受外界环境影响且发生改变的类所作;而活动图描述的是满足实例要求所要进行的活动和活动间的约束关系,以有利于识别并行活动。状态图状态图用于描述对象可以拥有的状态以及引起状态相互转移的事件和条件,它揭示了对象的生命周期,是针对类的一种建模工具。状态是对象前一次操作的结果,事件是引起状态向另一状态转化的活动。所有对象都有状态,但通常只对具有复杂行为的类建立状态图。在UML中,状态图有一个初始态(用黑圆点表示),若干个终态(用黑圆点外加一圆圈表示)。状态用圆角矩形表示,状态之间的箭头线表示状态转换,引起状态转换的事件注明在箭头线旁边。表示状态的圆角矩形分为三部分,上部为状态名,中部为可选的表示状态取值的状态变量和其值,下部为可选的该状态下的活动表,列出有关的事件和活动。状态的活动表中通常使用三种标准事件:进入该状态的事件,退出该状态的事件,在该状态应该完成的活动。描述活动的语法为:事件名、参数表/动作表达式。两个类的状态图之间可以相互发送消息,用连接两个状态图的虚线来表示。另外,一个状态还可以有嵌套的子状态,各子状态之间的关系可以为与关系或者为或关系,此时,父状态只保持名字,下面的矩形框中嵌入完整的子状态的状态图。活动图活动图用于描述系统、用例、程序模块中的逻辑流程的先后执行次序,并行次序。活动图的主要概念活动,其含义取决于作图目的和抽象层次。当活动图用于描述系统行为时,主要侧重于系统多个用例活动之间相互制约的执行顺序,同时,识别出系统中存在的可以并行进行的用例,此时,活动表示系统要完成的任务。当活动图用于描述用例时,用于描述用例中的操作执行次序和操作完成的结果,显示多个对象的操作是如何相互结合起来共同完成用例的一个脚本,揭示出操作之间的并行性,为编码实现提供开发并行程序的便利,此时,活动表示类中的方法,即操作。允许将某个组织或执行者要完成的若干操作聚集在泳道中,以明确责任。活动图用于低层次程序模块的作用类似于流程图,但活动图还可以描述并行操作,而流程图只能描述串行操作在UML中,每个活动图都有一个起点,但不一定有终点。圆角矩形框表示一个要完成的活动;箭头线表示执行方向,其上的标注为执行下一个活动的条件,若箭头线上没有条件,则缺省为执行完该活动后自动执行箭头所指的活动;加粗直线条为同步条,表示其后的活动执行路线可以并行进行,或在其上的所有并行活动执行完毕后,到此转为顺序执行;菱形表示判断。(4)交互图分为顺序图和合作图,用于描述对象间的交互关系。其中顺序图表示的是对象间的动态合作关系,显示的是对象间消息发送顺序和对象之间的交互,强调的是事件和顺序;而合作图描述的是对象间的协作关系,显示的是对象间的动态合作关系,强调的是上下级的关系。(5)实现图分为部件图和配置图。部件图描述的是代码部件的物理结构及各部件之间的依赖关系,有助于分析和理解部件之间的相互依赖程度;配置图则是定义系统中软硬件的物理体系结构,用来显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,或者显示连接的类型及部件之间的依赖性。配置图用来描述系统实现后所需要的硬件的物理分布图,以及在此拓扑结构上运行的软件分布情况,由节点、软件构件、节点间的通信连接组成。节点代表系统实现后要布置的一个物理上实际存在的计算实体,其上分布一些可执行的软件构件。通常这些软件构件对应于类图中的包或类,注意其表示层次比组件图中的软件构件高。各节点之间的连接表示其交互的通信线路,通信类型放在中,表示所用的通信协议或网络类型。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业设计与制造技术创新
- 工业领域的能源管理培训教程
- 工作中的目标管理与实现路径
- 工作生活的平衡技巧探讨与应用实例
- 工业领域新能源技术的推广
- 工作与生活平衡的技巧
- 工程流体力学中的数学模型与数值模拟方法研究
- 工作汇报的快速制作技巧
- 工程索道设计与施工技术管理
- 工程机械的冷却系统设计与研究
- 后罗拉过桥摇臂-课程设计说明书
- 《Python少儿编程》PPT课件(共11章)第二章 Python 编程基础
- 配对样本t检验表格
- GB/T 91-2000开口销
- 青花瓷中国风ppt
- 2021年汽车吊载人吊篮作业安全专项措施
- 质量管理之CAPA教学课件
- 泌尿外科健康教育2膀胱冲洗健康宣教
- 焊接件通用技术要求
- 星子港件杂货港区总平面布置与码头结构设计
- 水墨印刷机操作规程
评论
0/150
提交评论