电子商务系统设计(第四章)
信息亭
系统 Box Office Buy tickets
参与者
<<inclห้องสมุดไป่ตู้de>> 关系
Buy Subscription
<<include>>
Clerk
Make charges 用例
Survey sales
信用卡服务商 监督员
2 类图
类是具有相同特征的对象的集合。对象是类的一个实例,是类的 一个具体表现。打个比方:人是类,而张三就是对象。一个类可 以有很多个实例(对象)。
上的动作。总共有两种主要的动作事物:
第一种是交互(interaction),它是由一组对象之间在特定上下文中,为达到 特定的目的而进行的一系列消息交换而组成的动作。
第二种是状态机(state machine),状态机由一系列对象的状态组成。
分组事物是UML模型中组织的部分,可以把它们看成是个盒子, 模型可以在其中被分解。总共只有一种分组事物,称为包 (package)。
第一和第二步建立的模型都是静态的,称之为静态建模,第三步称之为活动 建模。
一、静态视图
1 用例图
假设(1),一个仓库管理系统:仓库管理员需要进行物品 进仓和物品出仓的操作,物品出仓的前提是相关物品的库 存必须大于一定额度。
(1) 组成
用例图表示处于同一个系统中参与者和用例之间的关系。是一组动作序 列(包括它的变衍生物)的描述,系统执行该动作序列来为参与者产生一 个可观测的结果值。
接口:是为类或组件提供特定服务的一组操作的集合。接口描述了类或 组件的对外可见的动作。在UML中接口用圆表示,在图形旁边还要标注接 口的名字。
协作:定义了交互操作。在UML中,用虚线构成的椭圆表示,椭圆中要 标注协作的名字。
用例:描述系统对一个特定角色执行的一系列动作。在UML中,用例用 标注了用例名称的实线椭圆表示。
UML中依赖表示为:虚线加箭头,
它用来描述需求的,描述待开发系统的功能需求,本质上是用来描述用 户和系统间一次交互。它是需求分析阶段(MSF中的构想阶段)的主要任务 之一。
用例图分为两个部分:用例(Use Case)和执行者(Actor)
用例(Use Case ):UML中表示为一个椭圆。它有以下特点: 1.用例捕获某些用户可见的需求,实现一个具体的用户目标。 2.用例由执行者激活,并提供确切的值给执行者。 3.用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。
聚合:一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关
系。比如计算跟打印机的关系,一台完整的计算机可以包括打印机,但是 没有打印机,计算机也可以运行。
组合:另一种特殊形式的关联。组合也表示类之间的关系是整体与部分
的关系,但整体拥有各部分,部分与整体共存,如部分不存在了,整体也 就不完整。例如计算机跟CPU的关系,如果没有了CPU,那么计算机就没 有办法运行。
d.导航性 用关系端部的箭头显示,表明可以从源类的任何对象到目标类的一个或多个 对象(根据多重性确定的)遍历。
泛化:
一个元素是另一个元素的特例,而且它可以取代更一般的元素 泛化是一般元素和特殊元素之间的关系,是更概括的描述和更具体的种类
间的关系,适用于继承。在UML的表示泛化的图形是:
实现:
说明和实现间的关系。在UML中表示实现的图形是:
活动类:是类对象有一个或多个进程或线程的类,在UML中,活动类和 类的表示法相同,只是边框用粗线条。
组件:是实现了一个接口集合的物理上可替换的系统部分。
节点:是在运行时存在的一个物理元素。它代表一个可计算的资源,通 常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点。
动作事物是UML模型中的动态部分。它们是模型的动词,代表时间和空间
3.方法(操作):是类的功能,只能作用到该类的对象上,定义了对象之间可能的 交互。
在UML中表示方法的语法为:可见性 操作名 (参数表) :返回类型 {约束特性}。 对于类人的吸气方法,我们可以写成:+ 吸气(氧气):二氧化碳。表示吸气方法是 公共的,需要氧气做参数,返回的类型是二氧化碳。
(2) 类之间的关系
1.关联
关联用于描述类与类之间的连接。由于对象是类的实例,因此,类和 类之间的关联也就是对象和对象之间的关联,类和类之间有多种连接 方式每种连接方式各不相同(语义的连接),但外部表现形式相类似, 故我们称之为关联。关联关系之间一般都是双向的,关联的双方都能 够互相通信;反过来说,如果某两个类能够互相通信或者y一方能感 知另一方,那么这两个类之间就存在关联关系。描述这种关系常用的 子句是“彼此知道,互相连接”。
二、UML中建模的机制
在UML中存在两种建模机制:静态建模机制和动态建模机制。
当我们在实际的应用中使用面向对象的设计和分析方法时,一般遵循的步骤 是:
第一步:描述需求,一般产生用例图。 第二步:根据需求建立系统的静态模型,构造系统的结构。产生:类图,对 象图,组件图和部署图。 第三步:描述系统的行为。这里建立的模型或者可以执行,或者表示执行时 的时序状态或交互关系。产生:状态图,活动图,顺序图和合作图。
UML建模方法
一、UML的三个基本构造块 1 事物
(1)结构事物(Structural things): (2)动作事物(Behavioral things) (3)分组事物(Grouping things) (4)注释事物(Annotational things)
类:是对具有相同属性、方法、关系和语义的对象的抽象,一个类可以 实现一个或多个接口。在UML中类用包括类名、属性和方法的矩形表示。
最普遍使用的依赖类型。 b.Abstraction(抽象):表示客户和提供者之间的关系,提供者比客户
更加抽象。 c.Permission(授权):提供者为客户提供某种权限以访问提供者的内
容,这是一种提供者控制和限制对其内容访问的方法。 d.Binding(绑定):一般用于提供参数化类型(模板)的语言中(如
关联有0或1对多,多对多等几种。例如班级(Class)类和学生(Student)类, 他们之间就是1对多的关系。
关联类是起关联作用的类,是通过一根虚线与关联连接。例如每个"保险单" 属于一个"客户",而"客户"可以签定多个"保险单"。除了这个关联外,还有另外 两个关联,分别是每个"保险单"包含若干个"保险单上的项目",而每个"保险单上 的项目"涉及单一的"保险类别"。
在UML中,聚合表示为空心菱形,组合表示为实心菱形。
2.继承 定义了一般元素和特殊元素之间的分类关系。在UML中,继承表示为一端 是空心三角形的实线:
例如人,人是共性(一般)的元素,而男人和女人就是特殊的元素。我们可以 说:男人继承自人,女人也继承自人,而漂亮女人继承自女人。
3.依赖
有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定 义的修改,则称元素Y依赖(Dependency)于元素X。在类中,依赖由各种 原因引起,如:一个类向另一个类发送消息;一个类是另一个类的数据成 员;一个类是另一个类的某个操作参数。
系,是UML把事物联系到一起的方法。 UML中的关系类型有: 依赖
关联
泛化
实现
依赖:
是两个元素之间的关系,对一个元素(提供者)的改变可能影响或提供信 息给其他元素(客户)
依赖不仅发生在类间,它们通常发生在: l 包和包之间 l 对象和类之间 UML中表示依赖的图形是:
在UML中有四种基本的依赖类型: age(使用):客户使用由提供者所提供的服务以实现它的行为,这是
实例1 参与者之间的泛化关系
参与者:经理,安全主管,保安 用例:管理人事,批准预算,批准安全证书,监视周边
在参与者之间不存在泛化关系的情况下,各个参与者参与用 例的情况分别是:经理参与用例管理人事和批准预算;安全 主管参与用例批准安全证书;保安参与用例监视周边。由于 安全主管与经理,安全主管与保安之间泛化关系的存在,意 味着安全主管可以担任经理和保安的角色,就能够参与经理 和保安参与的用例。这样,安全主管就可以参与全部4个用 例。但经理或者保安却不能担任安全主管的角色,也就不能 参与用例批准安全证书。
注释事物是UML模型的解释部分。UML中用如下图圈出表示:
2图
UML中的图有五种类别的图(9种图形)。它们是 用例图:用例图 静态图:类图、对象图 行为图:状态图和活动图 交互图:合作图和序列(顺序)图 实现图:部署图和组件图(构件图)
3 关系 关系是建模元素之间的语义(有意义)联
C++)。
关联:
是类间的语义联系,是类实例间连接的描述。在 UML中表示关联的图是:
关联可以具有以下各项: a.关联名称
关联名称是动词短语,表明源对象正在目标对象上执行的动作。 b.角色名称
表明关联中类的对象所扮演的角色。 c. 多重性
多重性表明在任意时刻关系所能够涉及的对象数目,用来约束任意时刻对象 的数目。
“查看物品的库存情况”就是扩展自用例“物品进仓”。
(3) 如何发现用例
一般可以采用“主谓”结构的方式来发现用例,也就是“谁做什么”。 “谁”就是ACTOR,“做什么”就是用例。对于已识别的角色,通过询 问以下问题就可以发现用例:
1.角色需要从系统中获得哪种功能?角色需要做什么? 2.角色需要读取,产生,删除,修改或存储系统中的某种信息吗? 3.系统中发生的事件需要通知角色吗?或者角色需要通知系统某件事件 吗?这些事件(功能)能干些什么? 4.如果采用系统的新功能处理角色的日常工作是简单化了,还是提高了 工作效率? 5.还有一些与当前角色可能无关的问题,也能帮助建模者发现用例。例 如:
(1) 类的组成