当前位置:首页 >> 数学 >>

UML中各种图的画法(全)


UML 中各种图的画法(全)
一、UML 中基本的图范畴: 在 UML 2 中有二种基本的图范畴:结构图和行为图。每个 UML 图都属于这二个 图范畴。结构图的目的是显示建模系统的静态结构。它们包括类,组件和(或) 对象图。另一方面,行为图显示系统中的对象的动态行为,包括如对象的方法, 协作和活动之类的内容。行为图的实例是活动图,用例图和序列图。 二、UML 中的类图: 1.类图的表示: 类的 UML 表示是一个长方形,垂直地分为三个区,如图 1 所示。顶部区域显示 类的名字。中间的区域列出类的属性。底部的区域列出类的操作。在一个类图上 画一个类元素时,你必须要有顶端的区域,下面的二个区域是可 选择的(当图 描述仅仅用于显示分类器间关系的高层细节时,下面的两个区域是不必要的)。

描述: 顶部区域显示类的名字。中间的区域列出类的属性。底部的区域列出类的操作。 当在一个类图上画一个类元素时,你必须要有顶端的区域,下面的二个区域是可 选择的 (当图描述仅仅用于显示分类器间关系的高层细节时,下面的两个区域是 不必要的)。 ·类名:如果是抽象类,则采用斜体 ·类属性列表:name : attribute type 常见的表达形式 如 flightNumber : Integer,这是最

value



name : attribute type = default balance : Dollars = 0,这是带有默认值的表达形式

·类方法列表:name(parameter list) : type of value returned

1

注意: 在业务类图中,属性类型通常与单位相符,这对于图的可能读者是有意义的(例 如,分钟,美元,等等)。然而,用于生成代码的类图,要求类的属性类型必须 限制在由程序语言提供的类型之中, 或包含于在系统中实现的、 模型的类型之中。 2.继承的表示: 为了在一个类图上建模继承,从子类(要继承行为的类)拉出一条闭合的,单键 头(或三角形)的实线指向超类。

类名 BankAccount 和 withdrawal 操作使用斜体。这表示,BankAccount 类是一 个抽象类,而 withdrawal 方法是抽象的操作。换句话说,BankAccount 类使用 withdrawal 规定抽象操作,并且 CheckingAccount 和 SavingsAccount 两个子 类都分别地执行它们各自版本的操作。 3.接口的表示: 一个类和一个接口不同: 一个类可以有它形态的真实实例,然而一个接口必须至 少有一个类来实现它。在 UML 2 中,一个接口被认为是类建模元素的特殊化。 因此,接口就象类那样绘制,但是长方形的顶部区域也有文本“interface”。

2

注意:继承用带箭头或三角形的实线表示,实现用带箭头或三角形的虚线表示 4.可见性的表示: 在面向对象的设计中, 存在属性及操作可见性的记号。UML 识别四种类型的可见 性:public,protected,private 及 package。 UML 规范并不要求属性及操作可见性必须显示在类图上, 但是它要求为每个属性 及操作定义可见性。 为了在类图上显示可见性,放置可见性标志于属性或操作的 名字之 前。 虽然 UML 指定四种可见性类型,但是实际的编程语言可能增加额外 的可见性, 或不支持 UML 定义的可见性。表 4 显示了 UML 支持的可见性类型的 不同标志。 UML 支持的可见性类型的标志 标志 可见性类型 + # ~ Public proteted private package

3

5.关联的表示: ·双向(标准)的关联 关联是两个类间的联接。关联总是被假定是双向的;这意味着,两个类彼此知道 它们间的联系,除非你限定一些其它类型的关联。

一个双向关联用两个类间的实线表示。在线的任一端,你放置一个角色名和多重 值。图 6 显示 Flight 与一个特定的 Plane 相关联,而且 Flight 类知道这个关 联。 因为角色名以 Plane 类表示,所以 Plane 承担关联中的 “assignedPlane” 角色。紧接于 Plane 类后面的多重值描述 0...1 表示,当一个 Flight 实体存在 时,可以有一个或没有 Plane 与 之关联(也就是,Plane 可能还没有被分配)。 图 6 也显示 Plane 知道它与 Flight 类的关联。在这个关联中,Flight 承担 “assignedFlights”角色;图 6 的图告诉我们,Plane 实体可以不与 flight 关联(例如,它是一架全新的飞机)或与没有上限的 flight(例如,一架已经 服役 5 年的飞机)关联。 注意:关联的一方关联对象位于直线的上端,关联数目位于同侧的直线下端, 另一方则相反

多重值和它们的表示 可能的多重值描 述

4

表示 0..1 1 0..* * 1..* 3 0..5 5..15

含义 0 个或 1 个 只能 1 个 0 个或多个 0 个或多个 1 个或多个 只能 3 个 0到5个 5 到 15 个

·单向关联 在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。

一个单向的关联, 表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角 形,用于标志继承)的实线。如同标准关联,单向关联包括一个角色名和一个多 重值描述, 但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和 多重值描述。 简单的说就是 OverdrawAccountReport 中包含了 BankAccount 属性,而 BankAccount 中不需要包含 OverdrawnAccountsReport 对象

6.聚合的表示: 聚合是一种特别类型的关联, 用于描述“总体到局部”的关系。在基本的聚合关 系中, 部分类 的生命周期独立于 整体类 的生命周期。 举例来说,我们可以想象,车 是一个整体实体,而 车轮 轮胎是整辆车的一部 分。轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。在这个实例
5

中,Wheel 类实例清楚地独立于 Car 类实例而存在。然 而,有些情况下, 部分 类的生命周期并 不 独立于 整体 类的生命周期 -- 这称为合成聚合。 举例来说, 考虑公司与部门的关系。 公司和部门 都建模成类,在公司存在之前,部门不能 存在。这里 Department 类的实例依赖于 Company 类的实例而存在。 让我们更进一步探讨基本聚合和组合聚合。 注意: 聚合与普通的关联的区别在于: 普通的关联可能只是一个简单的“包含、 引用”关系,关联和被关联类之间在逻辑概念上不一定有紧密的联系,而聚合 则不同,它表示的是一种内在关系紧密,相互依存,相互包含的概念,其中的 一部分是构成另外一部分的不可或缺的成分。 ·基本聚合 有聚合关系的关联指出,某个类是另外某个类的一部分。在一个聚合关系中,子 类实例可以比父类存在更长的时间。为了表现一个聚合关系,你画一条从父类到 部分类的实线,并在父类的关联末端画一个未填充棱形。

图中清楚的表明了类 Car 对象包含了另一类 Wheel 的 4 个实例, 这两者在概念上 是密不可分的,其中的一个类是另一个类的构成成分。菱形表示“包含”,箭头 表示被包含的对象,数字 4 表示包含的数目。 ·组合聚合 组合聚合关系是聚合关系的另一种形式, 但是子类实例的生命周期依赖于父类实 例的生命周期。

注意:组合关系如聚合关系一样绘制,不过这次菱形是被填充的。 7.反射关联的表示: 类也可以使用反射关联与它本身相关联。起先,这可能没有意义,但是记住,类 是抽象的。当一个类关联到它本身时,这并不意味着类的实例与它本身相关,而 是类的一个实例与类的另一个实例相关。

6

图描绘的关系说明一个 Employee 实例可能是另外一个 Employee 实例的经理。 然 而, 因为“manages”的关系角色有 0..*的多重性描述;一个雇员可能不受任何 其他雇员管理。

三、UML 中的对象图: 实例的记号和类一样, 但是取代顶端区域中仅有的类名, 它的名字是经过拼接的: Instance Name : Class Name 如 Donald : Person

因为显示实例的目的是显示值得注意的或相关的信息, 没必要在你的模型中包含 整个实体属性及操作。相反地,仅仅显示感兴趣的属性及其值是完全恰当的。

UML 2 也允许在实体层的关系/关联建模。绘制关联与一般的类关系的规则一样, 除了在建模关联时有一个附加的要求。附加的限制是,关联关系必须与类图的关 系相一致,而且关联的角色名字也必须与类图相一致。

四、UML 中的角色图: 建模类的实例有时比期望的更为详细。有时,你可能仅仅想要在一个较多的一般 层次做类关系的模型。在这种情况下,你应该使用 角色 记号。角色记号类似 于实例记号。为了建立类的角色模型,你画一个方格,并在内部放置类的角色名 及类名,作为实体记号,但是在这情况你不能加下划线。

7

注意:角色图和对象图的一个明显区别就是:对象图每个对象名称下面都加了 下划线,而角色图没有

以下是:序列图
序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。很象类 图, 开发者一般认为序列图只对他们有意义。 然而, 一个组织的业务人员会发 现, 序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。除记 录组织的当前事件外, 一个业务级的序列图能被当作一个需求文件使用,为实现 一个未来系统传递需求。 在项目的需求阶段,分析师能通过提供一个更加正式层 次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多 的序 列图。 组织的技术人员能发现, 序列图在记录一个未来系统的行为应该如何表现中,非 常有用。在设计阶段,架构师和开发者能使用图,挖掘出系统对象间的交互,这 样充实整个系统设计。 序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次 的精细表达。 用例常常被细化为一个或者更多的序列图。 序列图除了在设计新 系 统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现 在如何交互。当把这个系统移交给另一个人或组织时,这个文档很有用。 Java 应用程序由许多类所构成,是 Java 实现面向对象应用程序的核心。类图主 要描述 Java 应用程序中各种类之间的相互静态关系,如类的继承、 抽象、接口 以及各种关联。要利用 UML 设计 Java 应用程序,仅仅使用类图来描述这些静态 关系, 利用可视化工具, 要实现 Java 应用程序的代码自动生成, 是远远不够的。 我们还必须描述各种类相互之间的协作关系、动态关系,如时间序列上的交互行 为。其中 UML 序列图就是用来描述类与类之间的方法调用过程(或 消息发送) 是如何实现的。

一、UML 中的新元素-框架: 在 UML 2 中,框架元件用于作为许多其他的图元件的一个基础,但是大多数人 第一次接触框架元件的情况, 是作为图的图形化边界。 当为图提供图形化边界时, 一个框架元件为图的标签提供一致的位置。在 UML 图中框架元件是可选择的。

8

除了提供一个图形化边框之外, 用于图中的框架元件也有描述交互的重要的功能, 例如序列图。在序列图上一个序列接收和发送消息(又称交互),能通过连接消 息和框架元件边界,建立模型(如图 2 所见到)。

对于序列图,图的标签由文字“sd”开始。当使用一个框架元件封闭一个图时, 图的标签需要按照以下的格式:图类型 图名称。 UML 规范给图类型提供特定的文本值。(举例来说,sd 代表序列图,activity 代表活动图,use case 代表用例图)。

二、UML 中的序列图:
9

序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。 在项目的需求阶段, 分析师能通过提供一个更加正式层次的表达,把用例带入下 一层次。那种情况下,用例常常被细化为一个或者更多的序列图。 序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的 精细表达。 用例常常被细化为一个或者更多的序列图。序列图除了在设计新系统 方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在 如何交互。 序 列图的主要目的是定义事件序列, 产生一些希望的输出。 重点不是消息本身, 而是消息产生的顺序; 不过, 大多数序列图会表示一个系统的对象之间传递的什 么消 息,以及它们发生的顺序。图按照水平和垂直的维度传递信息:垂直维度 从上而下表示消息/调用发生的时间序列,而且水平维度从左到右表示消息发送 到的对象实 例。 1.生命线: 生命线画作一个方格,一条虚线从上而下,通过底部边界的中心(图 3)。生命 线名字放置在方格里。

UML 的生命线命名标准按照如下格式:

实体名:类名

生命线名称带下划线。 当使用下划线时,意味着序列图中的生命线代表一个类的 特定实体,不是特定种类的实体(例如,角色)。序列图的实例名称有下划线, 而角色名称没有。 一个生命线能用来表现一个匿名的或未命名的实体。当在一个序列图上,为一个 未命名的实例建模时, 生命线的名字采用和一个命名实例相同的模式;但是生命 线名字的位置留下空白,而不是提供一个例图名字。

10

2.消息体: 为 了显示一个对象(例如,生命线)传递一个消息给另外一个对象,你画一条 线指向接收对象,包括一个实心箭头(如果是一个同步调用操作)或一个棍形箭 头(如果 是一个异步讯号)。消息/方法名字放置在带箭头的线上面。正在被传 递给接收对象的消息,表示接收对象的类实现的一个操作/方法。

返回消息是可选择的; 一个返回消息画作一个带开放箭头的虚线,向后指向来源 的生命线,在这条虚线上面,你放置操作的返回值。为了要画一个调用本身的对 象,如你平时所作的,画一条消息,但是不是连接它到另外的一个对象,而是你 把消息连接回对象本身。

三、UML 中的约束:

11

约束的符号很简单;格式是: 【Boolean Test】 四、UML 中的新元素-组合碎片(变体方案、选择项、循环): 一个组合碎片用来把一套消息组合在一起,在一个序列图中显示条件分支。 1.变体: 变体用来指明在两个或更多的消息序列之间的、互斥的选择。一个变体的组合碎 片元件使用框架来画。单词“alt”放置在框架的 namebox 里。然后较大的长方 形分为 UML 2 所称的操作元。 操作元被虚线分开。每个操作元有一个约束进行 测试,而这个约束被放置在生命线顶端的操作元的左上部。 如果操作元的约束 等于“true”,然后那个操作元是要执行的操作元。

12

图 8 作为一个变体的组合碎片如何阅读的例子,显示序列从顶部开始,即 bank 对象获取支票金额和帐户结余。此时,序列图中的变体组合碎片接管。因为约束 “[balance >= amount]”,如果余额超过或等于金额,然后顺序进行 bank 对象 传递 addDebitTransaction 和 storePhotoOfCheck 消息给 account 对象。 然而, 如果余额不是超过或等于金额,然后顺序的过程就是 bank 传递
13

addInsuffientFundFee 和 noteReturnedCheck 消息给 account 对象, returnCheck 消息给它自身。 因为“else”约束, 当余额不大于或者等于金额时, 第二个序列被调用。在变体的组合碎片中,不需要“else”约束;而如果一个操 作元, 在它上面没有一个明确的约束,那么将假定“else”约束。 2.选择项: 一个选择项用来为简单的“if then”表达式建模。(例如,如果架上的圈饼少 于五个,那么另外做两打圈饼)。 选 择项组合碎片符号与变体组合碎片类似,除了它只有一个操作元并且永不能 有“else”约束以外(它就是如此,没有理由)。要画选择项组合,你画一个框 架。 文字“opt”是被放置在框架的 namebox 里的文本,在框架的内容区,选 择项的约束被放置在生命线顶端上的左上角。 然后选择项的消息序列被放在框 架的内容区的其余位置内。

注意:变体用于为 if then else 建模,选择项用于为 if then 建模,因为只有 一个分支,所以不能出现[else]
14

3.循环: 循环组合碎片表面非常类似选择项组合碎片。你画一个框架,在框架的 namebox 中放置文本“loop”。在框架的内容区中,一个生命线的顶部,循环约束被 放 置在左上角。 然后循环的消息序列被放在框架内容区的其余部分中。在一个循环 中,除了标准的布尔测试外,一个约束能测试二个特定的条件式。特定的约束条 件 式是写作“minint = [the number]”(例如,“minint = 1”)的最小循环 次数,或写作“maxint = [the number]”(例如,“maxint = 5”)的最大循 环次数。通过最小循环检验,循环必须运行至少指定次数,而循环执行次数不能 达到约束指定的最大循环次数。

以下是:用例图:
用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即 用 户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块, 所以是设计系统分析阶段的起点, 设计人员根据客户的需求来创建和解释用例图, 用来描述软件应具备哪些功能模块以及这些模块之间的调用关系, 用例图包含了 用例和参与者, 用例之间用关联来连接以求把系统的整个结构和功能反映给非技 术人 员(通常是软件的用户),对应的是软件的结构和功能分解。

用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的
15

一段完整的服务。从原则上来讲,用例之间都是独立、并列的,它们之间并不存 在着包含从属关系。 但是为了体现一些用例之间的业务关系,提高可维护性和一 致性, 用例之间可以抽象出包含(include)、 扩展(extend)和泛 (generalization) 几种关系。 共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然 后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

1、包含(include)
包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动 作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的 关 系, 以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖 包含用例执行的结果,但是双方都不能访问对方的属性。 包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用 例的事件流过于复杂时, 为了简化用例的描述,我们也可以把某一段事件流抽象 成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来 包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算 法封装成一个子过程,然后再从主程序中调用这一子过程。 例如: 业务中, 总是存在着维护某某信息的功能, 如果将它作为一个用例, 那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、 编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。

2、扩展(extend)
扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用 例加以封装, 再让它从基用例中声明的扩展点 (Extension Point) 上进行扩展,
16

从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展 用例可以访问基用例的属性,因此它能根据基用例中扩展 点的当前状态来判断 是否执行自己。但是扩展用例对基用例不可见。
对于一个扩展用例,可以在基用例上有几个扩展点。 例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查 询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新 行为。因此可以采用扩展关系来描述:

3、泛化(generalization)

泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例 的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。 父用例通常是抽象的。 在实际应用中很少使用泛化关系,子用例中的特殊行为都 可以作为父用例中的备选流存在。
例如,业务中可能存在许多需要部门领导审批的事情,但是领导审批的流程是很相似的,这 时可以做成泛化关系表示:

17

案例
上面是我参考的一篇文章, 觉得将三种关系的区别讲得很清晰,在此基础上结合 自己的系统,对项目(在线购物系统)的用例做了整体的描绘。 ************************************************************** *** (1)系统整体用例图

18

(商品用例图)

(购买信息用例)
19

(用户资料用例)

20

按照先整体用例,后子系统用例来进行描绘的,欢迎大家提出好的建议!

转:UML 中扩展和泛化的区别
泛化表示类似于 OO 术语“继承”或“多态”。UML 中的 Use Case 泛化过程是将不同 Use Case 之间的可合并部分抽象成独立的父 Use Case,并将不可合并部分单独成各自的子 Use Case; 包含以及扩展过程与泛化过程类似,但三者对用例关系的优化侧重点是不同的。如下: ●泛化侧重表示子用例间的互斥性; ●包含侧重表示被包含用例对 Actor 提供服务的间接性; ●扩展侧重表示扩展用例的触发不定性;详述如下:

既然用例是系统提供服务的 UML 表述,那么服务这个过程在所 有用例场景中是必然发生的,但发生按照发生条件可分为如下两种情况: ⒈无条件发生:肯定发生的; ⒉有条件发生:未必发生,发生与否取决于系统状态; 因此,针对用例的三种关系结合系统状态考虑,泛化与包含 用例属于无条件发生的用例,而扩展属于有条件发生的用例。进一步,用例的存 在是为 Actor 提供服 务,但用例提供服务的方式可分为间接和直接两种,依据 于此, 泛化中的子用例提供的是直接服务,而包含中的被包含用例提供的是间接 服务。同样,扩展用例提供 的也是直接服务,但扩展用例的发生是有条件的。 另外一点需要提及的是:泛化中的子用例和扩展中的扩展用 例均可以作为基本用例事件的备选择流而存在。

以下是:活动图
UML 活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的 逻辑。在很多方面,活动图是结构化开发中流程图和数据流程图 (DFD) 的面向 对象等同体,要创建一个 UML 活动图,您需要反复执行下列步骤。 第一步, 定义活动图的范围首先应该定义您要对什么建模。单个用户案例力?一 个用户案例的一部分?一个包含多个用户案例的商务流程?一个类的单个方法? 一旦 您定义了您所作图的范围,您应该在其顶部,用一个标注添加标签,指明 该图的标题和唯一的标示符。您有可能也想要包括该图的时间甚至作者名。 第二步,添加起始和结束点每个活动图有一个起始点和结束点,因此 您也要马上添加它们。 在 《UML 精粹》 (UML Distilled) (参见参考资料), Fowler 和 Scott 认为结束点是可选的。有时候一个活动只是一个简单的结束,如果是 这种情况,指明其唯一的转变是到一个结束点也是无害的。这样,当其他人阅读
21

您的图时,他或 她知道您已经考虑了如何退出这些活动。 第三步,添加活动如果您正对一个用户案例建模,对每个角色(actor)所发出的 主要步骤引入一个活动(该活动可能包括起始步骤, 加上对起始步骤系统响应 的 任何步骤)。如果您正对一个高层的商务流程建模,对每个主要流程引入一个活 动,通常为一个用户案例或用户案例包。最后,如果您正对一个方法建模,那么 对 此引入一个活动是很常见的。 第四步, 添加活动间的转变我的风格总是应该退出一个活动,即使它是转变到一 个结束点。一旦一个活动有多个转变时,您必需对每个转变加以相应标示。 第五步,添加决策点有时候,您所建模的逻辑需要做出一个决策。有可能是需要 检查某些事务或比较某些事务。要注意的是,使用决策点是可选的。 第六步, 找出可并行活动之处当两个活动间没有直接的联系,而且它们都必需在 第三个活动开始前结束,那它们是可以并行运行的。

下面的活动图描述了大学新生第一次将如何办理入学的商业逻辑。
? ?

? ? ?

?

实心圆表示活动图的起点,实际上是一个占位符,带边框的实心圆表示终 点。 圆角矩形表示执行的过程或活动。在该图中,虽然您会注意到“登记研习 班”用例将多次调用“登记研习班”活动, 但这些活动却相当紧密地映射 到用例。活动可以细致得多,特别在选择记录方法逻辑,而不是高级商业 过程时。 菱形表示判定点, 虽然在此示例中判定点只有两种可能结果;但即使有更 多可能结果,它也同样容易。 箭头表示活动之间的转换,各种活动之间的流动次序。 箭头上的文字表示继续转换所必须满足的条件, 总是使用格式“[条件]” 来描述。我猜想,在 UML 的将来版本中,我们将会看到使用 UML 约 束表示法(如“{condition}”)记录的条件。 粗线条表示可能会并行进行的过程的开始和结束;在大学里成功入学后, 必须参加指定的概况介绍, 还要至少登记一个研习班并交付一部分的学费。

退出活动可能有几种方法, 如您看到的“填写入学表”活动的那样。如果正确填 写了表格,那么可以继续进行大学的入学手续。但是,如果表格不正确,那么必 须获得帮助(可能从注册员获得帮助)以正确填写它们。

22

图 1. 第一次入学的

UML

活动图

这个活动图非常有趣, 因为它省掉了图 2 中标识的几个用例的逻辑。用例模型 没有很好地表达处理的顺序是件好事。例如,虽然图 2 中显示的用例图为您清 楚地描述了该系统所执行的功能类型, 但是它没有明确地表达这些用例可能发生 的顺序。但是,图 1 的活动图做到了这一点。总之,不同模型的优缺点各有不 同。 中标识的几个用例的逻辑。 用例模型没有很好地表达处理的顺序是件好事。 例如, 虽然 中显示的用例图为您清楚地描述了该系统所执行的功能类型,但是它没有 明确地表达这些用例可能发生的顺序。但是, 的活动图做到了这一点。总之, 不同模型的优缺点各有不同。 图 2. 大学的用例图

泳道 将模型中的活动按照职责组织起来通常很有用。例如,可以将一个商业组织处理 的所有活动组织起来。 这种分配可以通过将活动组织成用线分开的不同区域来表 示。由于它们的外观的缘故,这些区域被称作泳道。 图 7–2 表示了泳道。

23

24

图 7–2 泳道和对象流 · 2. 对象流 活动图能表示对象的值流和控制流。对象流状态表示活动中输入或输出的对象。 对输出值而言,虚线箭头从活动指向对象流状态。对输入值而言,虚线箭头从对 象流状态指向活动。 如果活动有多个输出值或后继控制流,那么箭头背向分叉符 号。同样,多输入箭头指向结合符号。 图 7–2 表示一个活动和对象流状态都被分配到泳道中的活动图。 · 活动和其他图 活动图没有表示出计算处理过程中的全部细节内容。 它们表示了活动进行的流程 但没表示出执行活动的对象。活动图是设计工作的起点。为了完成设计,每个活 动必须扩展细分成一个或多个操作,每个操作被指定到具体类。这种分配的结果 引出了用于实现活动图的对合协的设计工作。 以下是数据流图 DFD: 研究了一下 DFD: 结构化分析是面向数据流开展需求分析工作的一种有效方法。一般采用 自顶向下, 逐层分解的演义分析法来定义系统的需求,即先把分析对象抽象成一 个系统,然后 自顶向下的逐层分解,将复杂的系统分解成简单的、能够清楚地 被理解和表达的若干个子系统,如图 1(逐层分解的数据流程图)所示。这样就 可以分别理解系统的 每个细节、前后顺序和相互关系,找出各部分之间的数据 接口。在结构化分析方法所采用的工具有数据流程图(DFD)、数据字典(DD)、 结构化语言、判定 树、判定表等。 结构化分析的核心是数据流程图, 数据流程图是以图形的方式表达在问题中信息 的变换和传递过程。 它把系统看成是由数据流联系的各种概念的组合,用分解及 抽象手段来控制需求分析的复杂性, 采用分层的数据流程图来表示一个复杂的系 统。 数据流图:简称 DFD,就是采用图形方式来表达系统的逻辑功能、数 据在系统内部的逻辑流向和逻辑变换过程, 是结构化系统分析方法的主要表达工 具及用于表示软件模型的一种图示方法。 基于计算机的信息处理系统由数据流和一系列的加工构成, 这些加工将输入数据 流加工为输出数据流 数据流图描述数据流和加工 数据流图用图形符号表示数据流、加工、数据源及外部实体
25

数据流图具有层次结构,支持问题分解、逐步求精的分析方法 它是数据驱动的数据流图既可以表示基于计算机的系统,也可以表示软件 数 据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图 形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步 分解的方 法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了 功能建模的机制, 也提供了信息流建模的机制,从而可以建立起系统或软件的功 能模型。 数据流图的基本符号的意思: 1.矩形表示数据的外部实体; 2.圆角的矩形表示变换数据的处理逻辑; 3.少右面的边矩形表示数据的存储; 4.箭头表示数据流。 数据流程图中有以下几种主要元素: →:数据流。数据流是数据在系统内传播的路径,因此由一组成分固定的数据组 成。 如订票单由旅客姓名、 年龄、 单位、 身份证号、 日期、 目的地等数据项组成。 由于数据流是流动中的数据, 所以必须有流向,除了与数据存储之间的数据流不 用命名外,数据流应该用名词或名词短语命名。

26


相关文章:
UML中各种图的画法(全).doc
UML 中各种图的画法(全) 一、UML 中基本的图范畴: 在 UML 2 中有
UML的9种图例的定义、用途、画法总结.doc
UML的9种图例的定义、用途、画法总结_计算机软件及应用_IT/计算机_专业资料。UML 的 9 种图例的总结 一、 用例图 1、 定义 用例定义: 用例是对包括变量在内...
UML类图画法及其之间的几种关系.doc
UML 类图画法及其之间的几种关系最近做重构项目,需要画一下类图,发现类图的画法...同其他的图一样,类图也可以包含注解和限制。 类图中也可以包含包和子系统,这...
UML顺序图画法.ppt
顺序图| 画法| UML顺序图画法_计算机软件及应用_IT/计算机_专业资料。UML顺序图...2.消息 消息用来说明顺序图中不同活动对象之间的通信。它可在一 个对象需要...
UML用例图的画法.doc
UML用例图的画法 - 一.UML 简介 UML(统一建模语言,Unified
UML顺序图活动图协作图画法和基础.ppt
UML顺序图活动图协作图画法和基础 - 第 十七 讲 ?顺序图 ?活动图 ?协作图 河南经贸职业学院 信息管理系 顺序图(时序图) 顺序图(时序图) 顺序图(sequence ...
UML状态图的画法.ppt
UML状态图的画法_计算机软件及应用_IT/计算机_专业...[全部商品 检查完且全 部商品都有] 办货处理 do...砌筑基础 ? 在并发状态图中一个子状态图中 的子...
UML笔记_图文.doc
UML笔记 - uml中各种符号的表示、含义,各种uml图的画法、含义... UML笔记_计算机软件及应用_IT/计算机_专业资料。uml中各种符号的表示、含义,各种uml图的画法、含义...
UML状态图的画法.ppt
UML状态图的画法_工学_高等教育_教育专区。UML中状态图的画法 动态模型vs
UML基础教程(很全面的教材)_图文.ppt
UML基础教程(很全面的教材) - UML 基础教程 UML -1- 目录 1. 前言 1.1前言 1.2UML概述 1.3UML事物 1.4UML关系 1.5各UML图及特征 1.6...
UML画图要点.ppt
扩展用例根据基用例中扩 展点的当前状态来判断是否执行自己。 UseUse-case ...uml画图,图书管理系统 20页 2下载券 UML各种图画法总结 19页 1下载券 ...
UML状态图活动图画法和基础.ppt
UML状态图活动图画法和基础 - 复习:顺序图、协作图 顺序图(sequence
UML基本概念教程.doc
(Relationships) 3、图(Diagrams) 事物是 UML 中...在 UML 中活动类的画法和类相同,只是边 框用粗...uml论文 图全 14页 1下载券 UML模型的基本概念 ...
UML基础教程(很全面的教材)_图文.ppt
前言 1.1前言 1.2UML概述 1.3UML事物 1.4UML关系 1.5各UML图及特征 1.6各UML图的关系 1.7UML语法 1.8习题 2. 用例图 2.1用例图概要 2.2用例图中的...
UML序列图详解文档.doc
图 1:空的 UML 2 框架元件 除了提供一个图形化边框之外,用于图中的框架元件...一个 异步消息和一个同步的画法类似,但是消息画的线带一个棍形矛头,如图 6 ...
UML中的几种其他图.pdf
UML中的几种其他图_工学_高等教育_教育专区。第5章 建立辅助模型 5.1 顺
UML分析类、状态图基础和画法.ppt
控制类的UML UML表示 UML 课堂作业 图中的实体类为: 图中的控制类为: 图中的边界类为: 内容提纲 1、面向对象分析概念 ? ? 分析类:边界类、控制类、实体类...
UML用例图.doc
UML用例图 - 用例图: 用例图: 描绘不同系统用户群是如何同这个系统交互。 用例定义和描述用户从系统中获取价值的各种 方法。 创建一个用例模型需要三个步骤: 1...
UML画图题.doc
各部门领导和超级管理员,都 可以设置工作人员在招生工作中的角色。工作人员可以...UML各种图画法总结 19页 1下载券 UML类绘图介绍 16页 免费 ROSE画图--UML...
教你轻松画出专业的标准流程图.doc
流程图模板: 在亿图流程图制作软件中,将整个笼统的...企业组织 架构图,甚至是软件开发会接触到的 UML、...业务流程图的画法!教你快... 暂无评价 8页 免费...
更多相关标签: