关闭

用例模型设计需要注意的几个问题

1142人阅读 评论(0) 收藏 举报
 

  什么样的用例模型是正确有效的呢? 很多人在用用例模型描述软件需求的时候都会有这样的困惑,下面就来阐述一下比较常见的问题。

一、     角色不仅仅指的是人

    首先,要强调的是角色不仅仅指的是人,任何需要和软件交互的其他系统和设备都是系统的角色。

   比如,一个软件系统需要从其他遗留系统中获取数据,那这个遗留系统就是这个软件系统的角色;再比如,软件系统运行过程中,时钟会在某个时刻产生提示或警报,那这个时钟也是一个角色。

二、  用例的粒度

    用例的粒度应该是一个功能模块吗?不是,功能模块在用例模型里面用包来表示。

    用例是一个产生可见的有价值的结果的最小功能。也就是说,用例不可以是一个功能碎片,例如,输入用户名,显然不能成为一个用例,因为它并没有产生任何有价值的结果,而验证用户身份,则属于一个用例,因为它的结果就是用户身份正确或不正确。

   对于粒度的最多的讨论可以说是“四轮马车”问题了。就是一个功能的添加、修改、查询,和删除是否都需要单独用一个用例来表示。其实这个问题可以灵活处理,根据软件的复杂情况来决定,如果你有太多的更重要的需求需要来描述,就没有必要就这些细节关注太多,如果你只需要关注某个用例,而且也有详细描述的必要的话,描述出来当然也没有问题。通常情况下,可以用扩展点的方式描述查询和修改的关系。

三、用例描述

     复杂的用例需要单独用一个文件来描述,主要是用例的前置条件、后置条件、基本事件流、扩展事件流,和用例的优先级等。

     简单的用例可以在用例图中用标签来描述。

     另外,活动图和顺序图也是详细描述流程和功能的有利工具。随着用例功能的不断细化,这两种图会发挥更大的作用。

四、用例之间的关系

    有人画用例图的时候,用一条线直接把两个用例连起来,也没有任何标注,这种关系的描述是错误的。

    用例之间的关系有包含、扩展,和通用化三种。

    包含通常是对某个功能的重用,多个用例都需要使用某部分功能,就把这个功能单独提炼出来,作为一个用例。

    扩展是可选的功能分支,也可以是个例外,他可能执行也可能不执行。

    通用化就是通常所说的继承关系,子用例是父用例的一个特例,并有他自己的特定功能。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:57779次
    • 积分:944
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    文章分类