QQ泡妞序列图上的参数名称对吗?
第五元素 2023-10-11 14:18
潘老师,这两个画圈的地方对吗?

还有,这里有“邮件附件”,是否可以改为“活动计划”呢?

UMLChina潘加宇
1. 删除好友(不可泡异性号)、删除好友(人妖恐龙号)是对的。
2. 可以改为“活动计划”。
但是,不能把责任改成“删除人妖恐龙号”、“发送活动计划”,这也是自测题考查的重点之一。
***********
背后的道理和编码类似,见下图:

序列图相当于描述系统运行时的“录像”,严格来说,序列图上的参数名称应该是实参的名称,即“不可泡异性号”、“活动计划”。
类图上定义该操作时,QQ这个业务实体可能有一个操作,删除好友(string 号码),当然,也可能“号码”会提炼成一个类,而不是用字符串。
但是,序列图上的参数显示为形参甚至类型,也是可以理解的,原因有:
(1)
我们画完消息后,如果不是单独给消息和参数命名,而是把它映射到实例的类元的一个已有操作,比如映射到下图这个“支付”操作:

①为类型,②为形参,③为实参。
如果③里面有内容,消息上显示的就是“支付(预付款)”;
如果③里面没有内容,缺省显示①,即“支付(decimal)”;
如果该序列图被设置为显示参数名而不是类型,那就显示②,即“支付(金额)”
(2)
准备画这条消息时,要映射的操作甚至类元都还不存在,画这条消息就是为了推导操作或者类元。
这时,思考是从类元的角度来思考的,消息参数往往会写成形参,即“支付(金额)”,这也是要建立的类元的操作的内容。
