Put it into a Context!(写作中)

来源:互联网 发布:浪潮软件千股千评 编辑:程序博客网 时间:2024/05/21 01:50
2004年08月19日 00:08:00

Put it into a Context

图说用例粒度问题

作为一个用例技术的使用者,我想强调一下,本文的假设前提是:你已经非常清晰的认识到需求工作的重要性,并且清楚的了解我们需求工作中存在的问题,并且,对用例在需求工作中所起到的改进作用有一定的认知。

模式(patterns),是问题和解决方案的集,它是在特定环境下,对特定问题的比较优秀的解决方案。它比较重要的特点是,有一个通用的名称,作为我们交流的基石。

现在,用例基本上也快成为了一种模式了。因为,它是对在特定的环境下,对特定的需求问题的一个比较优秀的解决方案。^_^ (不是有人写了有些用例模式了吗?). 听到同事在争论一个用例还是两个用例的时候,满耳都是亲切。随着工作的深入,用例技术已经被我们放到了一个很高的层面。的确,用例这种技术背后,隐含着更多对问题的思考。

对于用例的粒度,真是令很多人头疼的问题。我今天参加umlchina的网络会议,也看出了这一点:很多人的发言主题是关于用例的粒度。据说,《掌握需求过程》这本书也提出了用例的粒度问题。我没有看过(估计很快就会去看它了^_^),这里,我先提出对于这个问题的我的理解。

问题

在许多的资料中,我们可以看到,用例分为两种:Business Use case Use Case两种,前者用于业务建模 ,后者用于系统建模,也就是说,他们的适用范围不同,但是用例格式是相同的。虽然有无数的数据和资料表明,业务建模是非常重要的,但是,我们的项目一般中,一般没有时间单独分出来做业务建模,并且,能在需求过程中有效整理系统模型的,也是比较少的。

RUP资料显示的做法是从业务建模的业务用例模型业务对象模型推导出系统建模的用例模型,这个过程看起来是顺理成章的,但是,如前所说,缺乏乏了业务建模,我们直接进行系统用例建模时,就会感到粒度难以掌握。

如何在这样的项目中使用用例技术进行需求分析

作为传统用例技术(Ivan)的演进,Alistair Cockburn在《编写有效用例中》除了补充用例中的契约定义外,还提出:同样是系统用例,也是分层的。按照他的说法,系统用例,基本分为:概要(系统)用例用户目标级(系统)用例子功能(系统)用例。我个人认为,对系统用例进行分层处理,也是该书的成功亮点之一,他打破了我们对单一系统用例的束缚,引发我们对目标层次的思考和表达。

那么,这会引出一个新的问题:我们应该关注系统用例的哪个层次(也是一个粒度的问题)

还有其他一些由粒度引发的相关问题:采用倒推法,让我们来思考,用例驱动的受益者,他们都需要从用例中得到什么?现在他们还有什么问题?如何能在我们需要保证的质量和有限的工作时间之间做一个最优化的平衡?

作为软件质量最佳保证条件之一,测试人员需要对我们的系统进行系统测试和集成测试(单元测试,我们放给了开发人员^_^)他们通常是不太了解业务的,而系统测试和集成测试需要测试人员模拟不同的登陆角色,进行整个系统流程的测试。.他们应该从什么时间介入软件开发过程?当然不应该是在你做设计的时候,在OO开发的设计阶段,类图和顺序图都出来了,那个时候,业务逻辑会分解到一个一个的类的方法中。(我这里不想区分概要设计和详细设计,我们越来越发现,传统的概要设计和详细设计工作在使用UP类的开发过程时,会变得让人很难受,我们建议设计由一批人来做,不要再区分开来。)

废话不多说,测试人员只能在需求过程介入.(如果按照迭代开发的要求,或许应该说是在Inception阶段就介入,但是,我们只看一个迭代中的Discipline.这样,

就可以跟传统的瀑布或者螺旋的生命周期模型对应起来,在这些模型中,需求过程永远是放在第一位的。),而且,他们拿到的需求说明书,必须包含了完整的系统流程和流程中的不同的登陆用户。

1 关注迭代模型中的一个迭代过程。

解决方案:

我的解决方案是:将用例放进上下文环境中。(Put use case into Context)

请注意,关于Context,有以下几个含义:

1 :是模式中所用的上下文环境含义,表示能够使用用例(模式)的特定环境。

2 :是用例的上下文环境,是使用用例技术要表述的特定业务环境

3 :是用例文本中的上下文环境,通常我们叫它用例的场景

我不想整理一个用例模式出来,所以第一个是玩笑话;用例的场景,有自己的命名,我也不想给它更改,所以,第三个也不是我们关注的。

对了,我们今天,主要是关注第二个含义: 用例要表述的特定业务环境



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=78604


原创粉丝点击