所在位置:答疑 - 内容 |
某本书上的一张序列图评点 |
贝贝 2019-8-24 10:56 潘老师,这个图是不是不太对。插卡,输入密码并不是ATM的职责? UMLChina潘加宇: 这种图用建模思维一挤压,脓包太多了。 问题一、几个生命线上的实例,抽象级别不一致。 ATM用户--系统(人肉系统) ATM--系统(非人肉系统) Bank的意思是银行,那是个组织,不应和系统并列,应该写清楚是和银行的哪个系统交互,可能是一个人肉系统,也可能是一个人肉系统。 问题二、责任大小不清 既然是系统之间的交互,责任就不能是插卡,而是系统之间交互的目标,例如"取现金"。 什么情况下可以在消息里写"插卡"? 情况1:分析序列图,这时,对应的实例是"储户界面",而不是"ATM" 情况2:决定使用序列图来表达ATM系统的需求。这种做法不推荐,但如果硬要这样做也不是不行。如果是这样,"插卡"是一个步骤是可以的,但要做以下修改: a、"ATM"三个字应该改为"系统",不需要出现系统的名字。 b、"银行系统"的自反消息“验证”属于目标系统能检测的范围之外,删掉。 问题三、责任主体不清 "提示输入密码"是ATM的责任,不是人的责任,如果要画,应该改为自己指自己。 问题四、返回消息的问题 a、能不画就不画 b、即使画,上面写的东西相当于调用的返回值,应该是一个名词,例如"验证结果",而不是一个动词。 问题五、执行者的名字 ATM的执行者叫"ATM用户","系统给谁用,给用户用呗"这种命名是没有经过任何思考得到的,没有价值,和"可乐卖给谁,卖给想喝可乐的人"、"该出哪张牌,出最该出的那张"一样,属于正确而无用的废话。 改名为领域的用语"储户"甚至"市民"、"白领"、"大妈"都要更好。
|