第6章 用例模型
(2)用例(Use Case)是系统对角色 的交互进行响应,并产生一个可见的结果 时所进行的一系列动作。用例描述了系统 的功能,并且不涉及到系统的实现。用例 的图型表示为:
用例名称
例3:在一节不和谐的课堂里,老师叹气道:“要是坐在后排 聊天的同学能像中间打牌的同学那么安静,就不会影响到 前排睡觉的同学。” 在这个描述中,同学们在课堂上都做 了什么呢? 答案:聊天、打牌、睡觉。 例4:如果你去使用ATM机(自动取款机),那么你通过 ATM都可以做什么呢? 答案是:查询、存款、取款、转账、打印等。
6.1 UML简介
UML是一种建模语言, 是用来为面向对象开发系统 的产品进行说明可视化和编 制文档的方法。它是由信息 系统(IS,Information System)和面向对象领域的 三位著名的方法学家Grady Booch ,James Rumbaugh 和Ivar Jacobson(称为“三 个好朋友”,the Three Amigos)提出的。
例1:软件开发者没有正确理解客户的要求。
例2:需求没有满足完备性和一致性,就开始了设计。
用例模型是采用面向对象的思想,是需 求分析模型的表现形式之一,主要用于表 现系统的功能性需求;是以一种更直观的 方式来表现用户对软件系统的要求。
6.3 用例模型
用例模型是使用用例的方法来描述系统 功能需求的过程。它主要包括两部分内容: 用例图和用例描述。
6.3.1 用例图
用例图(Use case diagram)从用户角 度描述系统功能,并指出各功能的操作者。 在用例图中的核心概念有角色和用例。
(1)角色(Actor),又称为参与者, 是指系统的用户在与系统按照用例的描述 进行交互时所扮演的一系列相关的角色。
角色
例1:“我的一个朋友结婚了”,在这个 事实描述里,你会想到哪些人或事呢? 答案是:月老,新娘,新郎,亲朋好友, 玫瑰花。这些就是这个事实中的人或事, 也可以称为是这个事实描述里面存在的角 色。
设计视图
部署视图
System topology Delivery,installation communication
6.2 需求分析与用例模型
电影《其实你不懂他的心》(He's Just Not That Into You)
软件系统的需求是指用户对软件的功能和性能的要求,就是 用户希望软件能做什么事情,完成什么样的功能,达到什么 性能。 需求分析就是提供一种与客户在系统功能方面进行沟通并达 成共识的方式,使开发者能够更准确的理解系统的需求;是 把客户的功能描述转化为软件人员所能理解的功能描述,并在 客户描述的基础上去除不合理的地方,补充系统缺失的地方, 最后为系统的概要设计,详细设计提供准确,有效的数据基础。
2.视图
用例视图表达从用户角度看到的系统应有的外部功能,有时也叫 用户模型视图;用用例图来描述。 设计视图描述系统设计特征,包括结构模型视图和行为模型视图, 前者描述系统的静态结构(类图、对象图),后者描述系统的动态行 为(交互图、状态图、活动图)。 部署视图描述系统的物理配置特征,用部署图表示。 实现视图表示系统的实现特征,常用构件图表示。 进程视图表示系统内部的控制机制。常用类图描述过程结构,用 交互图描述过程行为。
查看帖子
修改帖子
讨论区人员
回复帖子
新增帖子
用例名称:新增帖子 用例目的:完成帖子的添加 参与者:讨论区人员 前置条件:讨论区成员成功地进入讨论区,通过身份验证。 事件流: 第1步:进入分组讨论区界面 讨论区成员:选择进入相应的分组讨论区 系统:将分组讨论区中信息全部显示出来 第2步:新增帖子 讨论区成员:要求新增一条帖子信息 系统:进入新增帖子界面。 第3步:填写帖子 讨论区成员:填写帖子中的具体信息 系统:显示输入的内容。 第4步:提交 讨论区成员:提交填写好的讨论区 系统:保存该讨论区到内部数据库 后置条件:完成了帖子的增加,返回讨论区 扩展点:修改帖子
4.注释事物
注释事物是UML模型的解释部分。
5.连接关系
(1)关联:连接模型元素及链接实例;例如教师 (2)泛化:表示一般与特殊的关系,即“一般”元素是“特殊” 元素的泛化,“特殊”元素是“一般”元素 (3)依赖:表示一个元素以某种方式依赖于另一个元素; 的特化,和学生之间的关系。 (4)聚集:表示整体与部分的关系,即“部分”元素是“整体” 元素的一部分。
拓展练习: (1)根据“新增帖子”的用例描述,给出“查看帖子”、 “回复帖子”的用例描述。 (2)给出例5中“签订保险单”的用例描述。
(3)理解下面的用例图,并回答问题。 阅读报道卡片 维护教授信息 问题1:角色“学生”执行哪些用例?角色“教授”呢? 问题2:如果李三是一个学生兼教授,哪些用例可以被执行? 注册管理员 学生选课 维护学生信息 问题3:对用例“学生选课”,“注册”进行用例描述。
6.4.3 查找系统用例
例10:根据例9的描述,针对每一个参与者, 分析其对应的用例。
6.4.4 用例图优化
(1)参与者与参与者之间的关系 (2)用例和用例之间的关系
6.5 用例模型复审
(1)功能需求的完备性: (2)模型是否易于理解: (3)是否存在不一致性: (4)避免二义性语义:
某高校的教务管理系统中,大学生可以创 建简历、安排日程、查询课表,而任课教 师也可以安排日程、查询课表,还可以调 研新课程的开发。
学生 注册 课程总表 教授选课 注册结束
教授
成绩提交
计费系统
6.4 建立用例模型
我们建议的步骤是先确定系统边界,然后找 出系统参与者,再根据参与者确定每个参与者相 关的用例,最后再细化每一个用例的用例规约。
6.4.1 确定系统边界
6.4.2 查找系统参与者
例9:客户服务系统是对公司和客户进行统一管理的系统,根据客户 服务系统案例需求说明书,具体包括以下几个方面: (1) 基础资料维护。包括系统管理员添加、删除、修改客户服务系统 账户信息,添加、修改、删除公司产品及项目信息;客户服务人员添 加、修改、删除客户资料信息,添加、修改、删除经验库信息等。 (2) 业务处理。包括客户服务人员新增、修改、删除客户咨询信息; 维护人员处理客户问题、填写维护报告;部门领导处理投诉,安排任 务等。 (3) 统计查询。包括客户资料查询、客户来电咨询查询、经验库查询、 客户服务系统用户信息查询、回访任务及维护报告查询等。 明确以上信息后,分析系统的参与者。
用例模型的作用有(摘于IBM教材《使用UML进行面向对象分析 与设计》): (1)在系统开发的早期就可以明确最后提交的产品功能和特性; (2)确保双方都对需求有了准确的理解标识(系统的用户群和系 统的功能); (3)确定对系统与用户群之间接口的需求验证(是否客户所有的 需求都被捕获); (4)确保开发团队已完全理解了客户的需求。
路径1:基本流 路径2:基本流—备选流1—基本流 路径3:基本流—备选流1—备选流2 路径4:基本流—备选流3—基本流 路径5:基本流—备选流3—备选流4 路径6:基本流—备选流3—备选流1—备选流2 路径7:基本流—备选流3—备选流1—基本流 路径8:基本流—备选流4
用例描述模板
例7:在某论坛系统中,针对讨论区成员, 存在如下用例。请给出“新增帖子”用例 的描述过程:
(3)绘制用例图:用例图是用例的集 合,通常由系统、用例、角色和关联组成。
例5:某保险商务系统,客户可以签订保险 单,保险销售员可以鉴定保险单,还可以 进行销售统计和客户统计。
保险商务系统
签订保险单
客户
销售统计
保险销售员
客户统计
6.3.2 用例描述
用例描述(也称为用例规约)主要是描述用例的静态 和动态两方面特性。包括描述用例名称、用例目的、参与 者、用例的前提条件、用例的交互过程或者事件流、用例 执行结果、用例的扩展、特殊需求等等。
XX系统
用例1
角色1
角色2
用例1描述
用例2
用例2描述
如在ATM系统中的“提款”用例可以用事件 流表述如下: 提款基本事件流 (1)用户插入信用卡。 (2)输入密码。 (3)输入提款金额。 (4)提取现金。 (5)退出系统,取回信用卡。
最常见的事件流是用基本流(Basic Flow)来描述的, 其他的事件流则是用备选流(Alternative Flow)来描述。
第6章 用例模型
如果说我看得比别人更远些,那 是因为我站在巨人的肩膀上。
——艾萨克· 牛顿
学习标
了解UML中的基本图形元素 掌握用例图的概念及基本元素 学会建立用例模型 掌握用例描述 学会使用StarUml绘制用例图
什么是模型?模型是一组具有完整语义的信息, 它是对现实世界的简化,也是对认知主体的抽象, 建模过程就是认识世界、捕捉认知对象本质的过 程。 面向对象建模是软件工程师对系统相关的问题域 的建模和求解域的建模。 用例模型是UML中从用户的观点对软件系统行为 的一个建模,定义了系统做什么,即以系统功能 为目标,从系统使用者的角度来描述系统操作的 过程。
6.6 使用StarUML绘制用例图
2.动作事物
(1)交互:是一组对象在特定上下文中,为 达到某种特定的目的而进行的一系列消息 交换组成的动作。在UML中用带箭头的直 线来表示。 (2)状态机:由一系列对象的状态组成。
3.分组事物
分组事物是UML模型中组织的部分,分组 事物只有一种,称为包。包是一种有组织 地将一系列元素分组的机制。
思考:
(1)在上面的图中,“车”,“教师”,“显示器” 等事物属于UML中的哪一个概念? (2)“人”,“男人”,“女人”之间是UML中 的什么关系? (3)观察周围的事物,举出“聚合”,“泛化”关 系的实例。
6.1.3 UML组织结构
1.图
图是系统架构在某个侧面的表示,UML提供了两大类——静态图 和动态图,共计9种不同的图。 静态图(Static Diagram)包括用例图、类图、对象图、构建图、 部署图。其中用例图描述系统的功能;类图描述系统的静态结构; 对象图描述系统在某个时刻的静态结构;构件图描述实现系统的 元素的组织;部署图描述系统环境元素的配置。 动态图(Dynamic Diagram)包括状态图、时序图、协作图和活 动图。其中状态图描述系统元素的状态条件和响应;时序图按时 间顺序描述系统元素间的交互;协作图按照时间和空间的顺序描 述系统元素间的交互和关系;活动图描述系统元素的活动。其中 活动图是由Jame Odell提出,状态图由David Harel提出。