用例分析建模
用例分析是一种简单方便的建模方法,基本过程是根据已有的用例进行分析,找到领域的模型类、属性以及模型之间的关联关系。因此,通过这种方式建模主要输入为用例。完整的用例编写需要耗费大量的时间,而且需要专业的培训,在现实的工作中我还从来没见过哪个项目有完整的用例,常见的就是需要的PRD,之前讨论了使用实例化需求来对PRD进行分析,得到业务规则,我们可以使用业务规则来代替用例。
方法步骤
找名词:我们可以简单把用例中的名词都列出来,这些名词会作为模型类或者属性的候选者
找动词:动词往往可以发现模型之间的关联关系
确定模型类与属性:从第一步中确定模型类与属性,主要在于判断哪些名词应该作为类,哪些作为属性;一般如果是单值名词(或者可以通过基本数据类型表示的)往往可以作为属性,或者一个名词只关联了一个概念的
确定模型的关联关系:通过动词来分析出模型之间的关联关系
整个步骤很简单,只需要找到用例中的名词、动词,然后集合场景分析即可。在内网上也看到过通过用例的主谓宾定状结构来分析的,方法会更精细一些。不过从分析过程来看,两种方式效果差不多,通过主谓宾定状来分析步骤会麻烦一些。
另外由于用例的不但完善也会推进模型的不断的完善,也可以通过额外的用例来对已有的模型进行验证与修正。
工作中的一个例子
最近在工作中遇到一个需求,需要调整收银台中支付宝支付方式的置灰规则,通过实例化需求分解之后业务规则如下:
当用户支付金额大于10w时,而且不在白名单内,将支付宝置灰;
当用户支付金额大于10w时,在白名单内,将支付宝不置灰;
当用户支付金额大于5w小于10w,不在人群内,将支付宝不置灰;
当用户支付金额大于5w小于10w,在人群内,不在白名单内,将支付宝置灰;
当用户支付金额大于5w小于10w,在人群内,在白名单内,将支付宝不置灰;
当用户支付金额小于5w,将支付宝不置灰;
1. 找名词:用户、支付金额、金额下限(大于5w)、金额下限(小于10w)、人群(白名单也是一种人群)、支付工具(支付宝)
2. 找动词:置灰、属于(在人群内)
3. 模型与属性:
模型:用户、支付工具、人群、置灰规则、咨询行为; 其中咨询行为是基于已有模型得来的(也可以参考业界已有模型),置灰规则是上面用例中的隐含主语
属性:金额上限、金额下限、支付金额
4. 确定关系:置灰说明规则是与支付方式关联;属于说明用户与人群有关联
最后得到的模型如下
上面得到的是问题域模型,在真正系统实现的是时候可以根据需要对模型进行适当的调整,例如将人群作为用户的属性进行表示等。