软件方法(下)分析和设计第8章连载[20210518更新]>>
οゞ浪***ゞο 2016/4/18 23:08:20
潘老师,请教一个关于"系统"的问题。
我现在的疑惑在于,如何划分系统。因为现在的系统大多是分布式的,并且研究对象可能有多个。
举个例子:在京东网购物,可能就下单系统、运营系统、支付系统、物流系统、报表系统等多个系统。
下单系统的研究对象是买家人群,运营系统的研究对象是京东内部运营人员、支付系统是对下单系统的支撑、物流系统的研究对象是快递小哥人群、报表系统的研究对象是ceo。
那么我的理解业务序列图有2种画法。
1.只画京东网购物系统,所有业务执行者、业务工人、业务实体都和这个京东网购物系统打交道。
2.业务执行者、业务工业和业务实体(下单系统、运营系统、支付系统、物流系统、报表系统)结合起来画流程图。
问题1:如果是采用2,这些系统的命名又是如何得到的呢?
问题2:在整个建模过程中,建模对象可能有多个,需要按研究对象不同建多个ea项目么?
问题3:另外一个分析序列图的问题,因为现在的系统都是分布式的。一种场景是:执行者请求UI边界类执行xx操作,边界类请求某Controller控制类处理。
这个Controller控制类只是转发请求,组装数据,调用另外一个或多个soa服务接口。
那么对于这个系统用例的分析序列图,他的交互顺序是否是如下的:执行者->UI边界类->某Controller控制类->服务代理实体类->XX执行者接口边界类->YY实体类。是否正确?
问题4:对于问题3的问题,Controller控制类所在的系统,和soa服务所在的系统,是应该画在一个系统里面,还是定义2个系统,把控制类所在的web应用作为借口服务所在系统的执行者?
οゞ浪***ゞο 2016/4/18 23:08:36
文字有点长和啰嗦,谢谢潘老师O(∩_∩)O~
UMLChina5 7:20:05
问题1:这些系统的命名很多是不正确的,实际上可能就一个系统,下单、支付、报表是系统上面的一些功能。系统像一个大的对象,封装一些信息,对外提供一些服务。A系统调用B系统的服务,那么这两个系统的分割可能是存在的。如果A直接去读B里面的数据,实际上B是不存在的,这个数据也不属于B(没有封装)。
问题2:模型以【你当前要研究的系统】命名,一切都要从如何得到【你当前要研究的系统】出发来建模。"按研究对象不同建多个ea项目"是不存在的。你想想,如果现状只有人肉系统,没有任何电脑系统,【你当前要研究的系统】是流程中引入的第一个软件系统,你还有这样的问题吗?
问题3-4:【你当前要研究的系统】是什么,把责任边界理清楚