UML软件开发与建模工具用例模型
什么是UML?
该对象管理组织(OMG)规范规定:
“统一建模语言(UML)是一种图形化语言,用于可视化,指定,构造和记录软件密集型系统的工件。UML提供了一种标准的方式来编写系统蓝图,包括业务流程和系统功能以及具体内容,例如编程语言语句,数据库模式和可重用的软件组件。”
这里要注意的重要一点是,UML是用于指定的“语言”,而不是方法或过程。UML用于定义软件系统。详细说明系统中的工件,进行文档记录和构建-这是编写蓝图的语言。可以以多种方式使用UML以支持软件开发方法(例如Rational Unified Process)-但是它本身并未指定该方法或过程。
UML为以下领域定义了符号和语义:
- 用户交互或用例模型-描述系统与用户之间的边界和交互。在某些方面与需求模型相对应。
- 交互或通信模型-描述系统中的对象如何相互交互以完成工作。
- 状态或动态模型-状态图描述了类随时间推移所采用的状态或条件。活动图描述了系统将要实现的工作流程。
- 该逻辑或类模型-描述类和对象,这将弥补系统。
- 物理组件模型-描述组成系统的软件(有时是硬件组件)。
- 在物理部署模型-描述物理架构和组件对硬件架构的部署。
UML还定义了扩展机制,用于扩展UML以满足特殊需求(例如,业务流程建模扩展)。
本教程的第2部分将详细介绍如何使用UML定义和构建实际系统。
SPARX系统用例模型
用例模型描述了新系统的建议功能。用例代表用户(人或机器)与系统之间交互的离散单元。此交互是有意义的工作的单个单元,例如创建帐户或查看帐户详细信息。
每个用例都描述了将在建议的系统中构建的功能,该功能可以包括另一个用例的功能或以自己的行为扩展另一个用例。
![ç¨ä¾-ç»å½](https://sparxsystems.com/images/screenshots/UCLogin.gif)
用例描述通常包括:
- 描述用例的一般注释和注释。
- 需求-用例必须提供给最终用户的东西的正式功能需求,例如<更新订单的能力>。这些与结构化方法中的功能规范相对应,并且构成了用例执行某些操作或为系统提供某些价值的契约。
- 约束-用例所依据的正式规则和限制,定义了可以做什么和不能做什么。这些包括:
运行用例之前必须已经发生或已经具备的前提条件;例如,<创建订单>必须先于<修改订单>
用例完成后必须满足的后置条件;例如,<订单已修改且一致>
在用例运行期间始终必须始终为真的不变量;例如,订单必须始终具有客户编号。
- 方案–对执行用例所采取的步骤或用例实例期间发生的事件流的正式顺序描述。这些可以包括多种方案,以适应特殊情况和替代处理路径。这些通常以文本形式创建,并且对应于序列图的文本表示形式。
- 场景图-描述工作流程的序列图;与场景类似,但以图形方式描绘。
- 其他属性,例如实施阶段,版本号,复杂性等级,构造型和状态。
参与者
用例通常与“参与者”有关,“参与者”是使用或与系统交互以执行有助于他们实现目标的有意义的工作的人或机器实体。参与者可以访问的用例集定义了他们在系统中的总体角色以及他们的行动范围。
![æ¼å](https://sparxsystems.com/images/screenshots/Actor.gif)
包含和扩展用例之间的关系
一个用例可以包括另一个用例的功能,作为其正常处理的一部分。通常,假定每次运行基本路径时都会调用包含的用例。例如,在修改所选订单之前列出一组可供选择的客户订单时,每次运行<修改订单>用例时,都会包括<列表订单>用例。
一个用例可以包含在一个或多个其他用例中,因此通过将常见行为分解为多次使用的用例,有助于减少功能的重复。
一个用例可以扩展另一种用例的行为,通常在遇到特殊情况时。例如,如果用户在修改特定类型的客户订单之前必须获得更高权限的批准,则<获取批准>用例可以选择扩展常规的<修改订单>用例。
顺序图
顺序图提供了对象交互作用的图形表示。这些通常显示用户或演员,以及在执行用例时与之交互的对象和组件。一个序列图通常表示单个用例“场景”或事件流。
序列图是记录使用情况的好方法,既可以在分析中尽早捕获所需的对象,又可以在设计后期验证对象的使用。这些图显示了从一个对象到另一个对象的消息流,因此与类/对象支持的方法和事件相对应。
以下序列图示例显示了左侧的用户或参与者启动了与用例场景相对应的事件和消息流。在对象之间传递的消息在最终模型中成为类操作。
![顺åºå¾](https://sparxsystems.com/images/screenshots/Sequence.gif)
实施图
用例是对系统在构建时将具有的功能的正式描述。实现图通常与用例相关联,以记录哪些设计元素(例如,组件和类)在新系统中实现用例功能。这为将实际构建系统的系统设计人员,客户和团队提供了高度的可追溯性。组件或类链接到的用例列表记录了组件必须实现的最低功能。
![æ¾å¤§å¾](https://sparxsystems.com/images/screenshots/Implement.gif)
上面的示例显示,用例“登录”实现了正式要求“ 1.01登录网站”。它还显示了“业务逻辑”组件和“ ASP页”组件实现了部分或全部“登录”功能。进一步的改进是将“登录”屏幕(一个网页)显示为实现“登录”用例。这些实现或实现链接定义了从正式需求到用例到组件和屏幕的可追溯性。
SPARX系统动态模型
动态模型用于表达和建模系统随时间的行为。它包括对活动图,状态图,序列图和扩展(包括 业务流程建模)的支持。
顺序图
顺序图用于显示系统内用户,屏幕,对象和实体之间的交互。它提供了对象之间随时间传递的消息的顺序映射。通常,这些图放置在模型中的用例下,以说明用例场景-用户将如何与系统交互以及内部将发生什么事情以完成工作。通常,对象使用特殊的构造型图标表示,如以下示例所示。使用用户界面图标显示标记为登录屏幕的对象。标有SecurityManager的对象使用Controller图标显示。使用实体图标显示标记为用户的对象。
![](https://sparxsystems.com/images/screenshots/Sequence.gif)
活动图
活动图用于显示系统中不同工作流的构建方式,如何开始工作以及可能从头到尾采取的许多决策路径。它们还可以说明在执行某些活动时并行处理可能发生的位置。
![](https://sparxsystems.com/images/screenshots/Actdgm.gif)
状态图
状态图用于详细说明对象在系统中可以通过的状态的转换或更改。它们显示了对象如何从一种状态移动到另一种状态,以及控制该变化的规则。状态图通常具有开始和结束条件。
![](https://sparxsystems.com/images/screenshots/Statedgm.gif)
工艺模型
流程模型是活动图的UML扩展,用于对业务流程进行建模-该图显示了流程的目标,流程中涉及的输入,输出,事件和信息。
![](https://sparxsystems.com/images/screenshots/BPMDGM.jpg)