画收费UML图时,看到下图,忽然就不明白extend和include的区别了。
然后通过百度,了解了一下其区别。
【Extend】
中文意思是延伸,扩大。
比如A→B,如果说A延伸到了B,说明A自己也可以执行,有了B只是添加了一个新功能。
比如上图中产生的日结账单,其自身也是个完整功能。可如果用户想打印日结账单,那就得扩展一个打印的新功能。
日结账单是基用例,刷新是子用例,子用例“扩展”了基用例,所以虚线从子用例指向基用例。
【Include】
中文意思是包含。
还拿A→B做例子,如果说A包含B,说明A只有借助B才能实现功能,A不能独立执行。
写到这,发现上图中有了错误。因为图这样画,说明打印是不能单独执行的,可在软件中打印是能单独执行的。所以可以这样修改一下:
打印是基用例,打印预览和打印输出是子用例,打印包含打印预览和输出,所以虚线从基用例指向子用例。
【小结】
在查询中发现,似乎还有use实例和其对应,指的是平行用例。