用例的正确概念-程序员宅基地

技术标签: 团队开发  uml diagram  visual paradigm  windows  

用例

用例是对用户如何在您的网站上执行任务的书面描述。它从用户的角度概述了系统响应请求时的行为。每个用例都表示为一系列简单的步骤,从用户的目标开始,到该目标实现时结束。

用例的好处

用例增加了价值,因为它们有助于解释系统应该如何运行,并且在此过程中,它们还有助于集思广益可能出现的问题。它们提供了目标列表,该列表可用于确定系统的成本和复杂性。然后,项目团队可以协商哪些功能成为需求 并被构建。

包括哪些用例 不包括哪些用例
  • 谁在使用该网站
  • 用户想要做什么
  • 用户的目标
  • 用户完成特定任务所采取的步骤
  • 网站应如何响应操作
  • 特定于实现的语言
  • 有关用户界面或屏幕的详细信息。
 

用例的元素

根据您想要或需要获得的深度和复杂程度,用例描述了以下元素的组合:

  • 演员——执行某种行为的任何人或任何事物(谁正在使用系统)
  • 利益相关者——对讨论中的系统行为有既得利益的人或事(SUD)
  • 主要参与者——发起与系统交互以实现目标的利益相关者
  • 前提条件——在用例运行之前和之后必须为真或发生的事情。
  • 触发器——这是导致用例启动的事件。
  • 主要成功场景[基本流程] – 没有任何问题的用例。
  • 替代路径 [替代流程] – 这些路径是主题的变体。当系统级别出现问题时会发生这些异常。

如何编写用例

以易于理解的叙述方式编写用例中的步骤。Kenworthy (1997) 概述了以下步骤:

  1. 确定谁将使用该网站。
  2. 选择其中一位用户。
  3. 定义用户想要在网站上做什么。用户在网站上所做的每一件事都会成为一个用例。
  4. 对于每个用例,确定该用户使用该站点时的正常事件过程。
  5. 在用例描述中描述基础课程。根据用户做什么以及系统响应用户应该知道的内容来描述它。
  6. 描述基本课程时,考虑事件的替代课程并将其添加以“扩展”用例。
  7. 寻找用例之间的共同点。提取这些并将它们记为常见的课程用例。
  8. 对所有其他用户重复步骤 2 到 7。

示例用例

下面是三个复杂程度不断提高的用例的示例。出于我们的目的,我们将它们定义为简单、中量级和重量级的洗衣用例。在每种类型的用例中,您都会看到:

  • 管家在星期三洗衣服
  • 她清洗每一个负载。
  • 她擦干每一个负载。
  • 她折叠某些物品。
  • 她熨烫一些物品。
  • 她扔掉某些物品。

简单的洗衣用例

用例 1 洗衣服
演员 管家
基本流程 每周三,管家到洗衣房报到。她整理那里的衣物。然后她清洗每个负载。她擦干每一个负载。她折叠需要折叠的物品。她熨烫并挂起起皱的物品。她扔掉任何不可挽回地收缩、弄脏或烧焦的衣物。

中量级洗衣用例

基本流程

用例 1 洗衣服
演员 管家
每周三,管家到洗衣房报到。她整理那里的衣物。然后她清洗每个负载。她擦干每一个负载。她折叠需要折叠的物品。她扔掉任何不可挽回地收缩、弄脏或烧焦的衣物。
替代流程 1 如果她注意到某物起皱,她会将其熨烫,然后将其挂在衣架上。
替代流程 2 如果她注意到某物仍然很脏,她会重新清洗。
替代流程 3 如果她注意到某物缩小了,她就会把它扔掉。

重量级洗衣用例

用例 1 管家洗衣服
演员 管家
用例概述 现在是星期三,洗衣房里有衣服。管家对其进行分类,然后继续清洗每个负载。她从干衣机中取出干洗的衣服时折叠起来。她熨烫那些需要熨烫的物品。
学科领域 国内
演员 管家
扳机 脏衣服在星期三被运送到洗衣房。
前提条件 1 今天是星期三
前提条件 2 洗衣房里有洗衣房。

基本流程:洗衣服

描述 这个场景描述了只需要分拣、清洗和折叠的情况。这是主要的成功场景。
1 管家整理衣物。
2 管家清洗每个负载。
3 管家擦干每个负载。
4 管家确认衣物不需要熨烫、干净且没有缩水。
5 管家确认衣物可折叠。
6 管家折叠洗衣项目
7 管家这样做,直到没有更多要折叠的衣物
终止结果 洗衣店干净且折叠

备选流程 4A:衣物需要熨烫。

描述 此场景描述了在折叠之前或代替折叠需要熨烫一件或多件物品的情况
4A1 管家验证衣物是否需要熨烫且干净且未缩水
4A2 管家熨烫衣物
4A3 管家把衣物放在衣架上
终止结果 需要熨烫的衣物被熨烫并挂起。

备选流程 4B:衣物脏了。

描述 此场景描述了衣物第一次洗涤时未清洁的情况。
4B1 管家确认衣物不干净。
4B2 管家重新洗衣服
终止结果 脏衣服被重新洗涤。

替代流程 4C:洗衣项目缩小。

描述 此场景描述了衣物收缩的情况。
4C1 管家确认衣物缩水
4C2 管家处理衣物。
终止结果 洗衣项目不再存在。

备选流程 5A:衣物需要衣架。

描述 此场景描述了衣物需要悬挂而不是折叠的情况。
5A1 管家确认衣物需要悬挂。
5A2 管家把衣物放在衣架上。
终止结果 需要挂的衣物挂了。

发布条件:所有衣物清洁并折叠或挂起。

商业规则:

  • 洗衣只能在星期三进行。
  • 所有熨烫的衣物都挂在衣架上
  • 任何被不可挽回地弄脏、皱缩、烧焦等的衣物都会被扔掉。

通过示例学习更多用例建模

广播系统

自动柜员机

使用刻板印象构建用例

使用系统边界表示多个项目

网上考试系统

Passenger Service

软件开发管理

停车场系统

银行自动柜员机

飞机场

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chktsang/article/details/122682289

智能推荐

fprintf用法解析-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏26次。int fprintf ( FILE * stream, const char * format, ... );描述:写格式化的数据流将格式指向的C字符串写入流中。 如果格式包含格式说明符(以%开头的子序列),则格式化后的其他参数将被格式化并插入结果字符串中,替换其各自的说明符。在格式参数之后,函数至少需要格式指定的附加参数。参数:stream指向标识输出流的FIL_fprintf

Hibernate4不自动建表_hibernate 4 自动创建 表-程序员宅基地

文章浏览阅读940次。 hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.hbm2ddl.auto=create hibernate.show_sql=true h_hibernate 4 自动创建 表

MAC下检查是否安装command line tools 工具_怎么查看mac有没有已安装command-line-tool-程序员宅基地

文章浏览阅读1.6w次。怎样判断「Command Line Tools」是否已经安装了呢?由 Sean.Lv 发布于 2013年10月26日 无人欣赏。升级到OS X Mavericks和Xcode5之后迷茫了,不知道「Command Line Tools」装了没?是否需要单独安装?猜你喜欢:怎样判断「Command Line Tools」是否已经安装了呢?_怎么查看mac有没有已安装command-line-tool

vue-baidu-map路书实现轨迹回放_bml-lushu-程序员宅基地

文章浏览阅读4.1k次,点赞2次,收藏7次。通过vue-baidu-map中路书来实现的,bml-lushu是用来还原行进轨迹的组件。_bml-lushu

SeetaFace2 测试_seetanet-程序员宅基地

文章浏览阅读4.5k次。核心网络 SeetaNetc++版,开源,是动态库,应该无源码有模型侧脸时关键点完全不对了,同时检测人脸有误检i7 1070 gpu 18ms,关键点 几乎0mscpu几乎一样,最快的还是ncnn的mtcnn,效果还更好。路径:SeetaFace2用cmake gui生成就可以。https://github.com/jacke121/SeetaFace2..._seetanet

[linux下]理解Semaphore及其用法详解_ngx.semaphore详解-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏18次。2009-05-12 13:13Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semapho_ngx.semaphore详解

随便推点

联想危险!74 岁的创始人柳传志站了出来-程序员宅基地

文章浏览阅读5.1k次。
 

 

 
 
 点击上方“CSDN”,选择“置顶公众号”关键时刻,第一时间送达中兴危机之时,76 岁的创始人侯为贵携..._联想出事博客

java awt_为AWT的机器人创建DSL-程序员宅基地

文章浏览阅读91次。java awt Java SDK附带了java.awt.Robot类,该类允许键盘和鼠标输入的自动化以及屏幕捕获的创建。 当您要编写一个模拟用户输入的小型测试应用程序时,或者只想自动化一些重复文本的输入时,此功能非常有用。 但是您不想每次都编写一个完整的Java应用程序。 另一方面,ANTLR是解析器生成器,使我们能够创建“特定于域的语言”(DSL)。 借助ANTLR,我们可以开发一个简单的..._createscreencapture的4个参数

关于Python的WEB开发框架的介绍_关于python web-程序员宅基地

文章浏览阅读5.1k次。一、DjangoDjango Django is oriented to programmers who deal mainly with content. The makers of Django are from the newspaper business. They say that they were often asked to implement certain features on their web site with tight deadlines. So they wrote the_关于python web

关于Oracle 01122,01110,01207的错误和解决-程序员宅基地

文章浏览阅读175次。windows xp,数据库oracle 10.2.0。1没有备份,基本上是默认安装,好像还不是归档模式症状:sqlplus只有sysdba用户能进去,其他用户进去一概报:ora-01033:oracle正在初始化或关闭而且sy..._ora-01110: 数据文件 1: 'c:\users\administrator\desktop\oradata\orcl\system01

osx 10.6.8_Apple推出OSX 10.10 Yosemite,iOS 8-程序员宅基地

文章浏览阅读258次。osx 10.6.8Apple has today announced the details of the next iterations of its desktop and mobile operating systems, Mac OSX 10.10 and iOS 8, in the keynote at its annual Worldwide Developer Conference..._macos 10.6.8原版

jQuery EasyUI+ajax+datagrid 实现table数据刷新_easyui ready函数和ajax-程序员宅基地

文章浏览阅读9.1k次,点赞2次,收藏17次。一、问题引入 日常开发中jQuery EasyUI的使用使页面展示table变得异常方便,特别使用datagrid组件。但使用ajax异步请求刷新table数据反填datagrid时,存在数据无法重新加载问题,本文皆在于解决这一问题二、具体实现1.加载JS/** * 客户信息JS */$(document).ready(function(){ //初始载入数据 loadData();..._easyui ready函数和ajax