需求分析——UML用例图
网上书店需求分析(UML,图表,Rose)
![网上书店需求分析(UML,图表,Rose)](https://img.taocdn.com/s3/m/3d4e3c2d915f804d2b16c197.png)
5.6 构件图.......................................................................................................... 17 5.7 部署图.......................................................................................................... 17
5.2 时序图.......................................................................................................... 10 5.2.1 顾客订购时序图.............................................................................. 10 5.2.2 顾客删除订单时序图...................................................................... 11 5.2.3 管理员处理订单时序图.................................................................. 12
2.系统总体的功能需求 .......................3
2.1 用户接口模块................................................................................................ 3 2.2 管理员接口模块............................................................................................ 3 2.3 数据服务模块................................................................................................ 3
利用用例图描述用户需求
![利用用例图描述用户需求](https://img.taocdn.com/s3/m/e83015a471fe910ef12df87a.png)
(4)用例的命名
每个用例应有唯一的名称 命名的方式:用例通常用动词 + 名词短语来命名---如:登录系统
请见文档中的说明 书写用例的模板格式
四、UML中的用例图
1、用例图 (1)什么是用例图
提供用例图的目的之 一是下面的描述
用例图是一种图形化的工具,它用简单的图形元素表示出 系统的参与者、用例以及它们之间的联系
(2)用例图中的参与者和用例之间的通信
参与者和用例之间的使用关系,在用例图中表示为一个 带箭头的直线
二、UML中的用例之间的关系
1、用例之间的关系
主要体现在纵向方面的层次化关系和横向方面的关联性和 包含
(1)用例的层次化(纵向方面)
按照抽象层次,用例可以划分为系统层(最高层)、子系 统层(可以再细分)和对象类层(最低层)。 系统层用例图:描述系统提供的全部主要的功能或服务。 子系统层用例图:描述某一子系统所应该提供的服务,它 的外部交互者可以是其他的子系统或高一层的参与者。 对象类层的用例图描述对象类提供的功能片或操作,它的 外部交互者可以是其他对象类或高一层活动者。
(3)用例图的组成元素
在一个用例图中,一般主要 包含有 系统边界 参与者 用例和用例关系 (泛化、使用和扩展等 三种形式)。
这在前面已经 加以说明过
2、用例图的主要作用 (1)面向用户
可以实现从用户角度来描述系统所应该具有的功能,同时 并能够指出各功能的操作者; 也能够显示出与系统进行交互的外部参与者及其使用方式。 (2)面向开发者 表示正在构造的新系统应该具有的功能 同时对已经构造完毕的系统,则反映了系统能够完成什么 样的功能
UML之用例图
![UML之用例图](https://img.taocdn.com/s3/m/e1015c19773231126edb6f1aff00bed5b9f373b1.png)
UML之⽤例图⽤例图⽤例图是⽤来描述系统功能的技术,表⽰⼀个系统中⽤例与参与者及其关系的图,主要⽤于需求分析阶段。
⽤例图的基本组成元素:参与者、⽤例、元素之间的关系。
⽤例图使⽤范围:需求分析1.捕获需求。
描述功能需求、⾏为需求(系统要完成什么任务)2.分析需求。
明确类和对象,建⽴之间的关系⽤例图的基本概念1、⽤例图是表⽰⼀个系统中⽤例与参与者关系之间的图。
它描述了系统中相关的⽤户和系统对不同⽤户提供的功能和服务。
2、⽤例图相当于从⽤户的视⾓来描述和建模整个系统,分析系统的功能与⾏为。
3、⽤例图中的主要元素包括参与者、⽤例以及元素之间的关系。
此外,⽤例图还可以包括注解和约束,也可以使⽤包将图中的元素组合成模块。
如:参与者的概念1、参与者是与系统主体交互的外部实体的类元,描述了⼀个或⼀组与系统产⽣交互的外部⽤户或外部事物。
2、参与者位于系统边界之外,⽽不是系统的⼀部分。
3、参与者是从现实世界中抽象出来的⼀种形式,却不⼀定确切对应的现实中的某个特定对象。
符号:如何确定参与者?通过对参与者进⾏关注和分析,我们可以把重点放在如何与系统交互这⼀问题上,便于进⼀步确定系统的边界。
另外,参与者也决定了系统需求的完整性。
确定参与者可以从以下⼏个⾓度来考虑:1)为系统提供输⼊的⼈或事物2)接收系统输出的⼈或事物3)需要接⼊的第三⽅系统或设备4)时间是否会触发某些事件5)负责⽀持或维护系统中信息的⼈系统中的参与者⼀般可以分为四类:主要业务参与者:主要从⽤例的执⾏中获得好处的关联⼈员。
主要系统参与者:直接同系统交互以发起或触发业务或系统事件的关联⼈员。
外部服务参与者:响应来⾃⽤例的请求的关联⼈员。
外部接收参与者:从⽤例中接收某些价值或输出的⾮主要的关联⼈员。
参与者的泛化关系当系统中的⼏个参与者既扮演⾃⾝的⾓⾊,同时也有更⼀般化的⾓⾊时,可以通过建⽴泛化关系来进⾏描述。
与类相似,⽗参与者可以是抽象的,即不能创建⼀个⽗参与者的直接实例,这就要求属于抽象⽗参与者的外部对象⼀定能够属于其⼦参与者之⼀。
UML系统需求分析建模实例包括业务建模
![UML系统需求分析建模实例包括业务建模](https://img.taocdn.com/s3/m/f6f88a8e9fc3d5bbfd0a79563c1ec5da51e2d614.png)
UML系统需求分析建模实例包括业务建模一、背景某公司为了提高内部管理效率,决定开发一个在线人事管理系统。
该系统主要目标是帮助公司员工和管理人员更好地进行人事管理工作,包括员工信息管理、薪资管理、请假管理等功能。
二、业务建模1. 参与者- 员工:具有查看和修改个人信息的权限。
- 人事部门:负责对员工信息进行管理、薪资管理和请假管理。
- 管理员:拥有所有功能权限。
2. 用例图用例图展示了系统的功能视图,包括主要的参与者和他们的交互。
(图1:用例图)3. 用例描述- 查看个人信息:员工可以查看自己的个人信息,包括个人资料、联系方式和工作历史。
- 修改个人信息:员工可以修改自己的个人信息,如联系方式和地址等。
- 管理员登陆:管理员可以使用管理员账号登陆系统。
- 管理员工信息:管理员可以查看和修改员工信息,包括添加员工、删除员工和修改员工信息等。
- 薪资管理:人事部门可以查看和修改员工薪资信息。
- 请假管理:人事部门可以管理员工的请假信息,包括请假申请和批准等。
4. 状态图状态图描述了系统中的一个对象或参与者的状态变化。
(图2:状态图)5. 类图类图展示了系统中的类以及它们之间的关联。
(图3:类图)三、系统分析1. 需求分析对于查看个人信息的用例,系统应该提供一个界面给员工输入自己的员工号,然后显示员工的个人信息。
对于修改个人信息的用例,系统应该提供一个界面给员工输入员工号和想修改的信息,然后保存修改后的信息。
对于管理员登陆的用例,系统应该提供一个界面给管理员输入管理员账号和密码进行登陆。
对于管理员工信息的用例,系统应该提供一个界面给管理员查看和修改员工信息,包括添加、删除和修改员工信息。
对于薪资管理的用例,系统应该提供一个界面给人事部门查看和修改员工薪资信息。
对于请假管理的用例,系统应该提供一个界面给人事部门管理员工的请假信息,包括请假申请和批准。
2. 非功能性需求- 界面友好:系统应该提供直观、易用的界面来满足用户的需求。
基于UML的外卖订餐系统需求分析
![基于UML的外卖订餐系统需求分析](https://img.taocdn.com/s3/m/489a16144028915f814dc272.png)
基于UML的外卖订餐系统需求分析目录1. 系统概况 (3)2. 系统需求 (4)2.1. 功能性需求 (4)2.2. 非功能性需求 (4)3. 系统开发时间管理 (5)4. 系统开发可行性分析 (5)4.1. 技术的可行性: (6)4.2. 经济的可行性: (6)4.3. 操作的可行性: (6)5. 系统开发项目人员安排 (6)6. 基于UML的系统分析 (7)6.1. 用户用例图 (7)6.2. 系统主要用例 (11)7 总结 (29)图表目录表格 1 项目人员安排表 (7)表格 2 顾客管理账户用例描述 (11)表格 3 找回密码用例描述 (12)表格 4 顾客订餐用例描述 (15)表格 5 送货员送餐用例描述 (16)表格 6 顾客查看历史订单用例描述 (16)表格 7 主管查看历史订单用例描述 (17)表格 8 菜品评论与主管查看用例描述 (21)表格 9 主管管理菜品描述 (24)表格 10 系统管理员用例描述 (26)图 1 外卖订餐系统结构图1 3图 2 外卖订餐系统结构图2 4 图 3 系统开发甘特图 5 图 4 外卖订餐系统用户用例图8 图 5 顾客用例图9 图 6 主管用例图10 图 7 送餐员用例图10 图 8 系统员用例图11 图 9 账户管理活动图13 图 10 顾客注册顺序图14 图 11 顾客登录管理账户顺序14 图 12 顾客订餐活动图18 图 13 送餐员送餐活动图19 图 14 主管查看历史订单活动图20 图 15 顾客订餐顺序图20 图 16 送餐员送餐顺序图21 图 17 顾客评论活动图22 图 18 主管查看评论活动图23 图 19 顾客评论顺序图23 图 20 主管管理菜品活动图25 图 21 主管管理菜品顺序图26 图 22 系统管理员活动图28 图 23 系统管理员顺序图291.系统概况外卖订单系统是服务于餐馆外卖活动的一个简单的信息系统,开发该系统主要希望实现扩大本餐馆宣传、缩短顾客订餐时间、减少订餐错误、便于订单统计分析等,最终达到扩大餐馆影响力、提高餐馆外卖业务效率、实现一定程度的决策支持的目的。
UML用例图和需求分析的关系深度解析
![UML用例图和需求分析的关系深度解析](https://img.taocdn.com/s3/m/9bb286ed250c844769eae009581b6bd97e19bc47.png)
UML用例图和需求分析的关系深度解析需求分析是软件开发过程中至关重要的一环,它的目的是明确和理解用户的需求,为软件设计和开发提供指导。
而UML(统一建模语言)用例图则是一种常用的需求分析工具,它能够帮助开发团队更好地理解用户需求,并将其转化为可执行的软件功能。
本文将深度解析UML用例图与需求分析之间的关系,探讨其在软件开发中的作用和应用。
首先,我们需要了解UML用例图的基本概念和结构。
UML用例图是一种图形化工具,用于描述系统与外部参与者之间的交互。
它由参与者(actors)和用例(use cases)两个主要元素组成。
参与者代表系统的外部用户、其他系统或设备,用例则表示系统所提供的功能或服务。
用例图通过参与者和用例之间的关系,展示了系统的功能和用户之间的交互过程。
在需求分析过程中,UML用例图起到了至关重要的作用。
首先,用例图帮助分析人员更好地理解用户需求。
通过与用户沟通和交流,分析人员能够识别出系统的参与者和用例,并将其绘制成用例图。
用例图能够直观地展示系统与用户之间的交互过程,帮助分析人员更好地理解用户的需求和期望。
其次,用例图能够帮助开发团队明确系统的功能和边界。
通过绘制用例图,开发团队可以清晰地了解系统提供的功能和服务,并确定系统的边界。
用例图可以帮助开发团队明确系统的功能范围,避免功能的重复或缺失,从而提高开发效率和软件质量。
此外,用例图还能够帮助开发团队进行系统的需求验证和验证。
通过用例图,开发团队可以将用户需求转化为可执行的软件功能,并进行需求验证和验证。
用例图能够帮助开发团队检查和验证系统的功能是否满足用户需求,以及系统的交互过程是否符合用户的期望。
通过用例图,开发团队可以及时发现和修复需求中的问题,提高软件的质量和用户满意度。
此外,用例图还能够帮助开发团队进行系统的需求管理和变更控制。
在软件开发过程中,用户需求往往会发生变化。
通过用例图,开发团队可以及时发现和识别需求的变化,并进行相应的管理和控制。
UML功能模型(用例图)
![UML功能模型(用例图)](https://img.taocdn.com/s3/m/73e80762f342336c1eb91a37f111f18583d00c80.png)
UML功能模型(⽤例图)在UML系统开发中有三个主要的模型:功能模型(从⽤户⾓度展⽰系统的功能,包括⽤例图)、对象模型(采⽤对象,属性,操作关联等概念展⽰系统的结构和基础,包括类图、对象图、包图)、动态模型(展⽰系统的内部⾏为,包括序列图,活动图,状态图)。
下⾯就说⼀说功能模型——⽤例图。
⽤例图是UML建模的⼀部分,也是UML⾥⾯最基础的部分,最主要的功能就是⽤来表达系统的功能性需求或⾏为。
⽤例图是由软件需求分析到最终实现的第⼀步,它描述⼈们如何使⽤⼀个系统,是尾部参与者所能观察到的系统功能模型图,该图呈现了⼀些参与者和⼀些⽤例,以及它们之间的关系,主要⽤于对系统、⼦系统或类的功能⾏为进⾏建模,⽤画图的⽅法来完成。
⽤例图展⽰了⽤例之间以及⽤例与参与者之间是怎样相互联系的。
⽤例图包含留个元素:参与者、⽤例、关联关系、包含关系、扩展关系、泛化关系。
参与者(Actor):系统外部的⼀个实体,参与⽤例执⾏过程,通过向系统输⼊或请求系统输⼊某些事件来触发系统的执⾏。
参与者的种类概括为三种:系统⽤户、与所建造的系统交互的其他系统以及⼀些可以运⾏的进程。
注意:参与者表⽰⼈和事物与系统发⽣交互时所扮演的⾓⾊,⽽不是特定的⼈或特定的事物;每个参与者需要⼀个具有业务⼀样的名字;⼀个⼈或事物在与系统交互时,可以同时或不同时扮演多个⾓⾊。
⽤例(Use Case):⽤例是对⼀个活动者使⽤系统的⼀项功能是所进⾏的交互过程的⼀个⽂字描述序列,是系统、⼦系统或类和尾部参与者交互动作序列的说明,包括可选的动作徐磊嗯哼会出现异常的动作序列。
⽤例是岱庙系统各种各个项⽬相关⼈员之间就系统的⾏为所达成的契约,软件开发过程是⽤例驱动的。
⽤例粒度(规模⼤⼩)。
关联关系(Association):表⽰参与者⽤例之间进⾏通信包含关系(Include):客户⽤例可以简单地包含提供者⽤例具有的⾏为,并把他所包含的⽤例⾏为作为⾃⾝⾏为的⼀部分。
调⽤⽤例执⾏到包含点,然后执⾏传递给被调⽤⽤例,当被调⽤⽤例完成时,控制在次返回调⽤⽤例。
UML用例图在需求分析中的应用指南
![UML用例图在需求分析中的应用指南](https://img.taocdn.com/s3/m/5c34ce81970590c69ec3d5bbfd0a79563c1ed404.png)
UML用例图在需求分析中的应用指南需求分析是软件开发过程中的重要环节,它的目标是明确系统的功能需求和用户需求,为后续的设计和开发工作提供基础。
在需求分析过程中,UML(统一建模语言)用例图是一种常用的工具,它可以帮助分析师和开发人员更好地理解系统的功能和用户行为。
本文将介绍UML用例图在需求分析中的应用指南,帮助读者更好地掌握这一工具。
1. 什么是UML用例图UML用例图是一种用于描述系统功能和用户行为的图形化工具。
它通过用例(Use Case)和参与者(Actor)之间的关系来展示系统的功能和用户与系统的交互。
用例图可以帮助分析师和开发人员更好地理解系统的需求,从而更好地设计和开发系统。
2. 用例图的基本元素用例图包含用例、参与者和关系三个基本元素。
用例表示系统的功能或者用户的行为,可以理解为一个功能模块或者一个用户操作。
参与者表示系统的用户,可以是人、其他系统或者外部设备。
关系表示用例和参与者之间的关系,常见的关系有关联关系、包含关系和扩展关系等。
3. 用例图的绘制步骤绘制用例图的步骤如下:(1)确定系统的功能和用户行为,将其抽象为用例。
(2)确定系统的参与者,包括人、其他系统和外部设备。
(3)绘制用例图的框架,将用例和参与者放置在合适的位置。
(4)使用关系连接用例和参与者,表示它们之间的关系。
(5)完善用例图,添加必要的细节和注释。
4. 用例图的应用场景用例图在需求分析中有广泛的应用场景,下面列举几个常见的应用场景:(1)明确系统的功能需求:用例图可以帮助分析师和开发人员明确系统的功能需求,从而更好地设计和开发系统。
(2)识别用户需求:用例图可以帮助分析师和开发人员更好地理解用户的需求,从而更好地满足用户的期望。
(3)辅助系统设计:用例图可以作为系统设计的基础,帮助设计人员更好地理解系统的功能和用户行为,从而更好地设计系统的架构和模块。
(4)沟通和交流:用例图可以作为沟通和交流的工具,帮助团队成员之间更好地理解系统需求和设计思路。
UML用例图的作用
![UML用例图的作用](https://img.taocdn.com/s3/m/927f3c40ac02de80d4d8d15abe23482fb4da0217.png)
UML⽤例图的作⽤⽤例图(Use Case Diagram)是由软件需求分析到最终实现的第⼀步,它描述⼈们如何使⽤⼀个系统。
⽤例视图显⽰谁是相关的⽤户、⽤户希望系统提供什么样的服务,以及⽤户需要为系统提供的服务,以便使系统的⽤户更容易理解这些元素的⽤途,也便于软件开发⼈员最终实现这些元素。
⽤例图在各种开发活动中被⼴泛的应⽤,但是它最常⽤来描述系统及⼦系统。
当⽤例视图在外部⽤户出现以前出现时,它捕获到系统、⼦系统或类的⾏为。
它将系统功能划分成对参与者(即系统的理想⽤户)有⽤的需求。
⽽交互部分被称作⽤例。
⽤例使⽤系统与⼀个或者多个参与者之间的⼀系列消息来描述系统中的交互。
⽤例图包含六个元素,分别是:参与者(Actor)、⽤例(Use Case)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。
⽤例图可⼀个包含注释和约束,还可⼀个包含包,⽤于将模型中的元素组合成更⼤的模块。
有时,可以将⽤例的实例引⼊到图中。
⽤例图模型如下所⽰,参与者⽤⼈形图标来标识,⽤例⽤椭圆来表⽰,连线表⽰它们之间的关系。
⼀.参与者(Actor)1.参与者的概念参与者是系统外部的⼀个实体,它以某种⽅式参与⽤例的执⾏过程。
参与者通过向系统输⼊或请求系统输⼊某些事件来触发系统的执⾏。
参与着由参与⽤例时所担当的⾓⾊来表⽰。
在UML中,参与者⽤名字写在下⾯的⼈形图标表⽰。
每个参与者可以参与⼀个或多个⽤例。
它通过交换信息与⽤例发⽣交互(因此也与⽤例所在的系统或类发⽣了交互),⽽参与者的内部实现与⽤例是不相关的,可以⽤⼀组定义其状态的属性充分的描述参与者。
参与者有三⼤类:系统⽤户、与所建造的系统交互的其它系统和⼀些可以运⾏的进程。
第⼀类参与者是真实的⼈,即⽤户,是最常见的参与者,⼏乎存在于每个系统中。
命名这类参与者时,应当按照业务⽽不是位置命名,因为⼀个⼈可能有很多业务。
2.设计模式常用的UML图分析(用例图、类图与时序图)
![2.设计模式常用的UML图分析(用例图、类图与时序图)](https://img.taocdn.com/s3/m/1989891dbb1aa8114431b90d6c85ec3a87c28b3f.png)
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.有头类、⾝体类与⼈类类三个类,则⼈类类中应包含头类及⾝体类这两个属性,则⼈类类与头类和⾝体的关系即为组合关系。
UML建模工具软件StarUML从入门到精通——软件系统需求分析中的UML用例图及其组成部件
![UML建模工具软件StarUML从入门到精通——软件系统需求分析中的UML用例图及其组成部件](https://img.taocdn.com/s3/m/31ff6a340066f5335a812147.png)
(3)所应该注意的问题
1)用例确定的只是与用户交流的目的,而不是交流的手 段。 因为,客户并不需要了解执行者、用例这些概念。用例能 告诉软件系统的开发团队“去向客户了解什么”(目的),不 能告诉软件系统的开发团队如何向客户去了解(手段); 2)获得用例的手段可以有很多种 文档研究、问卷调查、访谈、观察、研究竞争对手、开会、 原型、场景演示…,使用用例思维来指导这些交流手段,会使 交流更有目的,更加高效。
2)泛化关联包括用例之间及活动着之间的关联关系。例如, 修改员工资料和修改开发部员工资料就是用例的泛化关联。 3)泛化关联用空心三角箭头的实线表示:其方向从特殊指向 一般。
(4)用例的横向方面的包含关联 1)包含关联主要是指一个基本用例的行为包含了另一个用例 的行为,这种关联是一种依赖关系,被包含的用例不能独 立存在,只能作为包含它的用例的一部分。
11、UML用例模型的主要作用
(1)表示系统的需求 可以应用UML用例模型来开发一个精确的模型来表示软件系 统的需求,然后以这些用例为基础来推动软件系统开发的其它方 面。 (2)连接用户与软件系统需求 用例的作用就好象是项链上的一条线,它将所有的珍珠绑定 在一起。 用例在最终的用户和软件系统需求之间建立起一座桥梁。它 们可用来在功能需求和软件系统实现之间进行回溯。
3)时间 时间作为参与者时,经过一定时间触发系统的某个事件。 例如,ATM机可能每天午夜运行一些协调处理。 由于事件不在本系统的控制之内,因此也是本软件系统的参 与者。
3、某个“网上书店”和“在线网校”项目中的各个参与者 示例说明
(1)在“网上书店”项目中的参与者主要有用户和系统统管理 员,而管理员使用控制面板对系统和用户管理,也就是进行系统 设置,管理用户、用户组、权限,查看系统访问日志及用户使用 情况等的统计信息。 (2)在“在线网校”项目中的学校课程管理子系统中则有三个 参与者在不同的应用中互动。
UML各种图例—用例图、类图、状态图、包图、协作图、顺序图
![UML各种图例—用例图、类图、状态图、包图、协作图、顺序图](https://img.taocdn.com/s3/m/77b017c46137ee06eff918c4.png)
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.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包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.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
UML的需求图
![UML的需求图](https://img.taocdn.com/s3/m/9e0d8787c67da26925c52cc58bd63186bdeb9252.png)
UML的需求图UML是一种广泛应用于软件开发中的建模语言。
随着软件开发项目越来越复杂,更多的组织和团队使用UML来建模,以改善沟通、追踪需求和设计等方面的工作。
在UML中,需求分析是一个关键的步骤,它可以帮助确定软件的需求和功能,从而确保软件的准确性、一致性和安全性。
因此,在UML中,需求图也是一种非常重要的图形建模方法。
需求图的目标是捕捉系统的需求和场景。
它对应于软件需求工程的分析阶段,并且在需求分析过程中提供了一个综合的、直观的视图,以便团队可以更好地了解系统。
在UML中,需求图包括以下主要元素:1. 用例图用例图描述了系统的不同用户和组件之间的互动。
它显示了不同用例的功能和各种利益相关者之间的关系。
2. 活动图活动图描述了系统中涉及的各种活动和任务。
它显示了过程中的每个步骤,以及每个步骤的前提和后决条件。
3. 序列图序列图描述了系统中不同组件之间的交互。
它显示了这些交互的顺序和时间,并提供了对于消息传递的更加细致的描述。
4. 状态图状态图描述了一个组件或对象在其运行期间可能处于的各种状态。
它显示了不同状态之间的转换以及转换的条件。
需求图可以极大地帮助软件开发团队更好地理解系统中的不同部分以及它们之间的工作方式。
此外,它们还可以帮助团队确定系统中可能出现的问题。
例如,需要确定哪些功能尚未完成,以便团队可以更好地对其进行调整。
在正确使用需求图的过程中,需要给好每个元素的组织和标记以达到更好的可读性和理解性。
需要坚持使用标准记号和符号,以避免团队成员之间的矛盾。
总之,UML需求图是一种很好的工具,可以帮助软件开发人员更好地理解整个系统和不同部分的功能。
他们还可以帮助团队确定需要重新设计或调整的功能。
如今,UML已经变得越来越普遍,因为它可以减少以往出现的错误和问题,并帮助团队更加高效地处理软件开发过程中的各种任务。
UML九种图之用例图和类图
![UML九种图之用例图和类图](https://img.taocdn.com/s3/m/2f57086da36925c52cc58bd63186bceb19e8eda8.png)
UML九种图之⽤例图和类图前⾔近期写UML⽂档,看视频的时候感觉掌握的还能够,当真正写⽂档的时候才发现不是⼀件easy的事。
写⽂档⾃⼰⼜翻开⾃⼰的笔记看了⼀遍⼜⼀遍。
以下就给⼤家介绍⼀下我画的⼏张图:⽤例图1. ⽤例图的构成(⽤例,⾓⾊,关系)⽤例:指功能的描写叙述⾓⾊:触发起某种事件关系:⽤例图的关系(依赖,泛化,关联)2. ⽤例图的作⽤(1)⽤例视图是整个UML设计的关键,影响到整个UML设计的过程(2)⽤例模型驱动了需求分析后各个阶段的开发(3)⽤例模型⽤于需求分析阶段,表明了开发⼈员和⽤户针对需求达成的某种共识注意⼏个keyword:开发⼈员,⽤户,共同商讨达成某种共识3.设计原则将系统看做⿊盒⼦,从⽤户⾓度理解系统,不须要考虑某个功能是怎样实现的。
仅仅须要考虑系统由谁来运⾏和怎样交互和运⾏。
以下是我画的⽤例图:以⽤户的权限为基础画出来的。
类图1.类图的构成类、接⼝、协作、关系、包2.类的构成2.类图的作⽤类图⼀般在具体设计过程中出现,主要⽤来描写叙述系统中各个模块中类之间的关系,包含类或者类与接⼝的继承关系,类之间的依赖、聚合等关系。
通过类图,就能实际的把系统中的各个类,即对象描写叙述清楚,下⼀步就是依照这个具体的设计编码了。
3.类图的设计Use case——>class(要点,抽象名词得到类)——>确定类的属性和⽅法——>属性是静态⾏为描写叙述,⽅法是动态⾏为的描写叙述——>正确表达类与类之间的关系以下是我对机房收费系统设计的类图,理解的不是⾮常清楚,可定存在诸多问题,希望⼤家积极指正。
以上是我看完UML之后对⽤例图和类图的理解,感觉理解的不是⾮常清楚,若有什么问题希望⼤家积极指正。
UML用例图介绍
![UML用例图介绍](https://img.taocdn.com/s3/m/ef992526df80d4d8d15abe23482fb4daa58d1dbc.png)
UML用例图介绍目录1、UML用例图概述 (1)2、用例图怎么使用? (1)3、UML用例图的目的 (2)4、如何画用例图? (3)1、UML用例图概述用例图捕捉了模拟系统中的动态行为,并且描述了用户、需求以及系统功能单元之间的关系。
用例图展示了一个外部用户能够观察到的系统功能模型图。
用例图由主角,用例和它们之间的关系组成。
2、用例图怎么使用?要了解一个系统的动态,我们需要使用不同类型的图表。
用例图就是其中之一,其具体目的是收集系统的的需求和参与者。
用例图指定系统的事件和他们的流向。
但从未用例图描述了他们是如何实现的。
可以被想象成一个黑盒子,只有输入,输出和黑盒子的功能被称为用例图。
在这些图中使用的设计在一个非常高的水平。
那么这种高层次的设计高雅,一遍又一遍完善使系统得到一个完整实用的图片。
一个结构良好的用例,还介绍了前置条件,后置条件和例外。
而这些多余的元素在执行测试时被用来制造测试的情况下。
用例都不是正向和反向工程,但他们仍然使用略有不同的方式。
同样是真实的逆向工程。
仍用例图的使用方式不同,使其逆向工程的一个候选。
在正向工程用例图是用来做测试案例和逆向工程中的使用情况下是用来准备从现有的应用程序的需求细节。
所以下面的地方使用用例图:2.1.需求分析和高水平的设计。
2.2.模拟系统的上下文。
2.3.逆向工程。
2.4.Forward engineering.3、UML用例图的目的用例图的目的是捕捉到一个系统的动态方面。
用例图是用来收集系统的要求,包括内部和外部的影响。
这些要求大多是设计要求。
所以,分析一个系统时要收集其功能用例和确定参与者。
简单来说,用例图的目的如下:3.1.用例图用来收集系统的要求。
3.2.用例图用于获取系统的外观图。
3.3.用例图识别外部和内部因素影响系统。
3.4.用例图显示要求之间的相互作用是参与者。
4、如何画用例图?用例图被认为是高层次的需求分析系统。
因此,当系统的要求,分析被捕获在用例的功能。
需求分析——UML用例图PPT课件
![需求分析——UML用例图PPT课件](https://img.taocdn.com/s3/m/b398c5957fd5360cbb1adb1b.png)
第32页/共84页
要点:用例止于系统边界
描述交互,而不是内在的系统活动
-33-
第33页/共84页
要点:有意义的目标
设定查询条件
会员
选择零件
会员
检索零件
-34-
第34页/共84页
要点:结果值由系统生成
出纳员
吃饭
系统需要处理的,由系统生成
-35-
第35页/共84页
要点:业务语言而非技术语言
• “非程序员杂志”第26到30期UML工具一览,列出了约129个UML开发工具
-7-
第7页/共84页
内容安排
• UML概述 • 理解需求 • 需求,难在何处? • 以用例为中心组织需求 • 基于用例的需求分析过程
-8-
第8页/共84页
认识问题
分析问题
解决问题
以开发者的身份站在开发团队的 角度分析问题
Booch93 OMT-2
统一 化
Booch91 OMT-1 其他方法 OOSE
分散
的
Grady Booch Jim Rumbaugh
第4页/共84页
Ivar Jacobson各 部
分
-4-
UML发展现状
• 目前通用的是UML 1.x版 • 主要UML 1.3、UML 1.4 • 2003年3月正式发布UML 1.5
-24-
第24页/共84页
相关术语
场景:是用来描述用户和系统之间交互的顺序的步骤 用例:是为了达到某一用户目标而组合在一起的一组场景
用例图:用来显示在系统(或其它实体)内的用例与系统参与者之间的关系
用例模型:是系统既定功能及系统环境的模型,并作为客户和开发人员之间的契 约。用例模型用作分析、设计和测试活动的基本输入。
UML用例图中的用例规约与需求分析技巧
![UML用例图中的用例规约与需求分析技巧](https://img.taocdn.com/s3/m/5eee75addbef5ef7ba0d4a7302768e9951e76e0a.png)
UML用例图中的用例规约与需求分析技巧UML(Unified Modeling Language)用例图是一种常用的需求分析工具,它能够清晰地描述系统的功能需求和用户与系统之间的交互。
用例规约是用例图中的一个重要组成部分,它用于详细描述每个用例的前置条件、后置条件、基本流程和可选流程等。
在进行需求分析时,正确编写用例规约是至关重要的。
本文将介绍UML用例图中的用例规约与需求分析技巧。
首先,用例规约中的前置条件是指在执行用例之前必须满足的条件。
在编写前置条件时,需要考虑到系统的状态和环境。
例如,对于一个在线购物系统的用例,前置条件可以是用户已经登录并且购物车中有商品。
通过明确前置条件,可以确保用例的执行是可行的。
其次,用例规约中的后置条件是指在执行用例之后系统应该达到的状态。
后置条件可以是系统状态的改变,也可以是系统对外部事件的响应。
例如,对于一个银行系统的用例,后置条件可以是用户账户余额减少了相应的金额。
通过明确后置条件,可以帮助开发人员理解用例的执行结果。
接下来,用例规约中的基本流程是指用例的主要执行路径。
基本流程应该包含用例的主要步骤和相应的用户与系统之间的交互。
在编写基本流程时,需要注意步骤的顺序和合理性。
可以使用动词来描述用户的操作,使用名词来描述系统的响应。
例如,对于一个注册用户的用例,基本流程可以包括用户输入个人信息、系统验证信息的有效性、系统保存用户信息等步骤。
此外,用例规约中还可以包含可选流程,用于描述用例的扩展或异常情况。
可选流程可以是用户的选择、系统的判断或外部事件的触发。
在编写可选流程时,需要考虑到各种可能的情况,并给出相应的处理步骤。
例如,对于一个在线预订酒店的用例,可选流程可以包括用户选择支付方式、系统检测到余额不足、用户选择其他支付方式等步骤。
在进行需求分析时,编写用例规约时需要注意以下几点技巧。
首先,用例规约应该具有可读性和易理解性。
可以使用简洁明了的语言,避免使用过于复杂的术语和缩写。
UML中的用例图和用户需求分析的关系探究
![UML中的用例图和用户需求分析的关系探究](https://img.taocdn.com/s3/m/44d64412e3bd960590c69ec3d5bbfd0a7956d528.png)
UML中的用例图和用户需求分析的关系探究在软件开发过程中,用户需求分析是至关重要的一步。
它帮助开发团队了解用户的期望和需求,为软件的设计和开发提供指导。
而在需求分析的过程中,用例图是一种常用的工具,用于描述系统与用户之间的交互关系。
本文将探究UML中的用例图与用户需求分析之间的关系。
首先,我们来了解一下用例图的基本概念。
用例图是一种UML(统一建模语言)的图示工具,用于描述系统的功能需求和用户之间的交互。
用例图由参与交互的角色(Actor)和用例(Use Case)组成。
角色代表系统的用户或其他外部实体,用例则表示系统的功能或操作。
用例图通过展示角色与用例之间的关系,帮助开发团队理解系统的功能需求,从而更好地满足用户的期望。
用户需求分析是在软件开发过程中的一个关键步骤。
它的目的是收集、分析和定义用户对软件系统的需求。
通过用户需求分析,开发团队可以了解用户的期望和需求,从而为软件的设计和开发提供指导。
用户需求分析通常包括需求收集、需求分析和需求定义三个阶段。
在需求收集阶段,开发团队与用户进行沟通,了解用户的期望和需求;在需求分析阶段,开发团队对收集到的需求进行分析,确定系统的功能和操作;在需求定义阶段,开发团队将需求转化为可执行的软件规格说明。
用例图在用户需求分析中扮演着重要的角色。
通过用例图,开发团队可以更好地理解用户的期望和需求。
用例图通过展示系统的功能和用户之间的交互关系,帮助开发团队把握系统的核心功能和操作。
用例图可以帮助开发团队识别系统的主要功能和操作,从而在设计和开发过程中更好地满足用户的期望。
用例图与用户需求分析之间的关系是相互促进的。
用户需求分析提供了用例图的基础,而用例图则帮助开发团队更好地理解用户的期望和需求。
通过用户需求分析,开发团队可以收集到系统的功能和操作需求,然后通过用例图将这些需求可视化。
用例图可以帮助开发团队更好地理解用户的期望和需求,从而在软件的设计和开发过程中提供指导。
UML用例图的需求分析与系统规约技巧
![UML用例图的需求分析与系统规约技巧](https://img.taocdn.com/s3/m/3f261dd00875f46527d3240c844769eae009a3a1.png)
UML用例图的需求分析与系统规约技巧UML(Unified Modeling Language)用例图是一种用于描述系统功能需求的工具,它能够帮助开发团队更好地理解和定义系统的需求,从而有效地进行系统规约。
本文将探讨UML用例图的需求分析与系统规约技巧。
一、需求分析需求分析是软件开发过程中的重要环节,它涉及到对系统需求的收集、分析和定义。
在使用UML用例图进行需求分析时,可以通过以下几个步骤来进行:1. 收集需求:与系统相关的各方(如用户、客户、开发团队等)交流,了解他们对系统的期望和需求。
可以通过面谈、问卷调查等方式进行需求收集。
2. 识别参与者:根据需求收集的结果,识别出与系统交互的各个参与者。
参与者可以是人、其他系统或外部实体。
3. 确定用例:根据参与者和他们与系统的交互,确定系统的各个用例。
用例是对系统功能的描述,它描述了系统在与参与者交互过程中所执行的操作。
4. 描述用例:对于每个用例,详细地描述它的功能和行为。
可以使用用例描述符或用例规约等方式来描述用例。
5. 确定用例之间的关系:分析用例之间的关系,如包含关系、扩展关系等。
这些关系能够帮助我们更好地理解系统功能的组成和复杂性。
二、系统规约系统规约是对系统需求的详细描述和定义,它包括了系统的功能、性能、界面、安全性等方面的规定。
在使用UML用例图进行系统规约时,可以采用以下几个技巧:1. 使用活动图:活动图是一种用于描述系统流程和行为的图表,它能够帮助我们更好地理解和规约系统的功能。
可以使用活动图来描述用例的执行流程和操作步骤。
2. 使用时序图:时序图是一种用于描述系统中对象之间交互的图表,它能够帮助我们更好地理解和规约系统的时序行为。
可以使用时序图来描述用例的执行时序和参与者之间的交互。
3. 使用约束:约束是对系统规约的限制和条件的描述,它能够帮助我们更好地定义系统的性能、安全性等方面的要求。
可以使用约束来描述系统的各种规定和限制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-30-
2.2 识别用例
关键词:价值 定义
用例实例是系统执行的一系列动作,这些动 作将生成特定参与者可观测的结果值 一个用例定义一组用例实例
简洁:参与者使用系统达到目标
-31-
识别用例:考勤卡系统
开发者:谁将使用这个应用程序? 客 户:所有用它来记录可记帐以及不可记帐的工时的雇员 …… Record Time 开发者:现在考勤卡应用程序是什么样的? 客 户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表 格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目 代码,横向是日期。雇员可以在每个条目上填写说明。 开发者:这个收费项目代码可以从什么地方得到? …… 开发者:谁来管理收费项目代码? Create Charge Code 客 户:嗯,必要的时候由我(业务经理)来添加这个代码。而每个经 理总会告诉他的下属应该填写什么。 ……
-11-
内容安排
UML概述 理解需求 需求,难在何处? 以用例为中心组织需求 基于用例的需求分析过程
-12-
需求:饮料问题
我要一瓶饮料… 差不多,但我要无糖饮料… 很好,不过我要绿茶的… 啊,没有大瓶的…
大瓶的无糖绿茶饮料
难 捕 获 , 易 变 !
-13-
需求:如此脆弱
获取需求的技巧
技巧
实地观察
描述
直接观察个人工作的情况,以发现现存的实践方式和问题
访谈
特定群体 调查 问卷调查 用户指导 原型制作
从个人处收集特定信息
对一组人员进行调查,以便了解工作态度和共同看法 收集详细数据和统计意义上比较重要的数据 让最终用户告诉你,他们是如何操作系统的 模拟一个无法直接测试的系统
-35-
要点:结果值由系统生成
出纳员
吃饭
系统需要处理的,由系统生成
-36-
要点:业务语言而非技术语言
用户词汇,而不是技术词汇
如:发票,商品,洗衣机 而不是:记录,字段,COM,C++等
-37-
要点:用户观点而非系统观点
订票 旅客 查看今日航班
处理订票
旅客 显示今日航班
用户观点
系统观点
-38-
-16-
内容安排
UML概述 理解需求 需求,难在何处? 以用例为中心组织需求 基于用例的需求分析过程
-17-
需求问题:对策
难捕获 从用户视角看问题
用例
易变 合理的结构
-18-
以用例为中心组织需求
性能 可用性
界面约束
可靠性
用例
硬件接口 …… 网络协议 业务规则
-19-
内容安排
-6-
UML 2.0
UML 9种图
类 图:类以及类之间的相互关系 对象图:对象以及对象之间相互关系 构件图:构件及其相互依赖关系 部署图:构件在各节点上的部署 顺序图:强调时间顺序的交互图 协作图:强调对象协作的交互图 状态图:类所经历的各种状态 活动图:对工作流建模 用例图:需求捕获,测试依据
UML概述 理解需求 需求,难在何处? 以用例为中心组织需求 基于用例的需求分析过程
-20-
基于用例的需求分析过程
1. 获取原始需求 2. 开发一个可以理解的需求
2.1 识别参与者 2.2 识别用例 2.3 构建用例图
3 详细、完整地描述需求
进行用例阐述
4.1 识别用例间的关系 4.2 对用例进行组织和分包
系统边界
有意义的交互 任何事物
人、外系统、外部因素、时间
-29-
识别参与者:考勤卡系统
开发者:谁将使用这个应用程序? 客 户:所有用它来记录可记帐以及不可记帐的工时的雇员 …… Employee 开发者:现在考勤卡应用程序是什么样的? 客 户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表 格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目 代码,横向是日期。雇员可以在每个条目上填写说明。 开发者:这个收费项目代码可以从什么地方得到? …… 开发者:谁来管理收费项目代码? Administrativ 客 户:嗯,必要的时候由我(业务经理)来添加这个代码。而每个经 e User 理总会告诉他的下属应该填写什么。 ……
-43-
用例粒度-4
如果确实是CRUD?
如果CRUD不涉及复杂的交互,一个用例“管理 ××”即可 不管是C、R、U、D,都是为了完成“管理”目 标 甚至很多种的基本数据管理都可以用一个用例表 示
用例要有路径,路径要有步骤;而这一 切都是可观测的 最常犯错误:粒度过细,陷入功能分解
过细的粒度,一般都会导致技术语言的描述, 而不再是业务语言
-41-
用例粒度-2
把步骤当用例
会员
<<include>>
输入用户名
会员
登录
验证用户名和密码
把系统活动当用例
<<include>> 建立数据库连接 <<include>> 查询订单 执行SQL语句
统计版本
行业知识 …
使用具有统计功能的应用程序来记录用户完成任务的方式
收集和整理行业中的法律、法规,用户所使用的规章制度、操 作规程等内容 ……
-23-
获取需求:考勤卡应用程序
初次访谈记录 开发者:谁将使用这个应用程序? 客 户:所有用它来记录可记帐以及不可记帐的工时的雇员 …… 开发者:现在考勤卡应用程序是什么样的? 客 户:每半个月就用一个Excel表格来记录。每个雇员都将通过他的表 格填好,然后用电子邮件发给我。这个表格相当标准:纵向是收费项目 代码,横向是日期。雇员可以在每个条目上填写说明。 开发者:这个收费项目代码可以从什么地方得到? …… 开发者:谁来管理收费项目代码? 客 户:嗯,必要的时候由我来添加这个代码。而每个经理总会告诉他 的下属应该填写什么。 ……
-26-
用例图元素
用例
<<extend>> <<include>>
扩展 包含 泛化 注释体 注释连接
参与者 系统边界 直接关联 关联
-27-
2.1 识别参与者
参与者,Actor
关键词:边界 参与者:在系统之外,透过系统边界与系统 进行有意义交互的任何事物
-28-
参与者要点
系统外
参与者代表在系统边界之外的真实事物,并 不是系统的成分 参与者透过系统边界直接与系统交互,参与 者的确定代表系统边界的确定
The UML is a language for
Visualizing Specifying Unified Modeling Language(统一建模语言)是对象管 Constructing 理组织( OMG)制定的一个通用的、可视化的建模语言标 准,可以用来可视化( visualize) 、描述(specify)、 Documenting
-42-
用例粒度-3
“四轮马车”
C(Create) R(Read) U(Update) D(Delete) 所有业务最终对会成为 CRUD? CRUD能为Actor提供价 值? CRUD掩盖业务,锐变成 关系数据库的建模:
增加用户
修改用户
管理员
查询用户
删除用户
“系统就是数据的增删 改查” 关心数据的存储和维护, 反而忽略了用户的目的
构造(construct)和文档化(document)软件密集型系 the artifacts of,又译制品) a software统的各种工件( artifacts
intensive system
-4-
UML诞生
1997.11.17 UML 1.1被OMG 接纳为标准
1997.9公布
UML 1.1
公 众 反 馈
1997.1公布
UML 1.0 合作伙伴 意见
工 业 化
1996.6和1996.10 UML 0.9&0.91 OOPSLA95 Unified Method 0.8 Booch93 OMT-2 Booch91 Grady Booch OMT-1 其他方法 Jim Rumbaugh OOSE
“非程序员杂志”第26到30期UML工具一 览,列出了约129个UML开发工具
-8-
内容安排
UML概述 理解需求 需求,难在何处? 以用例为中心组织需求 基于用例的需求分析过程
-9-
认识的角度分析问题 解决需求—面向对象设计 以用户的身份站在用户的 以开发者的身份站在用户 角度认识问题 的角度分析问题 获取需求—用例建模技术 分析需求—用例分析技术
-21-
4 重构用例模型
基于用例的需求分析过程
1. 获取原始需求 2. 开发一个可以理解的需求
2.1 识别参与者 2.2 识别用例 2.3 构建用例图
3. 详细、完整地描述需求
进行用例阐述
4.1 识别用例间的关系 4.2 对用例进行组织和分包
-22-
4. 重构用例模型
用例 VS. 功能
•呼叫某人 •传输/接收
•接听电话
•发送短信 •记住电话号码