用例是什么?

用例是什么?,第1张

用例,英文为use case,或译使用案例、用况,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。

在UML的文档中,Use Case的定义是:在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。

每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。编写用例时要避免使用技术术语,而应该用最终用户或者领域专家的语言。用例一般是由软件开发者和最终用户共同创作的。

Use Case 由以下元素组成:名称、简单描述、事件流、关系、活动图和状态图、Use Case 图、特殊需求、前条件、后条件。

扩展资料:

使用 use case 十大误区

1、系统的boundary 没有定义或经常改变;

2、从系统观点而不是actor观点来定义Use Case;

3、Actor的名称不一致;

4、Use Case 定义过多;

5、Use Case 和actor之间的关系象蜘蛛网一样错综复杂;

6、Use Case的说明太长;

7、Use Case的说明不清楚;

8、Use Case没有正确的描述功能需求;

9、用户无法理解Use Case;

10、Use Case 无法正常结束。

参考资料来源:百度百科—用例

用例是什么?其原始英文是usecase,直译过来就成了用例.这也是一个比较贴切的叫法了,从字面的直接理解就是使用的例子.另一种比较流行的定义是用例就是与使用者(actor)交互的,并且给使用者提供可观测的有意义的结果的一系列活动的集合. 这个定义还是比较费解的,笔者在众多应聘者中发现很多使用用例来做需求的系统分析员,有的已经使用了两年以上,但仍不能把握用例的本质,虽然他们号称精通UML. 最具普遍意义的理解错误是认为用例就是功能的划分和描述,认为一个用例就是一个功能点.在这种理解下,用例变成了仅仅是较早前需求中功能框图的翻版,很多人用用例来划分子系统,功能模块和功能点.如果这样,用例根本没有存在的必要.有意思的是,造成这种理解错误的相当一部分原因却是因为对OO思想的理解不够深入,本质上说,把用例当成功能点的系统分析员脑子里还是面向过程的那一套思想,虽然他们在使用OO的工具,OO的语言,号称在做面向对象的开发,但过程的影子还没有从他们脑子里彻底抹去. 如果用例不是功能的话,它是什么呢?从定义上说,能给使用者提供一个执行结果的活动,不就是功能吗?我的回答是:错!功能是计算机术语,它是用来描述计算机的,而非定义需求的术语.功能实际描述的是输入-->计算-->输出.这让你想到了什么?DFD图?这可是典型的面向过程分析模式.因此我说把用例当做功能点的分析员实际在做面向过程的分析. 而用例则不是计算机术语,UML除了在计算机行业中应用,它也经常被应用在其它行业中.用例是一种需求方法学,虽然软件危机和OO的发展促成了它的诞生并被完美的融合进了OO 体系,形成了 UML,但它实际上并不是软件行业的专用品.如果非要从功能的角度解释,那么用例可以解释为一系列完成一个特定目标的“功能”的组合,针对不同的应用场景,这些“功能”体现不同的组合方式.实际上,把用例解释为某个参与者(actor)要做的一件事可能更为合适.这样的一件事有以下几个特征: 一、这件事是相对独立的.这意味着它不需要与其它用例交互而独自完成参与者的目的.也就是说这件事从“功能”上说是完备的.读者可能会想到,用例之间不是也有关联关系吗?比如扩展,比如实现,比如继承,它看上去并不是独立的嘛.关于这个问题,笔者会在后续的文章里详细说明.这里稍微解释一下,用例之间的关系是分析过程的产物,而且这种关系一般的产生在概念层用例阶段和系统层用例阶段.对于业务用例,这个特征是很明显的. 二、这件事的执行结果对参与者来说是可观测的和有意义的.例如,系统会监控参与者在系统里的操作,并在参与者删除数据之前备份.虽然它是系统的一个必需组成部分,但它在需求阶段却不应该作为用例出现.因为这是一个后台进程,对参与者来说是不可观测的,它应该在系统用例分析阶段定义.又比如说,登录系统是一个有效的用例,但输入密码却不是.这是因为登录系统对参与者是有意义的,这样他可以获得身份认证和授权,但输入密码却是没有意义的,输入完了呢?有什么结果吗? 三、这件事必须由一个参与者发起.不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例.用例总是由一个参与者发起,并且满足特征二.例如从ATM 取钱是一个有效的用例,ATM吐钞却不是.因为ATM是不会无缘无故吐钞的,否则,我从此天天守在ATM旁,生活无忧矣. 四、这件事必然是以动宾短语形式出现的.即,这件事必须有一个动作和动作的受体.例如,喝水是一个有效的用例,而“喝”和“水”却不是.虽然生活常识告诉我们,在没有水的情况下人是不会做出喝这个动作的,水也必然是喝进去的,而不是滑进去的,但是笔者所见的很多用例中类似“计算”,“统计”,“报表”, “输出”,“录入”之类的并不在少数. 除去以上的特征,笔者觉得用例的含义还要更深些.首先,用例的背后是一种需求方法论.其核心是以参与者为中心(区别于以计算机系统为中心),从参与者的角度来描述他要做的日常工作(区别于以业务流程描述的方式),并分析这些日常工作之间是如何交互的(区别于数据流的描述方式).换句话说,用例分析的首要目标不是要弄清楚某项业务是如何一步一步完成的,而是要弄清楚有多少参与者?每个参与者都做什么?业务流程分析则是后续的工作了.其次,用例简直就是为OO而生的,其思想完美的符合OO.用例分析方法试图找到问题领域内所有相对独立的参与者和事件,并把业务流程当成是这些参与者和事件之间的交互结果(在UML用活动图或序列图来描述).因此,用例方法被吸纳到OO之后,UML得以以完备的形式出现,用例成为了真正的OO核心.在 RUP里,这种核心作用被发挥到极致,产生了用例驱动(usecase driven)的软件过程方法,在RUP里,软件生产的所有过程和产物都是围绕着用例形成的. 可以说,用例分析是OO的第一步.如果用例分析本身出了问题,对业务架构,软件架构的影响是很大的,将大大削弱OO的优势--复用、扩展.笔者认为软件复用可以分为三个层次,最低层次的复用是代码级复用,这是由OO语言特性提供支持的,例如继承,聚合,多态;较高层次的复用是组件级复用,这是由设计模式提供支持的,例如Factory模式, Builder模式;最高层次的复用则是服务级复用,这在很大程度上是由应用服务器和通讯协议来提供支持的,例如最近炒得火热的SOA(面向服务的应用)架构.用例分析的好坏也许对代码级和组件级的复用影响不太大,但对服务级的复用影响却是巨大的.笔者认为服务级复用是OO的最高境界,而结构良好的用例分析则是达到这一境界的基础. 观后感:原作者是从OO系统分析员的角度出发,本文值得我们软件测试员对测试用例的一个全新的认识.

一、主体不同

1、用例:是软件工程或系统工程中对系统如何反应外界请求的描述

2、用例图:是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

二、特点不同

1、用例:一个用例代表了系统的一个单一的目标。

2、用例图:由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。

三、作用不同

1、用例:用例将系统的功能范围分解成许多小的系统功能陈述。

2、用例图:主要的作用有三个:获取需求;指导测试;还可在整个过程中的其它工作流起到指导作用。

参考资料来源:百度百科-用例

参考资料来源:百度百科-用例图


欢迎分享,转载请注明来源:聚客百科

原文地址: http://juke.outofmemory.cn/pretty/2986287.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-02-20
下一篇 2023-02-20

发表评论

登录后才能评论

评论列表(0条)

保存