UML用例和用例图
UML用例和用例图
h
18
主要内容
基本概念:Use case、Actor、
Scenario Use case间的关系 Use Case 分析技术 案例讲解
h
19
关系
• 参与者与用例之间
– 关联关系
• 用例与用例之间
– 包含关系 (include) – 扩展关系 (extend) – 泛化关系 (generalization)
• 主事件流: • 1、系统显示ID和密码窗口; • 2、顾客键入ID和密码,然后按OK键; • 3、系统验证顾客ID和密码,并显示个人信息窗口; • 4、顾客键入姓名、街道地址、城市、邮政编码、电话号码,然
后按OK键; • 5、系统验证用户是否为老顾客; • 6、系统显示可以卖的商品列表; • 7、顾客在准备购买的商品图片上单击,并在图片旁边输入要购
• 用例结束后的系统状态
• 其他需要描述的内容
用例描述原则:尽可能写的“充分”,而不是追求写的形 式化、完整或漂亮。
h
32
h
33
书写用例文档
——路径交互步骤的描述
只书写“可观测”的 使用主动语句 句子必须以执行者或系统作为主语 每一句都要朝目标迈进 分支和循环 不要涉及界面细节
h
34
书写用例文档
买的数量。选购商品完毕后按Done按钮; • 8、系统通过库存系统验证要购买的商品是否有足够库存; • …….(后续描述省略)
问题:对用户界面的描述过于详细,对于需求文档来说, 详细的用户描述对获取需求并无帮助。
h
45
改进后的描述
• Use Case:Buy Something • 参与者:Customer • 主事件流: • 1、顾客使用ID和密码进入系统; • 2、系统验证顾客身份; • 3、顾客提供姓名、地址、电话号码; • 4、系统验证顾客是否为老顾客; • 5、顾客选择要购买的商品和数量; • 6、系统通过库存系统验证要购买的商品是否有足
02-用例和用例图
3.4.4 几种关系的比较
关系类型
说明
表示符号
关联
actor与use case之间
泛化
actor之间或use case之间
包含
use case之间
扩展
use case之间
用例图
用例图(use case diagram)是显示一组用例、角色以及它 们之间的关系的图.
在UML中, 一个用例模型若干个用例图描述.
角色
由于Actor实际上是一个特殊类, 因此它们之间可以 存在一定的关系,如:
脚本/场景
脚本(scenario)在UML中指贯穿用例的一条单一路径, 用 来显示用例中的某种特殊情况.
其它译名: 情景、情节、剧本.
每个用例有一系列脚本, 包括一个主要脚本, 以及几个 次要脚本. 相对于主要脚本, 次要脚本描述了执行路径 中的异常或可选择的情况.
实例分析:语音邮箱系统----用例脚本
用例3: 登录系统 1. 邮箱用户完成邮箱号输入操作. 2. 邮箱用户键入密码并后跟#键.(默认号码与邮箱号相同) 3. 语音邮件系统播放邮箱菜单: 按1键接收信息. 按2键更改密码. 按3键更改问候语.
实例分析:语音邮箱系统----用例脚本
用例4: 接收信息 1. 邮箱用户完成登录操作. 2. 邮箱用户选择 “接收信息”菜单选项. 3. 语音邮件系统播放信息菜单: 按1收听当前信息; 按2存储当前信息; 按3删除当前信息; 按4返回邮箱菜单. 4. 邮箱用户选择“收听当前信息”菜单选项. 5. 语音邮件系统播放当前新信息,若无新信息,播放当前已有信 息.(注意: 只播放,不删除) 6. 语音邮件系统播放信息菜单. 7. 用户选择”删除当前信息”,则信息被永久删除. 8. 继续执行第3步.
UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明书画法和功能
UML各种图例面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language ™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成标准文档为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)标准文档角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求标准文档∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.标准文档UML类的符号是一个被划分成三块的方框:类名,属性,和操作.抽象类的名字,像Payment是斜体的.类之间的关系是连接线.类图有三种关系.关联association-表示两种类的实例间的关系.如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联.在图中,关联用两个类之间的连线表示.标准文档标准文档为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型.dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.标准文档这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.标准文档每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.标准文档协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.标准文档对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.标准文档我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.标准文档状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和 Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.标准文档标准文档标准文档。
利用用例图描述用户需求
(4)用例的命名
每个用例应有唯一的名称 命名的方式:用例通常用动词 + 名词短语来命名---如:登录系统
请见文档中的说明 书写用例的模板格式
四、UML中的用例图
1、用例图 (1)什么是用例图
提供用例图的目的之 一是下面的描述
用例图是一种图形化的工具,它用简单的图形元素表示出 系统的参与者、用例以及它们之间的联系
(2)用例图中的参与者和用例之间的通信
参与者和用例之间的使用关系,在用例图中表示为一个 带箭头的直线
二、UML中的用例之间的关系
1、用例之间的关系
主要体现在纵向方面的层次化关系和横向方面的关联性和 包含
(1)用例的层次化(纵向方面)
按照抽象层次,用例可以划分为系统层(最高层)、子系 统层(可以再细分)和对象类层(最低层)。 系统层用例图:描述系统提供的全部主要的功能或服务。 子系统层用例图:描述某一子系统所应该提供的服务,它 的外部交互者可以是其他的子系统或高一层的参与者。 对象类层的用例图描述对象类提供的功能片或操作,它的 外部交互者可以是其他对象类或高一层活动者。
(3)用例图的组成元素
在一个用例图中,一般主要 包含有 系统边界 参与者 用例和用例关系 (泛化、使用和扩展等 三种形式)。
这在前面已经 加以说明过
2、用例图的主要作用 (1)面向用户
可以实现从用户角度来描述系统所应该具有的功能,同时 并能够指出各功能的操作者; 也能够显示出与系统进行交互的外部参与者及其使用方式。 (2)面向开发者 表示正在构造的新系统应该具有的功能 同时对已经构造完毕的系统,则反映了系统能够完成什么 样的功能
UML 用例图、关系图、活动图
例如,一个银行系统中,有
一个“验证用户”用例,用 身份认证
于验证用户的合法性,它有
两 个 特 殊 的 子 用 例 , 一 个 是 密码认证
指纹认证
“检查密码”,另一个是
“检查指纹”,它们都有父
用例“验证用户”的行为,
并且可以出现在父用例出现
的任何地方,还可以添加自
己的行为。
用例图实例
• 以前面图书信息管理系统为例,画出用例 图。先找出参与系统地的角色:
• 扩展关系——允许一个用例扩展另一个用
例的功能。例如,在图书信息管理系统中,
读者还书时,系统检查所还图书是否有预
订记录,如果有则执行“通知”用例。在
UML中扩展关系表示为箭头和《extend》形
式。
《extend》
还书
通知
管理员
读者
注意
• 使用关系和扩展关系之间的区别,A使用B 本质上是A一定使用B,同时增加自己的专 属行为;而A被用例B扩展是说明A是一个一 般用例,B是一个特殊用例,A在某些条件 下可能使用B。
(2)取消预订——本用例提供取消预订图书的功能。
(3)还书——完成还书任务,在还书是要检查所还的书是否超 期、是否有其他读者预订,有的话要通知预订者。
(4)借书——提供借阅书功能 。
• 分析这个用例图,发现“还书”用例应该 被扩展,因为在还书时检查所还图书是否 有预订记录,若有,则应该通知预订者前 来借书。
• 一个用例内部的具体处理细节是由其他图形工具描述 的,用例图只是反映系统的总体功能,以及与这些功 能的相关的角色。有些人可能在画“借书”用例时, 情不自禁地就考虑了“输入读者号和书号”,“检查 图书是否在库?”,“图书数量减1”,“添加读者借 书记录”等等,一旦考虑了这些细节,就会发现用例 图画不下去了。因此,读者注意用例图中不要考虑处 理细节。
UML中的用例与类图之间的关联关系
UML中的用例与类图之间的关联关系UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,用于描述和设计软件系统的结构和行为。
在UML中,用例图和类图是两个重要的建模工具,它们分别用于描述系统的功能需求和结构设计。
本文将探讨用例图和类图之间的关联关系,以及它们在软件开发过程中的应用。
一、用例图的作用和特点用例图是一种用于描述系统功能需求的图形表示方法。
它通过用例(Use Case)和参与者(Actor)之间的关系来描述系统的功能和行为。
用例图可以帮助开发团队和用户明确系统的功能需求,从而指导软件系统的开发和测试工作。
用例图的特点在于它强调系统与外部参与者之间的交互关系。
一个用例表示系统的一个功能需求,而参与者则表示与系统进行交互的外部实体,如用户、系统管理员等。
用例图通过箭头来表示参与者和用例之间的关系,例如,一个参与者可以执行多个用例,一个用例也可以被多个参与者执行。
二、类图的作用和特点类图是一种用于描述系统结构设计的图形表示方法。
它通过类(Class)、关联(Association)、继承(Inheritance)等元素来描述系统中的对象和它们之间的关系。
类图可以帮助开发团队明确系统的结构和组织,从而指导软件系统的设计和实现工作。
类图的特点在于它强调系统中对象之间的关联关系。
一个类表示系统中的一个对象,而关联则表示对象之间的关系。
类图通过线条和箭头来表示类和关联之间的关系,例如,一个类可以关联到另一个类,表示它们之间存在某种关联。
类图还可以使用继承关系来描述类之间的层次结构,例如,一个类可以继承自另一个类,表示它们之间存在父子关系。
三、用例图和类图的关联关系用例图和类图之间存在着紧密的关联关系。
用例图描述了系统的功能需求,而类图描述了系统的结构设计。
用例图中的用例可以通过类图中的类来实现,从而满足系统的功能需求。
具体来说,用例图中的用例可以通过类图中的类的操作来实现。
实验报告1--用例和用例图
中北大学软件学院实验报告
专业:软件工程
方向:软件开发与测试
课程名称: UML
班级:
学号:
姓名:
辅导教师:井超
2017年3月制
4.用例图如下所示
1).系统参与者
系统角色
2).图书管理
图书管理用例图3).图书借阅和还书用例图
图书的借阅和归还用例4).图书管理系统的整体用例图
图书管理系统的整体用例图
5.实验结论及心得
通过本次实验,我掌握了在课堂上学习的用例图等。
加深了对书本知识的认识和记忆。
在实验中我学会了去如何操作ro se工具图。
通过ro se工具图,可以去清晰的去展示一个关系等。
使用非常方便。
13种uml简介、工具及示例
13种uml简介、工具及示例UML(Unified Modeling Language)是一种用于软件开发的标准化建模语言,它使用图形表示法来描述软件系统的不同方面。
在软件开发过程中,使用UML可以帮助开发人员更清晰地理解系统的结构和行为,从而更好地进行设计和实现。
UML提供了包括结构模型、行为模型和交互模型在内的多种建模方式,其中每种模型都有各自的符号和语法规则。
通过使用这些模型,开发人员可以将系统分解成不同的部分,然后逐步细化这些部分的设计,以便更好地组织和管理项目。
在UML中,最常用的建模元素包括用例图、类图、时序图、活动图、状态图等。
每种图表都有其特定的用途和表达能力,开发人员可以根据实际需要选择合适的图表进行建模。
除了建模元素外,UML还定义了一系列的建模工具,这些工具可以帮助开发人员更高效地进行建模和分析。
其中一些常用的建模工具包括Enterprise Architect、Rational Rose、StarUML等。
下面将对13种UML简介、工具及示例进行详细介绍:1. 用例图(Use Case Diagram)用例图是UML中描述系统功能和用户交互的基本图表之一。
它用椭圆表示用例,用直线连接用例和参与者,展示了系统外部用户和系统之间的交互。
用例图可以帮助开发人员更清晰地理解系统的功能需求,从而指导系统的设计和实现。
示例:一个简单的在线购物系统的用例图包括用例“浏览商品”、“添加商品到购物车”、“提交订单”等,以及参与者“顾客”和“管理员”。
2. 类图(Class Diagram)类图是UML中描述系统结构和静态关系的基本图表之一。
它用矩形表示类,用线连接类之间的关系,包括关联关系、聚合关系、继承关系等。
类图可以帮助开发人员更清晰地理解系统的对象结构和类之间的关系,从而支持系统的设计和重构。
示例:一个简单的学生信息管理系统的类图包括类“学生”、“课程”、“教师”等,以及它们之间的关系如“选修”、“授课”等。
超市管理系统UML类图和用例图
超市管理系统U M L类图和用例图集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#超市管理系统需求分析报告(使用面向对象的方法)目录超市管理系统需求分析报告(面向对象方法)1用例和用例图1.1 什么是用例和用例图用例是由行为者启动的系统完成的一系列动作,这些动作除了完成系统内部的计算与工作外,还包括与一些行为者的通信。
用例代表某些用户可见性的功能,实现一个具体的用户目标。
用例图(User Case)是由参与者,用例以及它们之间的关系构造成的用于描述系统功能的动态视图的图。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
1.2 用例图1.3 用例说明用例名称:超市管理系统之人事管理相关活动者:职工,人事部人员,超市管理系统之售后服务简要说明:人事部人员对职工进行人事调动,人事考核,培训,工资管理等一系列人事安排。
一切的人事安排都打印出报表及时通知给职工。
其中的人事考核将接受由超市管理系统之售后服务传过来的对职工的投诉的信息,作为人事考核的一个依据。
前置条件:人事部人员已经登录人事管理界面主事件流:1.人事部人员登录人事管理界面,用例开始2.系统提示输入人事管理对象职工的职工号3.人事部人员输入人事管理对象职工的职工号4.系统提示选择人事管理的四项管理:人事调动,人事考核,培训,工资管理5.人事部人员选择一项具体的人事管理:B1:选择人事调动B2:选择人事考核 B3:选择培训 B4:选择工资管理6.系统按选择做相关处理7.用例结束可选事件流:B1:选择人事调动1.系统提示选择人事调动中三项管理:就职,职位变更,离职2.人事部人员选择一项具体的人事调动管理:B5:选择就职B6:选择职位变更 B7:选择离职3.系统按选择做相关处理4.返回主事件流第7步B2:选择人事考核1.系统显示该职工可能存在的由超市管理系统之售后服务传入的被投诉的事项2.系统提示输入考核内容3.人事部人员输入考核内容4.系统提示给出职工考核结果5.人事部人员输入具体考核结果6.系统显示职工考核具体情况并打印报表7.返回主事件流第7步B3:选择培训1.系统提示选择培训项目2.人事部人员选择培训项目3.系统提示选择培训时间4.人事部人员选择培训时间5.系统显示该项培训具体事项并打印报表6.返回主事件流第7步B4:选择工资管理1.系统显示该职工当前工资情况2.系统提示修改该职工工资3.人事部人员修改该员工各项工资4.系统显示修改后职工工资情况并打印报表5.返回主事件流第7步B5:选择就职1.系统显示该后备职工具体情况2.系统将该职工信息由后备职工表转入就职职工表3.系统打印职工就职任命书4.返回主事件流第7步B6:选择职位变更1.系统显示该职工当前职位情况2.系统提示选择该职工变更后职位3.人事部人员选择变更后职位4.系统显示该职工变更后职位情况并答应职位变更报表5.返回主事件流第7步B7:选择离职1.系统显示该职工当前就职情况2.系统将该职工信息由就职职工表转入离职职工表3.系统打印职工离职报表4.返回主事件流第7步后置条件:无用例名称:超市管理系统之销售管理相关活动者:顾客,大客户,营业员,销售经理,超市管理系统之售后服务,超市管理系统之仓储管理简要说明:销售管理对超市的销售做总体的管理。
UML(2)-用例图
UML(2)-⽤例图通过⽤例来捕获系统需求,然后结合参与者进⾏系统功能需求的分析和设计。
由参与者、⽤例及它们之间关系构成的⽤于描述系统功能的动态视图称为⽤例图。
⼀个椭圆,⽤例的名字可以放在椭圆的中⼼或椭圆下⽅的中间位置表⽰⼀个⽤例。
参与者⽤⼈型符号表⽰。
两者之间的关系⽤带箭头的线段描述,其中箭头所指⽅为被动接受者(可以⽤不带箭头的线段描述不带主被动关系)。
要注意的是:箭头的⽅向并不是指信息流的⽅向。
参与者与⽤例之间的信息流默认存在,是双向的。
(⼀)⽤例图的作⽤⽤例图的主要作⽤是描述参与者和⽤例之间的关系,帮助开发⼈员可视化的了解系统功能。
传统的需求表述⽅式是Software Requirment Specification(软件需求规约,SRS),采⽤功能分解⽅式来描述系统功能,将系统功能分解到各个系统功能模块中,然后通过描述每个模块的功能来达到描述整个系统功能的⽬的。
软件需求规约容易混淆需求和设计的界限,导致需求分析包含部分概要设计;通过分割了的系统功能难于表现实现⼀个完整的系统服务。
⽤例图可视化的表达了系统的需求,且把需求与设计分离开。
(⼆)⽤例图构成(1)参与者(Actor)参与者指存在于系统外部且直接与系统进⾏交互的⼈、系统、⼦系统或类的外部实体的抽象。
通过⼈形图来表⽰参与者,参与者的名字在图的下⽅。
参与者是⼀种⾓⾊,⽽不是具体的⼈或事物本⾝。
参与者之间的关系主要是泛化关系,也就是继承关系。
继承关系通过空⼼三⾓箭头的实线段表⽰。
(2)⽤例(Use Case)⽤例是参与者可以感受到的系统服务或功能单元。
它是以⽤户的⾓度上来描述系统功能。
参与者与⽤例之间的关系是关联关系,也称为通信关联。
参与者是⼀种⾓⾊,⽤例不是具体实例,⽽是表⽰⼀个类。
⽤例包含的系统功能有⼤有⼩,这就是⽤例的粒度,粒度⼤,⽤例包含的功能多。
⽤例的粒度重要的是⼀个度。
它决定了⽤例模型级的复杂度,也决定了每个⽤例内部的复杂度。
2.设计模式常用的UML图分析(用例图、类图与时序图)
2.设计模式常⽤的UML图分析(⽤例图、类图与时序图)1-⽤例图概述1. 展现了⼀组⽤例、参与者以及他们之间的关系。
2. ⽤例图从⽤户⾓度描述系统的静态使⽤情况,⽤于建⽴需求模型。
⽤例特征保证⽤例能够正确捕捉功能性需求,判断⽤例是否准确的依据。
1. ⽤例是动宾短语2. ⽤例是相互独⽴的3. ⽤例是由⽤户参与者启动的4. ⽤例要有可观测的执⾏结果5. ⼀个⽤例是⼀个单元参与者 ActorUML中,参与者使⽤⼀个⼩⼈表⽰:1. 参与者为系统外部与系统直接交互的⼈或事务,于系统外部与系统发⽣交互作⽤2. 参与者是⾓⾊⽽不是具体的⼈3. 代表参与者在与系统打交道时所扮演的⾓⾊4. 系统实际运作中,⼀个实际⽤户可能对应系统的多个参与者。
不同⾓⾊也可以只对应⼀个参与者,从⽽代表同⼀参与者的不通实例⽤例 Use Case系统外部可见的⼀个系统功能单元。
系统的功能由系统单元所提供,并通过⼀系列系统单元与⼀个或多个参与者之间交换的消息所表达。
系统单元⽤椭圆表⽰,椭圆中的⽂字简述系统功能:关系 Relationship常见关系类型有关联、泛化、包含和扩展关联 Association表⽰参与者与⽤例之间的通信,任何⼀⽅都可发送或接受消息。
箭头指向:指向消息接收⽅:⼦系统 SubSystem⽤来展⽰系统的⼀部分功能(紧密联系)泛化 Inheritance继承关系,⼦⽤例和⽗⽤例相似,但表现出更特别的⾏为;⼦⽤例将继承⽗⽤例的所有结构、⾏为和关系。
⼦⽤例可以使⽤⽗⽤例的⼀段⾏为,也可以重载它。
⽗⽤例通常是抽象。
箭头指向:指向⽗⽤例2-类图描述系统中的类,以及各个类之间的关系的静态试图。
表⽰类、接⼝以及它们之间的协作关系,⽤于程序设计阶段。
注意:1. 抽象类或抽象⽅法⽤斜体表⽰2. 如果是接⼝,则在类名上⽅加 <<Interface>>3. 字段和⽅法返回值的数据类型⾮必需4. 静态类或静态⽅法加下划线类图实例:类图中的事务及解释如图,类图从上到下分为三部分,分别为类名、属性和操作1. 属性:如果有属性,则每⼀个属性都必须有⼀个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等2. 操作:如果有操作,则每⼀个操作也都有⼀个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等类图中的六种关系1.实现关系 implements (类实现接⼝)⽤空⼼三⾓虚线表⽰2.泛化关系 extends (表⽰⼀般与特殊的关系) is-a⽤空⼼三⾓实线表⽰3.组合关系 (整体与部分的关系) contains-a实⼼菱形实现表⽰eg.有头类、⾝体类与⼈类类三个类,则⼈类类中应包含头类及⾝体类这两个属性,则⼈类类与头类和⾝体的关系即为组合关系。
第2章用例和用例图
成绩管理
UML用例图组成( UML用例图组成(续) 用例图组成
饮料销售机
UML用例图组成( UML用例图组成(续) 用例图组成
用例与用例的扩展关联用来表示通过对已有用例增加步 用例与用例的扩展关联用来表示通过对已有用例增加步 扩展关联用来表示 骤创建一个新的用例,即对原有的用例进行了扩展。 骤创建一个新的用例 即对原有的用例进行了扩展。扩展只能 即对原有的用例进行了扩展 发生在基用例的序列中的某个具体指定点上。这个点叫做扩 发生在基用例的序列中的某个具体指定点上。 展点.在UML图中,使用带虚线箭头表示,并在线上标有构造 展点 在UML图中,使用带虚线箭头表示, 图中 带虚线箭头表示 如下图所示: 型<<extend>> 。如下图所示:
UML用例图组成( UML用例图组成(续) 用例图组成
包含关联与扩展关联的区别: 包含关联与扩展关联的区别:
存在包含关联的两个用例,在执行基本用例时 一定会执 存在包含关联的两个用例 在执行基本用例时,一定会执 在执行基本用例时 行包含用例;存在扩展关联的两个用例,在执行基本用例时 在执行基本用例时, 行包含用例;存在扩展关联的两个用例 在执行基本用例时 可以执行,也可以不执行扩展部分 可以执行 也可以不执行扩展部分. 也可以不执行扩展部分
UML用例图的作用( UML用例图的作用(续) 用例图的作用
• 用例图的主要作用: 用例图的主要作用:
– 用来描述待开发系统的功能需求和系统使用场景 – 作为开发过程的基础,驱动各阶段的开发工作 作为开发过程的基础, – 用于验证与确认系统需求
画好用例图是由软件需求到最终实现的第一步. 画好用例图是由软件需求到最终实现的第一步.
UML用例图的建模( UML用例图的建模(续) 用例图的建模
用例和用例图
技巧 实地观察
访谈
描述
• 直接观察个人工作旳情况,以发觉现存旳实践方式和
问题
• 从个人处搜集特定信息
特定群体 调查
对一组人员进行调查,以便了解工作态度和共同看法
• 问卷调查 搜集详细数据和统计意义上比较主要旳数据
• • 顾客指 导
让最终顾客告诉你,他们是怎样操作系统旳
• 原型制作 模拟一种无法直接测试旳系统
人、外部系统、外部因素等
12
3.2.2 辨认参加者:参加者要点
• 参加者指在系统中所扮演旳角色。即在拟定参加者时,
应主要考虑他旳角色,而不是这个角色旳实例。
• 某些组织中可能有诸多营销人员,但他们均起着同
一种作用,扮演着相同旳角色。
• 一种顾客也能够扮演多…种角色:一种高级营销人员
既能够是贸易经理,也能够是一般旳营销人员。
小一点旳蓝色大理石
5
3.2.1 获取原始需求:如此脆弱
客户/顾客旳要 求/想法/期望
验收
分析和设计
没价值旳 软件需求
补文档
软件产品 编码和测试
软件设计
6
3.2.1 获取原始需求:也需要开发
客户/顾客旳要 求/想法/期望
软件产品
开发
验收
编码和测试
有价值旳 软件需求
分析和设计
软件设计
7
3.2.1 获取原始需求:技巧
第三章 用例和用例图
1
3.1 概述
• 用例图着重从系统外部执行者旳角度来描述系统需要提
供哪些功能,执行者能够是人或外部系统。
2
3.1 概述
用例图旳构成元素
• 图中旳元素涉及:参加者、用例、某些表达关系旳连接
软件工程课件之第4章用例和用例图
4.2.3 泛化关系
借阅者
.9 泛化关系
4.2.4 分组关系
在一些用例图中,用例的数目可能很多,这时就需要把 这些用例组织起来。这种情况在一个系统包含很多子系 统时就会出现。另一种可能就是,当你按顺序和用户会 谈,收集系统需求时,每个需求必须用一个单独的用例 来表达,这时就需要某种方式来对这些需求进行分类。
4.1.1 参与者
例如,在“图书管理系统”中,可以认为“读者”是 “学生读者”和“教师读者”的泛化,而“学生读者” 还可以具体化为“本科生读者”和“研究生读者”;同 样,“图书管理员”也是“采购员”、“ 编目员”及 “借阅人员”的泛化。图4.3表示出了参与者之间的泛 化关系。
4.1.1 参与者
“<<extend>>”是扩展关系的构造型,箭头指向基本用例。
4.2.2 扩展关系
借阅者
<<include>>
还书
<<extend>>
查询图书 交罚款
图4.8 扩展关系
区别与联系:
联系:都是从现有的用例中抽取出公共的那部分信息
,作为一个单独的用例,然后通过不同的方法来重用这 个公共的用例,以减少模型维护的工作量。
因此,在“图书管理系统”中“借阅者”和“系统管理 员”都是参与者。
4.1.1 参与者
【例4-1】客户给销售员发来传真订货, 销售员下班前 将当日订货单汇总输入系统。谁是系统的参与者?
分析:根据参与者的定义可知,此系统的参与者是销售 员。
4.1.1 参与者
【例4-2】在需求分析中常见的权限控制问题,一般的 用户只可以使用一些常规的操作,如查询等,而管理员 除了常规操作之外还需要进行一些系统管理工作,如一 些关键数据的增加、删除、修改等,操作员既可以进行 常规操作又可以进行一些配置操作。
UML用例图详解
二.用例建模简介用例建模是UML建模的一部分,它也是UML里最基础的部分。
用例建模的最主要功能就是用来表达系统的功能性需求或行为。
依我的理解用例建模可分为用例图和用例描述。
用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。
用例描述用来详细描述用例图中每个用例,用文本文档来完成。
1.用例图参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。
因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
比如小明是图书馆的管理员,他参与图书馆管理系统的交互,这时他既可以作为管理员这个角色参与管理,也可以作为借书者向图书馆借书,在这里小明扮演了两个角色,是两个不同的参与者。
参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。
用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
这是 UML对用例的正式定义,对我们初学者可能有点难懂。
我们可以这样去理解,用例是参与者想要系统做的事情。
对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。
用例在画图中用椭圆来表示,椭圆下面附上用例的名称。
系统边界是用来表示正在建模系统的边界。
边界内表示系统的组成部分,边界外表示系统外部。
系统边界在画图中方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。
因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。
箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
2.用例描述用例图只是简单地用图描述了一下系统,但对于每个用例,我们还需要有详细的说明,这样就可以让别人对这个系统有一个更加详细的了解,这时我们就需要写用例描述。
超市管理系统UML类图和用例图
超市管理系统U M L类图和用例图Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT超市管理系统需求分析报告(使用面向对象的方法)目录超市管理系统需求分析报告(面向对象方法)1用例和用例图1.1 什么是用例和用例图用例是由行为者启动的系统完成的一系列动作,这些动作除了完成系统内部的计算与工作外,还包括与一些行为者的通信。
用例代表某些用户可见性的功能,实现一个具体的用户目标。
用例图(User Case)是由参与者,用例以及它们之间的关系构造成的用于描述系统功能的动态视图的图。
用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。
用例图用于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。
用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
1.2 用例图1.3 用例说明用例名称:超市管理系统之人事管理相关活动者:职工,人事部人员,超市管理系统之售后服务简要说明:人事部人员对职工进行人事调动,人事考核,培训,工资管理等一系列人事安排。
一切的人事安排都打印出报表及时通知给职工。
其中的人事考核将接受由超市管理系统之售后服务传过来的对职工的投诉的信息,作为人事考核的一个依据。
前置条件:人事部人员已经登录人事管理界面主事件流:1.人事部人员登录人事管理界面,用例开始2.系统提示输入人事管理对象职工的职工号3.人事部人员输入人事管理对象职工的职工号4.系统提示选择人事管理的四项管理:人事调动,人事考核,培训,工资管理5.人事部人员选择一项具体的人事管理:B1:选择人事调动B2:选择人事考核 B3:选择培训 B4:选择工资管理6.系统按选择做相关处理7.用例结束可选事件流:B1:选择人事调动1.系统提示选择人事调动中三项管理:就职,职位变更,离职2.人事部人员选择一项具体的人事调动管理:B5:选择就职B6:选择职位变更 B7:选择离职3.系统按选择做相关处理4.返回主事件流第7步B2:选择人事考核1.系统显示该职工可能存在的由超市管理系统之售后服务传入的被投诉的事项2.系统提示输入考核内容3.人事部人员输入考核内容4.系统提示给出职工考核结果5.人事部人员输入具体考核结果6.系统显示职工考核具体情况并打印报表7.返回主事件流第7步B3:选择培训1.系统提示选择培训项目2.人事部人员选择培训项目3.系统提示选择培训时间4.人事部人员选择培训时间5.系统显示该项培训具体事项并打印报表6.返回主事件流第7步B4:选择工资管理1.系统显示该职工当前工资情况2.系统提示修改该职工工资3.人事部人员修改该员工各项工资4.系统显示修改后职工工资情况并打印报表5.返回主事件流第7步B5:选择就职1.系统显示该后备职工具体情况2.系统将该职工信息由后备职工表转入就职职工表3.系统打印职工就职任命书4.返回主事件流第7步B6:选择职位变更1.系统显示该职工当前职位情况2.系统提示选择该职工变更后职位3.人事部人员选择变更后职位4.系统显示该职工变更后职位情况并答应职位变更报表5.返回主事件流第7步B7:选择离职1.系统显示该职工当前就职情况2.系统将该职工信息由就职职工表转入离职职工表3.系统打印职工离职报表4.返回主事件流第7步后置条件:无用例名称:超市管理系统之销售管理相关活动者:顾客,大客户,营业员,销售经理,超市管理系统之售后服务,超市管理系统之仓储管理简要说明:销售管理对超市的销售做总体的管理。
超市管理系统UML类图和用例图
超市治理体系需求剖析陈述(应用面向对象的办法)目次1用例和用例图11132类图889超市治理体系需求剖析陈述(面向对象办法)1用例和用例图1.1 什么是用例和用例图用例是由行动者启动的体系完成的一系列动作,这些动作除了完成体系内部的盘算与工作外,还包含与一些行动者的通讯.用例代表某些用户可见性的功效,实现一个具体的用户目的.用例图(User Case)是由介入者,用例以及它们之间的关系构造成的用于描写体系功效的动态视图的图.用例图展现了用例之间以及同用例介入者之间是如何互相接洽的.用例图用于对体系.子体系或类的行动进行可视化,应用户可以或许懂得若何应用这些元素,并使开辟者可以或许实现这些元素.用例图界说了体系的功效需求,它是从体系的外部看体系功效,其实不描写体系内部对功效的具体实现.1.2 用例图1.3 用例解释用例名称:超市治理体系之人事治理相干运动者:职工,人事部人员,超市治理体系之售后办事扼要解释:人事部人员对职工进行人事调动,人事考察,培训,工资治理等一系列人事安插.一切的人事安插都打印出报表实时通知给职工.个中的人事考察将接收由超市治理体系之售后办事传过来的对职工的投诉的信息,作为人事考察的一个根据.前置前提:人事部人员已经登录人事治理界面主事宜流:1.人事部人员登录人事治理界面,用例开端2.体系提醒输入人事治理对象职工的职工号3.人事部人员输入人事治理对象职工的职工号4.体系提醒选择人事治理的四项治理:人事调动,人事考察,培训,工资治理5.人事部人员选择一项具体的人事治理:B1:选择人事调动B2:选择人事考察B3:选择培训B4:选择工资治理6.体系按选择做相干处理7.用例停止可选事宜流:B1:选择人事调动1.体系提醒选择人事调动中三项治理:就职,职位变动,去职2.人事部人员选择一项具体的人事调动治理:B5:选择就职B6:选择职位变动B7:选择去职3.体系按选择做相干处理4.返回主事宜流第7步B2:选择人事考察1.体系显示该职工可能消失的由超市治理体系之售后办事传入的被投诉的事项2.体系提醒输入考察内容3.人事部人员输入考察内容4.体系提醒给出职工考察成果5.人事部人员输入具体考察成果6.体系显示职工考察具体情形并打印报表7.返回主事宜流第7步B3:选择培训1.体系提醒选择培训项目2.人事部人员选择培训项目3.体系提醒选择培训时光4.人事部人员选择培训时光5.体系显示该项培训具体事项并打印报表6.返回主事宜流第7步B4:选择工资治理1.体系显示该职工当前工资情形2.体系提醒修正该职工工资3.人事部人员修正该员工各项工资4.体系显示修正后职工工资情形并打印报表5.返回主事宜流第7步B5:选择就职1.体系显示该后备职对象体情形2.体系将该职工信息由后备职工表转入就职职工表3.体系打印职工就职录用书4.返回主事宜流第7步B6:选择职位变动1.体系显示该职工当前职位情形2.体系提醒选择该职工变动后职位3.人事部人员选择变动后职位4.体系显示该职工变动后职位情形并答应职位变动报表5.返回主事宜流第7步B7:选择去职1.体系显示该职工当前就职情形2.体系将该职工信息由就职职工表转入去职职工表3.体系打印职工去职报表4.返回主事宜流第7步后置前提:无用例名称:超市治理体系之发卖治理相干运动者:顾客,大客户,营业员,发卖司理,超市治理体系之售后办事,超市治理体系之仓储治理扼要解释:发卖治理对超市的发卖做总体的治理.营业员能经由过程前台发卖(POS机端)来发卖零碎的小数目商品.发卖司理可以经由过程批量发卖来发卖对应于大客户的大批量商品.另体系还将把前台发卖和批量发卖中对商品的装配和维修有需求的商品信息传给超市治理体系之售后办事.体系还将把前台发卖和批量发卖后导致在架商品数目过少的商品信息传给超市治理体系之仓储治理,以便后者做出响应的出库安插.前置前提:营业员或发卖司理已登录发卖治理界面主事宜流:a)1.营业员登录前台发卖治理界面(POS机端),用例开端2.体系提醒录入商品条目3.营业员录入顾客的商品条目4.体系显示商品总价钱5.体系提醒付款方法:B1:现金付款B2:信誉卡付款6.打印购物小票7.用例停止b)1. 发卖司理登录批量发卖治理界面,用例开端2. 体系提醒输入批量发卖对象的大客户名称3. 发卖司理输入批量发卖对象的大客户名称4. 体系提醒输入批量发卖商品条目5. 发卖司理输入批量发卖商品条目6. 体系提醒输入批量发卖商品数目7. 发卖司理输入批量发卖商品数目8. 体系显示商品总价钱9. 体系打印批量发卖报表10. 用例停止可选事宜流:B1:现金付款1.体系提醒输入接收顾客金额2.营业员输入接收顾客的金额3.体系显示应找金额4.返回主事宜流第6步B2:信誉卡付款1.体系提醒录入信誉卡2.营业员录入顾客的信誉卡3.体系做响应处理4.体系打印信誉卡付款确认单5.返回主事宜流第6步破例事宜流:a)1. 系一切计商品中可能须要进行装配或维修的商品2. 体系将统计成果传给超市治理体系之售后办事b)1. 系一切计各类售出商品数目2. 体系更新在架商品数目信息3. 系一切计需加货商品的信息4. 体系将需加货商品信息传给超市治理体系之仓储治理后置前提:无用例名称:治理体系之仓储治理相干运动者:供货商,仓储人员,超市治理体系之发卖治理扼要解释:仓储治理对商品的仓储进行治理,当商品在库数目不久不多时,购进对应供货商的商品入库.当超市治理体系之发卖治剃头送来在架数目少的商品信息时,商品出库.还将对在库的商品进行治理.前置前提:仓储人员已登录仓储治理界面主事宜流:1.仓储人员登录仓储治理界面,用例开端2.体系提醒选择治理项目:入库,库内治理,出库3.仓储人员选择治理项目:B1:选择入库B2:选择库内治理B3:选择出库4.体系做出相干处理5.用例停止可选事宜流:B1:选择入库1.体系提醒录入入库商品信息2.仓储人员录入入库商品信息3.体系提醒输入入库商品存放地点4.仓储人员输入入库商品存放地点5.体系更新相干入库商品的库内商品信息6.体系打印商品入库报表7.返回主事宜流第5步B2:选择库内治理1.体系提醒录入库内治理商品条目2.仓储人员录入库内治理商品条目3.体系提醒输入库内治理具体项目4.仓储人员输入库内治理具体项目5.体系更新响应库内商品信息6.体系打印商品库内治理报表7.返回主事宜流第5步B3:选择出库1.体系提醒录入出库商品信息2.仓储人员录入出库商品信息3.体系显示出库商品存放地点4.体系更新相干出库商品的库内商品信息5.体系打印商品出库报表6.返回主事宜流第5步后置前提:无用例名称:超市治理体系之售后办事相干运动者:顾客,售后人员,供货商,超市治理体系之人事治理,超市治理体系之售后治理扼要解释:售后办事分为退货,装配,维修,投诉四项.接收顾客反馈的退货,装配,维修,投诉信息以及超市治理体系之发卖治理传过来的装配,维修信息,做相干处理,打印出相干报表.另对于投诉中的对商品的投诉体系还将把投诉信息传给供货商,以作为供货商改良他们商品的一个参考.对于投诉中的对职工的投诉体系还将把投诉信息传给超市治理体系之人事治理,以作为人事考察的一个参考.前置前提:售后人员已登录售后办事界面主事宜流:1.售后人员登录售后办事界面,用例开端2.体系提醒选择售后办事具体项目:退货,装配,维修,投诉3.售后人员选择售后办事的具体项目:B1:选择退货B2:选择装配B3:选择维修B4:选择投诉4.体系做相干处理5.用例停止可选事宜流:B1:选择退货1.体系提醒录入退货商品信息2.售后人员录入顾客要退货色的商品信息3.体系打印退货商品报表4.返回主事宜流第5步B2:选择装配1.体系显示统计自顾客要乞降超市治理体系之发卖治理的装配请求2.体系提醒选择一项具体装配请求3.售后人员选择一项具体装配请求4.体系提醒输入具体商品装配安插5.售后人员输入具体商品装配安插6.体系打印装配报表7.返回主事宜流第5步B3:选择维修1.体系显示统计自顾客要乞降超市治理体系之发卖治理的维修请求2.体系提醒选择一项具体维修请求3.售后人员选择一项具体维修请求4.体系提醒输入具体商品维修安插5.售后人员输入具体商品维修安插6.体系打印维修报表7.返回主事宜流第5步B4:选择投诉1.体系提醒选择投诉具体项目:对商品的投诉,对职工的投诉2.售后人员选择投诉的具体项目:B5:选择对商品的投诉B6:选择对职工的投诉3.体系做出相干处理4.返回主事宜流第5步B5:选择对商品的投诉1.体系显示录入投诉商品的相干内容2.售后人员根据顾客投诉录入投诉商品的内容3.体系根据投诉的商品信息告诉供货商投诉内容4.体系打印对商品的投诉的报表5.返回主事宜流第5步B6:选择对职工的投诉1.体系显示输入投诉职工的相干内容2.售后人员根据顾客投诉输入投诉职工的内容3.体系将投诉内容传给超市治理体系之人事治理4.体系打印对职工的投诉的报表5.返回主事宜流第5步后置前提:无2类图2.1 什么是类图类图(Class diagram)是显示了模子的静态构造,特殊是模子中消失的类.类的内部构造以及它们与其他类的关系等.类图不显示临时性信息.类图(Class diagram)由很多(静态)解释性的模子元素(例如类.包和它们之间的关系,这些元素和它们的内容互相衔接)构成.类图可以组织在(并且属于)包中,仅显示特定包中的相干内容.2.2 类图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
父用例
子用例
关系—参与者与参与者之间
泛化关系
Customer
Personal
Company
用例的粒度
用例的粒度指用例所包含的系统服务或功能单元 的多少。用例的粒度越大,用例包含的功能越多, 反义包含的功能越少。 例:学生管理系统中维护学生信息用例图如下:
维护学生信息
管理员
添加学生信息
管理员
•用例描述了系统的功能需求,是系统的 一组动作序列的描述。 •用例的本质是用户与计算机之间的一次 交互作用。
识别用例
执行者使用这个系统达到什么目标?
语法测试:【执行者】使用系统来【用例】
识别用例
——有意义的目标
识别用例
——业务语言而非技术语言
识别用例
——用户观点而非系统观点
用户观点
系统观点
识别用例
参与者(Actor)
定义:参与者是指系统以外的、需要使用系统 或与系统交互的东西,包括人、设备、外部系 统等。通过系统边界与系统进行有意义交互。 参与者未必是人,可以是设备、外部系统等。 一个参与者可以执行多个用例,一个用例也可 以由多个参与者使用。 参与者并不是系统的一部分, 尽管在模型中会使用参与者。
7、ATM系统记录事务到日志文件;
用例描述分析
Use Case: Buy Something 参与者:Customer 主事件流: 1、系统显示ID和密码窗口; 2、顾客键入ID和密码,然后按OK键; 3、系统验证顾客ID和密码,并显示个人信息窗口; 4、顾客键入姓名、街道地址、城市、邮政编码、电话号码,然 后按OK键; 5、系统验证用户是否为老顾客; 6、系统显示可以卖的商品列表; 7、顾客在准备购买的商品图片上单击,并在图片旁边输入要购 买的数量。选购商品完毕后按Done按钮; 8、系统通过库存系统验证要购买的商品是否有足够库存; …….(后续描述省略)
问题:只描述了ATM系统的行为,而没有描述参与者的行为
ATM取款(修改后的描述)
Use Case:取款 Actor:储户 主事件流: 1、通过读卡机,储户插入ATM卡; 2、ATM系统从卡上读取银行ID、帐号、加密密码、并用主银行系统 验证银行ID和帐号; 3、储户按“取款”按钮,ATM系统根据上面读出的卡上加密密码, 对密码进行验证; 4、储户按“快速取款”按钮,并键统通知主银行系统,传递储户帐号和取款数量,并接收返 回的确认信息和储户帐户余额; 6、ATM系统输出现金、ATM卡和显示帐户余额的收据;
修改学生信息
删除学生信息
主要内容
基本概念:Use case、Actor、Scenario
Use case间的关系
Use Case 分析技术
案例讲解
用例的描述
没有描述的Use Case就像是一本书的目录 从用例的定义也可以看出,用例是一个“文 字描述序列”,是“动作序列的说明”。 用例的描述是用例的主要部分,是后续的交 互图分析和类图分析必不可少的部分。
用例描述原则:尽可能写的“充分”,而不是追求写 的形式化、完整或漂亮。
书写用例文档
——路径交互步骤的描述 只书写“可观测”的 使用主动语句 句子必须以执行者或系统作为主语 每一句都要朝目标迈进 分支和循环 不要涉及界面细节
书写用例文档
——路径交互步骤的描述(1)
系统通过ADO建立数据库连接,传送SQL查 询语句,从“零件”表查询… 系统按照查询条件搜索零件 只书写“可观测”的
用例间的关系——包含关系
1)包含关系(include)
包含关系指两个用例之间的关系,其中一个用例(即 基本用例)的行为包含了另一个用例(即包含用例) 的行为。 包含关系中箭头的方向是从基本用例到包含用例。
<<include>>
基本用例
包含用例
用例间的关系——包含关系
本例中,用例“Check Credit” 检查输入的信用卡号 是否有效以及信用卡是否有足够的资金。
常见错误
只描述系统的行为,没有描述参与者的行为 只描述参与者的行为,没有描述系统的行为 在用例描述中就设定对用户界面设计的详细 要求 描述过于冗长
ATM取款案例
Use Case:取款 Actor:储户 主事件流:
1、储户插入ATM卡,并键入密码; 2、储户按“取款”按钮,并键入取款数目; 3、储户取走现金、ATM卡并拿走收据; 4、储户离开。
主要内容
基本概念:Use case、Actor、Scenario
Use case间的关系
Use Case 分析技术
案例讲解
案例1:ATM系统
建立一个具有基本功能的ATM机软件
客户可以存钱,取钱 客户可以查询帐户余额
客户可以修改密码
客户可以进行转帐
需求建模—用例图
建立用例图分为以下几个步骤:
修改密码
(from UseCases)
Use Case 特点
用例是代表系统中各个项目相关人员之间就系统的行为 所达成的契约。它有如下一些特点: 用例描述了用户提出的一些可见的需求,对应一个具 体的用户目标; 用例从使用系统的角度描述系统中的信息,即站在系 统外部察看系统功能,而不考虑系统内部对该功能的 具体实现形式; 用例是对系统行为的动态描述,属于UML的动态建模 部分; 用例并不是系统的全部需求, 用例描述的只是功能性方面的需求。
操作员,管理员 操作员,管理员 操作员,管理员
领料员,退料员,操作员,管理员,供应商
谁负责维护、管理并保持系统正常运行 管理员 系统需要应付哪些硬件设备 系统需要和哪些外部系统交互 生产系统, 供应商系统 谁对系统运行产生的结果感兴趣 操作员,管理员,领料员,退料员
库存管理系统的参与者
2、用例(Use Case)
问题:对用户界面的描述过于详细,对于需求文档来说, 详细的用户描述对获取需求并无帮助。
改进后的描述
Use Case:Buy Something 参与者:Customer 主事件流: 1、顾客使用ID和密码进入系统; 2、系统验证顾客身份; 3、顾客提供姓名、地址、电话号码; 4、系统验证顾客是否为老顾客; 5、顾客选择要购买的商品和数量; 6、系统通过库存系统验证要购买的商品是否 有足够库存 „„.(后续描述省略)
问题:只描述了参与者的动作序列,而没有描述系统的行为
ATM取款案例
Use Case:取款 Actor:储户 主事件流:
1、ATM系统获得ATM卡和密码; 2、设置事物类型为取款; 3、ATM系统获取要提取的现金数目; 4、验证帐户上是否有足够储蓄金额; 5、输出现金、数据和ATM卡; 6、系统复位。
脚本(scenario)
例:在“订货”这个用例中,包含着几个相关 的脚本。一个是订货进行顺利的脚本;一个是 相关货源不足的脚本;一个是涉及购货者的信 用卡被拒的脚本等。这些脚本的组合构成了一 个用例。
主要内容
基本概念:Use case、Actor、Scenario
Use case间的关系
Use Case 分析技术
面向对象的UML设计基础
用例与用例图 翟亚红
计算机工程系
主要内容
基本概念:Use case、Actor、Scenario
Use case间的关系
Use Case 分析技术
案例讲解
Use Case 定义
定义1:用例是对一个活动者(actor)使用 系统的一项功能时所进行的交互过程的一 个文字描述序列。 定义2:用例是系统、子系统或类和外部的 参与者(actor)交互的动作序列的说明, 包括可选的动作序列和会出现异常的动作 序列。
用例的描述
一般说来,用例采用自然语言描述参与 者与系统进行交互时双方的行为,不追求 形式化的语言表达(面向不同人员)。
用例描述的内容
用例的目标 用例是怎么启动的 参与者和用例之间的消息是如何传送的 用例中除了主路径外,其他路径是什么 用例结束后的系统状态 其他需要描述的内容
确定参与者(Actors) 创建用例(Use Case) 创 建 参 与 者 ( Actors ) — 用 例 ( Use Case)关系图
参与者
系统用户 与本系统交互的其他系统
确定参与者(Actor)
创建用例(Use Case)
用例是参与者启动的,基于这样的考虑, ATM 系统根据业务流程大致可以分为以下的几个用例:
<<include>> 预订座位 <<include>> 检查座位信息
安排座位
用例间的关系——扩展关系
2)扩展关系(extend) 扩展关系允许一个用例(可选)扩展另一个用 例的功能。
扩展只能发生在基本用例的序列中某个特定的 点上,这个点叫扩展点。 扩展关系中基本用例本身是完整的。
在扩展关系中,箭头的方向是从扩展用例到基 本用例。
书写用例文档
——路径交互步骤的描述(4)
执行者填写姓名 执行者填写电话 执行者填写联系地址 执行者提交 ××××× 每一句话都要朝目标迈进
书写用例文档
——路径交互步骤的描述(5)
分支:放到扩展路径
循环:直接描述
分支和循环
书写用例文档
——路径交互步骤的描述(6)
会员从下拉框中选择类别 会员在相应文本框中输入查询条件 会员点击“确定”按钮 …… 不要涉及到界面细节
用例间的关系——扩展关系