1、Use Case的作用:
我个人认为Use Case仅仅用来反映用户需求,并且在对象分析过程中,能够起到一个查漏补缺的作用。但是使用“先确定Use Case,再指认对象”实在是一种愚蠢的方法(恕我直言)。我个人认为,指认对象使用Yourdon在《Objuect Oriented Analysis》中提到的使用CheckList的方法在实践中是比较实用的。我近来读到的几本书,也印证了我的想法。就我我个人在实践中的经验,使用“首先确定Use Case”策略,非常容易导致分析员滑入“功能分解”的泥沼。而且从Use Case来导出对象将导致拙劣的分析模型。
2、Use Case之间的关系:
UML 1.3中,Use Case之间的关系只有3种,Generalization,Include和Extend,国内出版的关于UML的中文书有两本,一本是《UML从入门到精通》(其实应该叫做Rose入门),一本是北航的《面向对象的可视化建模技术》,后一本书在这个方面起到了很坏的作用(前一本书我没有怎么看,大概也好不到哪里去),一是使用了比较老的UML标准,比如使用了Use关系,而且对于Extend和Generalization关系的描述也很混乱,很多人受到了误导(尤其是Extend关系)。我建议有条件的网友尽量去看英文原版的著作,比如“UML三剑客”的《Unified Modeling Language User Guide》或者直接去读UML1.3的规范。(而且Use Case之间的关系是用虚线+箭头表示的,直到Rose 2000对此都没有支持)
3、Actor和Use Case之间的关系:
在UML 1.3之中,Actor和Use Case之间的关系应该是没有箭头的。虽然规范中并没有明确禁止使用箭头,但是从字句中隐含的意义来看,应该是没有箭头的,而且规范中给出的示例是没有箭头的。我认识的很多人,想当然的认为Actor和Use Case之间的关系上的箭头标示信息流向或者主/被动关系,其实这个关系仅仅表示某个Actor参与了某个Use Case。