用例图 (Use Case Diagram)
用例图主要在需求分析时使用。
用例图主要就是识别出参与者(Actor)与用例(Use Case)之间的关系。
用例往往用动宾结构或主谓结构进行命名。如支付账款、借书、还书、借书证维护(录入、删除、修改、查询)。
参与者之间存在泛化(继承)的关系。如普通账户是父参与者,注册用户是子参与者。
用例之间存在泛化(Generalization)、包含(Include)、扩展(Extend)的关系。泛化,如做交易是父用例,交易债券、交易股票和交易期权是子用例;包含,如许多用例在执行之前必须要进行登录,因此他们包含登录用例;扩展,如还书的时候可能还会超期罚款,因此罚款用例是还书用例的扩展。
包含关系和扩展关系都是特殊的依赖关系,因此都在虚线上方进行标注,包含关系标注<<include>>,依赖关系标注<<extend>>。依赖是指一个用例(基本用例)的行为包含了另一个用例,包含关系中叫做包含用例,箭头指向包含用例,扩展关系中叫做扩展用例,箭头指向基本用例。包含关系是指基本用例的行为必须要等包含用例的行为执行完毕后才能执行,扩展关系是指基本用例执行的过程中还可能执行扩展用例的行为。
用户可以浏览商品,在浏览商品的时候不一定购物,但是如果要购物了,就一定要先下订单。
确定好参与者和用例外,还要确定系统边界,就是区分出哪些是该系统的组成部分,哪些是系统外部,如参与者是属于系统外的。只有弄清楚了系统边界,才能更好地确定系统的参与者和用例,才能保证后续工作的正确性。
对每一个用例都要为其编写用例描述,只知道一个名称,而不知道具体内容,就不清楚这个用例会完成什么功能。
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)