UML(统一建模语言)介绍

上传人:ZJ****4 文档编号:46889987 上传时间:2018-06-28 格式:PDF 页数:12 大小:804.73KB
返回 下载 相关 举报
UML(统一建模语言)介绍_第1页
第1页 / 共12页
UML(统一建模语言)介绍_第2页
第2页 / 共12页
UML(统一建模语言)介绍_第3页
第3页 / 共12页
UML(统一建模语言)介绍_第4页
第4页 / 共12页
UML(统一建模语言)介绍_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《UML(统一建模语言)介绍》由会员分享,可在线阅读,更多相关《UML(统一建模语言)介绍(12页珍藏版)》请在金锄头文库上搜索。

1、Contents1UML(统统统一一一建建建模模模语语语言言言)介介介绍绍绍21.1用例图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.2类图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41.2.1关联 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51.2.2泛化 . . . . . . . . . . . . . . . . . . .

2、. . . . . . . . . . .51.2.3依赖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61.3组件图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71.4部署图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71.5顺序图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3、 . . . .81.6活动图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91.7状态机图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1111UML(统一建模语言)介绍李刚June 9, 20121UML(统统统一一一建建建模模模语语语言言言)介介介绍绍绍面向对象软件开发需要经过OOA、OOD和OOP三个阶段, OOA对目标系统进行分析并建立分析模型,并将之文档化, OOD用面向对象的思想将OOA的结果进行细化,得出设计模型。OO

4、A和OOD的分析、设计结果需要统一的符号的描述、交流并记录, UML就是这种用于描述、记录OOA和OOD结果的符号表示法。面向对象的分析与设计方法在20 世纪80 年代末至90 年代中出现了一个高潮, UML是这个高潮的产物。在此期间出现了三种具有代表性的表示方法。Booch 是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。Booch 1993 表示法(由Booch 提出)比较适合于系统的设计和构造。Rumbaugh 等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用于对象模型、动态模型、功能模型和用例模型,共同完成对整个

5、系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程, 软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。Jacobson 于1994 年提出了OOSE 方法, 其最大特点是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用用用例例例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程, 包括对系统的测试和验证。OOSE 比较适合支持商商商业业业工工工程程程和和和需需需求求求分分分析析析。UML 统一了Booch、Rumbaugh 和Jacobson 的表示方法,而且对其作了进一步的发展,并

6、最终统一为大众所接受的标准建模语言。UML 是一种定义良好、文本整理:virhuiai2易于表达、功能强大且普遍适用的建模语言。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。UML2.0 一共包括十三种正式图形: 活动图(activity diagram)、类图(c1assdiagram)、通信图(communication diagram, 对应于UML1.x中的协作图)、组件图(component diagram)、复合结构(composite strucmre diagram, UML2.0 新增)、部署图(deployment)、交互概观图(inte

7、ractive Overview diagram,UML2.0新增)、对象图(object diagram)、包图(package diagram)、顺序图(sequence dia-gram)、状态机图(state machine diagram)、定时图(timing diagram,UML2.0 新增)、用例图(use case diagram) 。UML2.0 =静态图8:用例图类图包图组件图对象图部署图复合结构图(新)+动态图8:顺序图通信图(协作图)状态机图活动图定时图(新)交互概观图(新)当读者看到有十三种UML 图形时, 可能会对UML 产生恐惧的感觉, 实际上正如大家所想:很

8、少有一个软件系统在分析、设计阶段把每个细节都使用十三种图形来表现。永远记住一点: 不用把UML 表示法当成一种负担,而应该把它当成一种工具,一种用于描述、记录软件分析设计的工具。最常用的UML 图包括:用用用例例例图图图、类类类图图图、组组组件件件图图图、部部部署署署图图图、顺顺顺序序序图图图、活活活动动动图图图和和和状状状态态态机机机图图图等。1.1用用用例例例图图图用例图用于描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能, 用例图对系统的实现不作任何说明,仅仅是系统功能的描述。用例图包括用例(以一个椭圆表示,用

9、例的名称放在椭圆的中心或椭圆下面),角色(Actor,也就是与系统交互的其他实体,以一个人形符号表示), 角色和用例之间的关系(以简单的线段来表示),以及系统内用例之间的关系。用例图一般表示出用例的组织关系要么是整个系统的全部用例,要么是完成具体功能的一组用例。下图是一个简单的BBS 系统的部分用例示意:3用例图通常用于表达系统或者系统范畴的高级功能。如上图所示, 可以很容易看出该系统所提供的功能。这个系统允许注册用户登录、发帖和回复,其中发帖和回复需要依赖于登录;允许管理员删除其他人的帖子, 删帖也需要依赖于登录。用例图主要在需求分析阶段使用,用于与客户交流,保证系统需求的无二性,不要把用例

10、做得过多,过多的用例将导致难以阅读,难以理解:尽可能多地使用文字说明。1.2类类类图图图类图是最古老、功能最丰富、使用最广泛的UML 图形。类图表示系统中应该包含哪些实体, 各实体之间如何关联:换句话说, 它显示了系统的静态结构,类图可用于表示逻辑类, 逻辑类通常就是业务人员所谈及的事物种类。类在类图上使用包含三个部分的矩形来描述,最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的方法。图0211显示了类图中类的表示方法:类图除了可以表示实体的静态内部结构之外,还可以表示实体之间的相互关系, 类之间有三种基本关系: 关联(包括聚合, 组合) 泛化(与继承同一个概念) 依赖41

11、.2.1关关关联联联客观世界之间的两个实体之间总是存在千丝万缕的关系,当我们把这两个实体抽象到软件系统中时,两个类之间必然存在关联关系。关联具有一定的方向性:如果仅能从一个类单方向地访问另一个类,则被称为单向关联;如果两个类可以互相访问对象,则被双向关联。一个对象能访问关联对象的数目被称为多重性, 例如建立学生和老师之间的单向关联,则可以从学生访问老师, 但从老师不能访问学生,关联使用一条实线来表示,带箭头的关联表示单向关联。在很多时候,关联和属性很像,关联和属性的关键区别在于:类里的某个属性引用到另外一个实体时,则变成了关联。关联关系包括两种特例:聚合和组合,它们都有部分和整体的关系, 但通

12、常认为组合比聚合更加严格。当某个实体聚合成另一个实体时,该实体还可以同时是另一个实体的部分,例如学生可以既是篮球俱乐部的成员,也可以是书法俱乐部的成员: 当某个实体组成另一个实体时,该实体则不能同时是一个实体的部分。聚合使用带空心菱形框的实线表示,组合则使用带实心菱形框的实线表示。图0212显示了几个类之间的关联关系。图0212中的Student、Teacher等类都没有表现其属性、方法等特性, 因为本图的重点在于表现类之间的关系。实际的类图中可能会为Student、Teacher每个类都添加属性、方法等细节。图0212中描述Teacher和Student之间的关联关系: 它们是双向关联关系,

13、而且使用了多重性来表示Teacher 和Student 之间存在1:N的关联关系(1.*表示可以是一个到多个), 即一个Teacher 实体可以有1 个或多个关联的Student 实体;Student 和BasketBallClub 存在聚合关系, 即1 个或多个Student实体可以聚合成一个BaSketBallClub实体: 而Arm和Student之间存在组合关系,2个Arm实体组合成一个Su1dent实体。1.2.2泛泛泛化化化泛化与继承是同一个概念,都是指的子类是一种特殊的父类,类与类之间的5继承关系是非常普遍的, 继承关系使用带空心箭头的实线表示。图0213 显示了Student

14、和Person 类之间的继承关系。从图0213 中可以看出, Student 是Person 的子类, 即Student 类是一种特殊的Person 类。1.2.3依依依赖赖赖如果一个类的改动会导致另一个类的改动, 则称为两个类之间存在依赖。依赖关系使用带箭头的虚线表示,其中箭头指向被依赖的实体。依赖的常见可能原因: 改动的类将消息发给另一个类。 改动的类以另一个类作为数据部分。 改动的类以另一个类作为操作参数。通常而言, 依赖是单向的, 尤其是当数据表现和数据模型分开设计时, 则数据表现依赖于数据模型。例如JDK基础类库中的JTable和DefaultTableModel。图0214显示了它

15、们之间的依赖关系。对于图0214中表述的JTable 和DefaultTableModel 两个类, 其中DefaultTableModel是JTable 的数据模型, 当DefaultTableModel 发生改变时, JTable 将相应地发生改变。61.3组组组件件件图图图对于现代的大型应用程序而言,通常不只是单独一个类或单独一组类所能完成的,通常会由一个或多个可部署的组件组成。对Java 程序而言,可复用的组件通常打包成一个JRA、WAR等文件; 对C/C+应用而言,可复用的组件通常是一个函数库, 或者是一个DLL(win下,动态链接库) 文件。组件图提供系统的物理视图。它的用途是显示

16、系统中的软件对其他软件组件(例如, 库函数) 的依赖关系。组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。UML 使用一个特殊符号来表示组件, 如图0215 所示:从图0215中可以看出, 本系统提供了一个Stock Information(股票信息) 组件,该组件向其他组件提供股票信息,而该组件底层自依赖于Serv1et2.4 API组件、JDBC API组件和Web Container(Web容器) 组件。1.4部部部署署署图图图现代的软件工程早已超出早期的单机程序,整个软件系统可能是跨国家、跨地区的分布式软件。软件的不同部分可能需要部署在不同地方、不

17、同平台之上。部署图用于描述软件系统如何部署到硬件环境中。它的用途是显示软件系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,所以系统的生产人员就可以很好地利用这种图来安装、部署软件系统。部署图中的符号包括组件图中所使用的符号元素,另外还增加了几个符号,主要是增加了节点的概念: 节点是各种计算资源的通用名称,主要包括处理器和设备两种类型,两者的区别是处理器能够执行程序的硬件构件(如计算机主机), 而设备是一种不具备计算能力的硬件构件(如打印机), UML中使用三维立方体来7表示节点,节点的名称位于立方体的顶部。图0216显示了一个简单的部署图示意。从图

18、0216 中可以看出, 整个应用可分为5个组件:Student、Administrator、应用持久层、Student数据库和UI界面组件, 图0216的部署图准确地表现了各组件之间的依赖关系。除此之外, 部署图的重点在物理节点, 图0216反映该应用需要部署在4个物理节点上, 其中普通客户端无须部署任何组件,直接使用客户端浏览器即可, 管理者客户机上需要部署UI界面。应用服务器上需要部署Student、Administrator和应用持久层三个组件, 而数据库服务器上部署Student 数据库。1.5顺顺顺序序序图图图顺序图显示具体用例(或者是用例的一部分)的详细流程,并且显示了流程中不同对

19、象之间的调用关系, 同时还可以很详细地显示对不同对象的不同调用。顺序图描述了对象之间的交互(顺序图和通信图都被称为交互图) , 重点在于描述消息及其时间顺序。顺序图有两个维度: 垂直维度以发生的时间顺序显示消息/调用的序列; 水平维度显示消息被发送到的对象实例。顺序图的关键在于对象之间的消息,对象之间的信息传递就是所谓的消息发送,消息通常表现为对象调用另一个对象的方法或方法的返回值,发送者和接收者之间的箭头表示消息。顺序图的绘制非常简单。顺序图的顶部每个框表示每个类的实例(对象),在框中,类实例名称和类名称之间用冒号或空格来分隔, 例如, myReportGenera-tor:ReportGe

20、nerator。如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的带箭头的连线,并把消息/方法的名称放在连线上面。对于某些特别重要的消息,我们还可以绘制一条带箭头的、指向发起类实例8的虚线,将返回值标注在虚线上,绘制带返回值的信息可以使得序列图更易于阅读。图0217显示了用户登录的顺序图。当绘制顺序图时,消息可以向两个方向扩展,消息穿梭在顺序图中,通常应该把消息发送者与接收者相邻摆放, 尽量避免消息跨越多个对象。对象的激活期不是其存在的时间,而是它占据CPU 的执行时期,绘制顺序图时, 激活期要精确。阅读顺序图也非常简单,通常我们从最上面的消息开始(也就是时间上最先开始的

21、消息), 然后沿消息方向依次阅读。大多数情况,交互图中的参与者是对象,所以也可以直接在方框中放置对象名,UML1.x 要求对象名有下划线,2.0 不再需要。绘制顺序图主要帮助开发者对某个用例的内部执行清晰化,当需要考察某个用例内部若干对象行为时,应使用顺序图, 顺序图擅长表现对象之间的协作顺序,不擅长表现行为的精确定义。1.6活活活动动动图图图活动图和状态机图都被称为演化图,其区别和联系如下: 活动图:用于描述用例内部的活动或方法的流程,如果除去活动图中的并行活动描述以后,它就变成流程图。 状态机图:描述某一对象生命周期中需要关注的不同状态,并会详细描述刺激对象状态改变的事件, 以及对象状态改

22、变时所采取的动作。演化图的五要素如下:91. 状态: 状态是对象响应事件前后的不同面貌,状态是某个时间段对象所保持的稳定态, 目前的软件计算都是基于稳定态的,对象的稳定态是对象的固有特征,一个对象的状态一般是有限的。有限状态的对象是容易计算的,对象的状态越多,对象的状态迁移越复杂, 对象状态可以想象成对象演化过程中的快照。2. 事件: 来自对象外界的刺激, 通常的形式是消息的传递, 只是相对对象而言发生了事件。事件是对象状态发生改变的原动力。3. 动作: 动作是对象针对所发生事件所做的处理, 实际上通常表现为某个方法被执行。4. 活动: 活动是动作激发的后续系统行为。5. 条件: 条件指事件发

23、生所需要具备的条件。对于激发对象状态改变的事件, 通常有两种类型: 内部事件: 从系统内部激发的事件, 一个对象的方法(动作)调用, (通过事件激活) 另一个对象方法(动作) 。 外部事件: 从系统边界外激发的事件, 例如用户的鼠标、键盘动作。活动图主要用于描述过程原理、业务逻辑以及工作流的技术, 很多情况下,活动图与传统的流程图非常相似, 区别是活动图支持并发。活动图非常类似于传统的流程图, 它也使用圆角矩形表示活动, 使用带箭头的实线表示事件。如果将活动图的分支分开, 每支就是一个传统的流程图, 每个活动依次向下,遇到条件分支使用菱形框来表示条件。与传统的流程图不同的是, 活动图可以使用并

24、行分支分出多条并行活动。10绘制活动图时以活动为中心,整个活动图只有一个开始活动,可以有多个结束活动,活动图需要将并行活动和串行活动分离,遇到分支和循环时最好像传统流程图将分支、循环条件明确表示。活动图最大优点在于支持并行行为, 并行对于工作流建模和过程建模非常重要。因为有了并行, 因此需要进行同步, 同步通过汇合来指明。1.7状状状态态态机机机图图图状态机图表示某个类所处的不同状态和该类的状态转换信息。实际上我们很少绘制状态机图,我们只对感兴趣的类绘制状态机图。也就是说, 在系统活动期间具有三个或更多潜在状态的类才需要考虑使用状态机图迸行描述。状态机图的符号集包括5个基本元素: 初始状态,

25、它使用实心圆来绘制; 状态之间的转换, 它使用具有带箭头的线段来绘制; 状态, 它使用圆角矩形来绘制; 判断点, 它使用空心圆来绘制; 一个或者多个终止点, 它们使用内部包含实心圆的圆来绘制。要绘制状态机图, 首先绘制起点和一条指向该类的初始状态的转换线段。状态本身可以在图上的任意位置绘制, 然后只需使用状态转换线条将它们连接起来。图0219显示了Hibemate持久化对象的状态迁移示意。11图0219 描绘了Hibema持久化对象具有三个状态:瞬态、持久化和脱管, 当程序通过new直接创建一个对象时, 该对象处于瞬态; 对一个瞬态的对象执行save、saveorUpdate 方法后该对象将会变成持久化状态; 对一个持久化状态的对象执行de1ete 方法后该对象将变成瞬态; 持久化状态和脱管状态也可以相互转换。绘制状态机图时应该保证对象只有一个初始状态,可以有多个终结状态。状态要表示对象的关键快照,有重要的实际意义, 无关紧要的状态则无须考虑, 绘制状态机图时事件和方法要明确。状态机图擅长表现单个对象的跨用例行为,对于多个对象协作的行为应该考虑采用顺序图,不要对系统的每个对象都画状态机图,只对真正需要关心各个状态的对象才画状态机图。12

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号