根据RUP过程,这一步的目的是找出分析类的候选范围,这些类合作起来,可以完成用例的所有行为。因为我们还没有任何类,所以我们的主要目标就是找出在汽车租借系统中的所有分析类。
这就引出了一个有趣而又重要的问题:什么是分析类?有两种答案。首先,一个业务级别的分析类是业务领域中的一个要素,与实现技术无关。例如,银行系统中的银行顾客、帐户、帐号交易等等。而且它与系统的实现无关,不管是一个新的电子商务系统,或是一个从19世纪80年代就开始使用的借贷系统。
其次,RUP过程把这个定义扩展出三种不同的分析类:实体类、控制类和边界类。RUP过程中的实体类大致上相当于前面提到的,业务级别的分析类。控制类与业务过程相关,它们控制整个业务的流程和执行次序。它通常控制一个用例中业务过程的执行。边界类在系统与外界之间,为它们交换各种信息与事件。边界类处理软件系统的输入与输出。
根据我在面向对象技术和面向对象建模方面的教学经验,我发现开发人员总是很快的从RUP过程中的实体类、控制类和边界类这个环节,进入下一个设计环节, 没有对问题进行足够的分析。实际上,显然控制类和边界类都是面向技术实现的类,而不是面向业务的类。它们都是在设计阶段所定义的系统设计模型中的一部分,而不是分析模型。因此,在这一步,我将会侧重于业务方面的,与技术无关的分析类。在讨论设计的时候再讨论涉及技术的部分。请一直记住,搜索与业务相关的类,是在RUP过程中的结构分析部分进行的,如果你的项目采用了RUP过程的话。
让我们回顾一下,用例描述的是行为,也就是系统为用户提供了什么样的服务。在用例描述中,没有涉及面向对象的内容,但是这些描述是用来找出系统中的对象和类的。可以在很多地方,用各种各样的方法来寻找类:
领域的常识只是
前一个类似的系统
企业模型或供参照的体系结构
CRC (类/职责/合作关系)方法
词汇表
数据挖掘
寻找类的一个简单的方法就是语法分析,下面我将加以说明。我们只要找出我们的需求中的名词, 这些名词(有些是形容词+名词):
一些是类。
一些会成为类的属性。
一些对我们的系统无关紧要。
找出预约汽车的用例描述中的这些名词(跳过代名词,如“他”),如下:
用例:为顾客预约汽车(补充)
文章来源于领测软件测试网 https://www.ltesting.net/