转自:umlchina yahoo讨论组
To: UMLChina@yahoogroups.com
From: "赵鹏" <zhaopeng@webservice.com.cn> Add to Address Book Add Mobile Alert
Date: Fri, 13 Jan 2006 12:49:01 +0800
Subject: 答复: 回复: [UMLChina] 开发一个dvd play er系统,用例到底应该如何划分呢
一般而言,一个用例就是参与者的一个目标,它是一个可观察到、可度量的过程。
对于参与者是一个在有限时间内可完成的一个过程。
如“播放碟片”,从不同角度看,就会有不同的解释。
从功能看,就是播放机上的一个按钮,是播放机的一个功能。
从目标看,对参与者是一个完整的过程,它包含一些列的功能(其中包括上面的功能),它是参与者的一个意图。
如果把“播放碟片”写成用例可能像如下的例子
播放碟片(仅作示例)
参与者:想看碟子的人
前置条件:播放机已经接通电源。
主要场景:
1、参与者打开播放机电源。
2、播放机点亮电源指示灯。
3、参与者打开碟片舱门。
4、播放机弹出舱门,指示灯闪烁。
5、参与者关闭舱门。
6、播放机确认舱门正确关闭,并确认碟片可以播放,显示碟片时间。
7、参与者播放碟片。
8、播放机按照碟片预设的流程播放。
扩展
3a、如果参与者连续发出关闭和打开舱门命令,播放机近当舱门打开后才接受最后一条指令。
3b、如果参与者发出其它指令,播放机将忽略。
5a、如果参与者连续发出关闭和打开舱门命令,播放机近当舱门关闭后才接受最后一条指令。
5b、如果参与者发出其它指令,播放机将忽略。
6a、碟片不可识别,播放机弹出碟片。
8a、参与者可以随时中止播放。
相关的用例可能还会包括:
一、用户从指定时间处开始播放。
二、用户回看播过的内容。
。。。。。。。
从上面的用例可以看到“播放碟片”即出现在用例这个层次,也出现在具体功能这个层次(本人觉得应该避免这种名次的混淆,此处仅作为示例)。
从指这样的用例可以分析和提炼出,一个播放机具体需要具有哪些系统特性,即可以得到一个功能列表,如你在问题中所提到的。
系统特性,可以用“系统可以做....”这样的语句来验证。
如,播放机可以播放碟片、播放机可以调到指定时间、播放机可以快进.............
--------------------------------------------------------------------------------
赵鹏
软件开发部
上海星移软件有限公司
MSN:dearzp@hotmail.com
Email:zhaopeng@webservice.com.cn
Biz Tel:021-54395480
more for www.webservice.com.cn
--------------------------------------------------------------------------------
发件人: UMLChina@yahoogroups.com [mailto:UMLChina@yahoogroups.com] 代表 周
发送时间: 2006年1月13日 12:15
收件人: UMLChina@yahoogroups.com
主题: 回复: [UMLChina] 开发一个dvd player系统,用例到底应该如何划分呢
如果说快进快退实现了用户定位影片的目的,可以作为单独的用例,那类似于“下一曲”“上一曲”以及搜索查找都可以做为单独的用例吗?
weijie xu <iam_xuwj@yahoo.com.cn> 写道: 用例的粒度大小是否合适,主要还是要看这个用例是否已经实现了对用户有价值的结果,或者实现了用户的某一个有价值的目标。对于"停止播放"来说,用户的真正目的并不是仅仅用DVD播放软件来停止播放DVD,停止播放单独存在对用户而言毫无意义,只能是作为播放DVD过程中的一个步骤。所以“停止播放”不能作为一个单独的用例,只能作为“播放DVD”这个用例中的一个步骤,并且是最后一步。“快进快退”则不同,它的存在对用户而言是有意义的,它实现了用户定位影片的目的,可以作为一个单独的用例存在。而“选时播放”则是一个比较特殊的播放用例,可以将“播放DVD”include进来,以实现重用和简化的目的。
一家之言,仅供参考。
iadomcn <iadomcn@yahoo.com.cn> 写道:
对于用例粒度的选择有点疑惑,
用户作为主要的参与者,以"播放DVD"作为用例,
如果仅仅只是这个用例似乎又包含太多的东西,如"停止播放","快进快退""
选时播放"等等,还是这些都可以单独作为用例呢
那样是不是又将用例划分的太小呢,用例之间的 关系将变得复杂起来
请教 到底应该怎样来划分用例呢