- 浏览: 16593325 次
- 性别:
- 来自: 济南
最新评论
-
wu1236:
ef0793cd94337324b6fefc4c9474af5 ...
Android ApiDemos示例解析(87):Media->MediaPlayer -
77219634:
0127bf2236bee4dd1f632ce430f1af1 ...
本博客文章都为转载,没有任何版权! -
77219634:
0127bf2236bee4dd1f632ce430f1af1 ...
VPLEX - EMC的RAC -
77219634:
0127bf2236bee4dd1f632ce430f1af1 ...
qTip2 Show -
77219634:
0127bf2236bee4dd1f632ce430f1af1 ...
SecureCRT中文乱码、复制粘贴乱码解决办法(修改版)
就像大多数的软件开发从业者所知道的那样,统一建模语言 (UML)在表示真实世界的现象方面是非常优秀的。这种能力导致了 Business Modeling Profile 的发展,UML Business Modeling Profile 提供了扩展和原型以使用户和分析人员之间的交流更加容易。<!--start RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--end RESERVED FOR FUTURE USE INCLUDE FILES--> 正考虑应用 Business Modeling Profile 的组织通常都会有一些实际的问题,比如下面的问题:
不幸的是,关注于这些问题和应用 UML 业务建模 Profile 的文献资料比系统建模的资料相对来说少的多。这使那些认同使用 UML 进行业务建模的用户和分析人员十分失望,但是他们还是被迫的去努力使用这些符号。 本文通过了解一个样例用例来说明大家所关系的事情,这个样例用例建模了一个负责管理外包开发的 IT 部分的采购流程。这个由法律顾问、企业架构师和项目经理构成的部门负责和约的、系统架构的和项目管理的问题。这个部门的任务是将最终用户部分从 IT 相关的问题中解放出来,以便他们能够将经理放在业务运作上。当这些部门需要采购新的系统或者改进已有的系统时,他们会让 IT 部门准备最初的说明书,然后 IT 部门选择合适的供应商交付被需要的系统。 我们这个讨论的假设基础 我们假设你对 Rational 统一过程(RUP)中描述的业务建模 Profile 的知识有一定的了解。如果你对这个 Profile 还不是很熟悉,请参考文章尾部的附录。 我们这个简单例子的第一部时完成一个业务用例模型调查。 如图 1 所示,存在两个参与者和两个用例。最终用户 Manager 想要一个供应商来自动化一些工作流程,因此 IT 部门通过准备最初的需求文档和包含几个候选供应商的方式来帮助业务部门。一旦和约敲定,采购部门将通过根据和约中的里程碑管理系统的交付来帮助最终用户 Manager 。 图 1: 业务用例模型 我们将业务用例总结如下:
我们将业务用例总结如下:
表 1 :很长的工程流程
在我们的例子中,采购一个新系统的核心业务目标是将目标分解成两个子目标。
因此,准备 Tender 业务用例包括了表 1 中的步骤 1 到 步骤 4,选择供应商业务用例包括了表 1 中的步骤 5 到 步骤 10 。有很多方法可以分割工作流程,与客户讨论选择是重要的。然而,明白业务建模的真正价值在于理解被分解的工作流程之间是如何关联的是十分重要的。
在这个部分,我们来看一下如何描述业务用例。RUP 中的业务用例模板由一些部分组成,但是我们将只关注在基本的和可选的工作流程上。我将在未来的文章中讨论其他的部分 - 包括目标、风险、职责等等。表 2 显示了为准备 Tender 业务用例的基本和可选的工作流程。 表 2: 业务用例说明
在这个部分,我们将讨论几个实现业务用例的方法:
接下来的子部分描述了每种方法的好处,和这些方法是如何互相补充的。 关注工作流程 我们将看一下业务用例实现,它关注在包括业务执行者和他们的职责的工作流程上。如图 2 所示,准备 Tender 业务用例有三个业务执行者。
图 2: 业务执行者 - 准备 Tender 一个时序图描述了准备 Tender 业务用例的基本工作流程的实现,如图 3 所示。 图 3: 准备 Tender (关注工作流程)的业务用例实现 在图 3 中的消息能够被映射到每一个业务执行者的职责上,如图 4 所示。这种技术非常类似于指导用例分析的技术,这恰恰是为什么 RUP 的业务建模技术是如此强大的原因:相同的技术能够被应用到业务建模和系统建模上。 图 4: 业务参与者和业务执行者参与业务的视图
在业务用例实现中,在消息和操作中使用动词如“准备”和“检查”,并且避免如“提交”、“批准”和“拒绝”等等的动词是最好的。这样我们就能够区分事件/动作与职责/活动之间差别。否则,我们就会范类似于图 5 中的错误。 图 5: 错误:事件和职责有同样的名字 假设最终用户发送了一个消息 - “提交系统说明” - 给 IT 部门的经理,如图 5 左侧所示。这意味着 IT 项目经理有责任“提交系统说明”,但是这显然是错误的。最终用户的经理应该做这个事情。如果我们使用一个如图 6 所示的从最终用户经理到到它自身的反身消息“提交系统说明”,情况仍然是糟糕的。图 6 没有显示最终用户经理必须要“提交系统说明”。
图 6: 错误:反身消息不能指明谁收到了系统说明 被推荐的方案是在图 3 中使用消息 2 。子任务指明了系统说明准备额完成。此外,消息 2 的方向也表明了系统说明被最终用户经理提交给 IT 项目经理。 图 7 显示了对于一个直接的”提交系统说明“活动的一个相似的错误。被推荐的方案被显示在图 8 中;子任务是一个引发从”准备系统说明“向”准备 Tender 文档“转移的事件或者动作。这样做是更加简明;注意图 8 仅有两个活动而不象在图 7 中的 3 个。 图 7: 错误:最终用户经理既拥有活动也拥有动作 图 8: 方案:创建一个包含引发转移的动作的子任务
现在我们准备探究业务参与者或者业务执行者的职责自动化 - 特别是他们什么时候和如何使用业务系统。在我们的例子中,我们有两个业务系统,入图 9 所示:
图 9: 对于准备 Tender 用例的业务系统 RUP 中的业务对象模型指南建议了定义一个新的原型图标的可能性。在本文中我们将为业务系统使用 ”Business Worker“ 图标,但是他们将在新的 UML 业务建模 Profile 中有一个新的图标。注意,不管用何种方法,我们的业务系统的概念要严格的于在新的 Profile 中相同。 图 10 显示了一个用来描述准备 Tender 业务用例的基本流程实现的时序图,包括了被要求的业务系统。 图 10: 业务用例实现 - 自动化准备 Tender 用例 在图 10 中的消息能够根据每一个业务执行者的职责进行映射,如图 11 所示。 图 11: 由业务参与者、执行者和系统构成的视图 图 11 中的类图显示了 Tender 管理系统 (TMS) 的上下文关系。通过这个关系,我们表达了需要 TMS 服务的客户和对于操作 TMS 需要的供应者。这个上下文关系能够在用例图中用另一种形式表示,如图 12 所示。 图 12: 源自业务用例实现的 Tender 管理系统的用例 在图 12 中的用例的名字要严格的符合在图 11 中 TMS 的操作的名字。在图 12 中的参与者的名字要严格的符合在图 11 中的业务参与者和业务执行者的名字。使用相同的命名习惯有利于从业务对象模型到系统用例模型的跟踪。 探究自动化选择 在图 10 中的时序图阐明了 Tender 管理系统 (TMS) 是如何从法律官员隐藏和约管理系统(CMS)的。这是可能的系统开发场景之一,包括: 场景 1: 没有被集成的异构系统 场景 2:仅仅提供一个新的前端系统 场景 3: 集成
在场景 1 中,没有在 TMS 和 CMS 之间的集成,并且二者都被作为分离和独立的系统处理。对于法律官员的时序图被表示在图 13 中;注意法律官员要直接访问 CMS 。 图 13: 时序图 - 场景 1:没有集成的异构系统 对于源自图 13 中的 TMS 的用例图被在图 14 中进行了描述。注意 CMS 没有出现在图 14 中,因为它不和 TMS 进行交互。 图 14: 用例图:场景 1 :没有集成的异构系统 在场景 2 中, TMS 提供了一个封装 CMS 功能的前端系统。对于法律官员活动的时序图被显示在图 15 中。这个方法的目标是为最终用户提供一个一致的外观。然而,在使用法律条款进行检查和补充 Tender 中,没有额外的功能来支持法律官员。 图 15: 时序图 - 场景 2 :提供新的前端系统 对于源自图 15 的 TMS 的用例图被在图 16 中被描述。注意图 16 包含一个新的用例,”查找和约“,它与 CMS 交互。 图 16: 用例图 - 场景 2:提供新的前端系统 场景 3 被显示在图 10 的消息 4 中。 TMS 提供了一个 CMS 的前端,并且同时提供了方便法律官员用法律条款检查和补充 Tender 的额外功能。 消息能够映射到用例或流程上。在上面的讨论中,在时序图中的每一个消息被映射到一个用例。这意味着业务对象模型和用例模型一定是一致的 - 也就是说,用例是根据业务系统中的操作的名字命名的。这可能会太局限了,因为在很多的情况下,我们想要彼此独立的重构用例模型或者业务对象模型。然而,重构每一个模型都将使在两个模型之间的映射变得无效,我们希望维护一致性或者一些可跟踪的形式。我们能够通过允许一个消息被映射到每一个整体用例或者一个用例的一部分来实现这个目的,作为一个与消息语义相应的流程或者事件来支持这种映射。你可以在图 17 和 18 中看到他的表示。 图 17: 消息到用例的映射 图 18: 操作到用例的映射
现在,让我们看一下关注与2信息流程的业务用例实现 - 也就是,业务实体如何被使用。我们的例子有几个业务实体,如图 19 :
图 19: 业务实体 - 准备 Tender 用例 一个时序图描述了准备 Tender 业务用例的基本流程实现(信息流程),如图 20 所示。 图 20: 业务用例实现 - 准备 Tender 用例信息流程(顺序) 相应的协作图描述了用例的实现(信息流程),如图 21 所示。 图 21: 业务用例实现 - 准备 tender 用例信息(协作) 在图 20 和 21 中的消息能够被映射到每一个业务实体的职责上,如图 22 所示。 图 22: 由业务参与者、执行者和实体组成的视图 注意,业务实体是被动的,并且不能触发与自身的交互。因此,在图 20 和 21 中的消息代表可业务参与者和业务执行者如何操作这些实体,或者是手工操作或者是通过自动化的工具操作(比如,Tender 系统或者和约管理系统)。在大多数的情况下,组织将有不止一个系统,因此一个单个的业务实体的职责可能被映射带多个体统的职责上。在图 20 中描述哪一个业务系统被用于操作哪一个业务实体将使图 20 变得与图 21 和 22 一样复杂。 当你进行用例分析时,你能够将描述被系统操作的实体推迟到活来进行。可选的,你可以有一个映射业务系统和业务实体的类图。图 22 能够通过仅显示参与的业务实体被简化,如图 23 。 图 23: 业务实体参与的视图 - 准备 tender 用例 图 23 也被作为领域视图被引用,并且所有的业务实体集合组成了领域模型。领域模型也描述了动态的行为,通常是通过状态转换图。除了显示不同业务实体之间的关系,显示单独的业务实体的状态也是重要的。状态图显示了能够在每一个业务实体上执行的操作。图 24 是 tender 文档的状态图。 图 24: Tender 文档的状态图
在图 24 中,事件与 Tender 文档中的操作有相同的名字。Guard 条件(比如,在 UML 中被 "[" and "]" 界定的表达式)表示了操作的不同终止条件。例如,检查 Tender 文档操作有三个可能的终止条件,命名为:
这些终止条件必须被在图 12 中被识别的”检查 Tender 文档“用例处理。被接受的 Tender 文档可以是用例的基础流程,其他两个条件可以是可选流程。从状态转换到用例的映射能够得自于从如图 25 。 一个被映射到用例得事件,看守条件被映射映射到用例得一个流程,并且动作代表了下面的看守条件发觉的步骤。 图 25: 从状态转换到用例的映射 这样,在图 24 中被准备的 Tender 文档的状态被一个用例处理:检查 Tender 文档,如表 3 。准备的 Tender 文档的状态有三个分支的转换,他们被映射带在=基本流程的步骤 4 ,可选流程 A1 和 A2 上。 表 3: 检查 Tender 文档用例
在表 3 中的可选流程处理Tender 文档的拒绝。在表 3 中的基本流程的步骤 1 中,系统显示tender文档的总结列表和他们的状态。这样,在业务模型中的状态图提供了一种详细描述以下方面用例的方法:
软件系统被开发以达到业务目标。然而,用户、分析人员和开发人员通常生活在不同的世界里;他们有不同的看法并使用不同的行业术语。在这些人之间的沟通障碍导致了很多关于各种系统需求的解释和变更需求上的激烈讨论。通常,这些变化的发生不是应为最终用户改变他们的想法,而是因为最初的需求需要被澄清。 因此使用一种通用的符号系统(比如 UML)和通用的技术(UML 和 RUP 业务建模 Profile)是至关重要的,这些技术既可以描述业务流程也可以用于所有用户、分析人员和开发人员理解系统。这种被改进的沟通的确可以使软件工程项目更加成功。 在本文中,我们讨论了识别业务参与者和业务用例的步骤,并且使用三种方法描述了他们的实现,每一种都有不同的关注点(见表 4) 。 表 4: 描述业务用例实现的方法
本文假设读者对 UML 有一定的了解,并对业务建模的 UML profile 有一些基本的理解。当前的用于业务建模的 UML profile 的简介在表 A-1 中。 表 A-1. 用于业务建模的 UML profile 的简介
|
相关推荐
高清中文,你值得拥有. 难道一寻的UML建模用例分析
通过业务用例模型、规约和实现的逐步构建,可以有效地减少沟通障碍,确保软件开发更准确地服务于业务目标。在实际应用中,理解并灵活运用UML的不同图表类型,有助于提升业务建模的效率和准确性。
【UML实验报告(用例建模)】的实验旨在教授如何使用统一建模语言(UML)进行软件开发的需求分析,特别是通过用例建模的方法。以下是详细的知识点解析: 1. **需求获取**:这是软件开发的第一步,通过与客户、领域...
2. 使用UML来描述测试用例:使用UML来描述测试用例,可以提高测试用例的可读性和可维护性。 3. 使用UML来执行测试用例:使用UML来执行测试用例,可以提高测试的自动化和效率。 本资源提供了测试用例设计的步骤、...
业务用例模型是UML建模中最基础也是最重要的组成部分之一,它通过识别和描述业务过程中的参与者(Actor)与用例(Use Case),构建出业务活动的整体框架。以一个企业采购新系统的案例为例,业务用例模型概览中包含了...
Rational Rose等工具能够支持UML建模,并提供了一套完整的绘图功能,使得模型的创建和维护更加高效和准确。 UML用例建模不仅适用于软件开发,也适用于各种系统工程领域,例如嵌入式系统、业务流程建模等,它提供了...
通过对参与者、用例及其之间的关系进行描述,可以有效地帮助开发团队理解系统的功能边界和工作流程,从而提高软件开发的质量和效率。在实际应用中,应根据项目的实际情况灵活调整用例建模的方法和策略。
系统需求建模是指根据业务用例模型和系统用例模型,设计和实现软件系统的过程。系统需求建模的目的是为了满足业务需求,提高业务效率和质量。系统需求建模可以分为两个部分:系统用例模型和系统设计。 系统用例模型...
用例建模作为统一建模语言(UML)中的核心组成部分,为软件开发者提供了一种直观且有效的手段,用以捕捉和理解系统的需求。这一章节旨在深入探讨用例建模的概念、结构以及其在系统开发过程中的应用价值,尤其适合于...
这些详细信息有助于开发人员更好地理解用例的功能和实现细节。 #### 六、CRC头脑风暴 CRC(Class Responsibility Collaboration)是一种设计模式,用于帮助团队成员理解类的责任和协作方式。文档中的第5.5部分介绍...
UML用例描述和用例图是系统需求分析的关键工具,它们帮助开发者明确理解系统的功能和用户需求,为后续的设计和实现提供了清晰的蓝图。通过对用例的深入理解和精确描述,可以确保系统的功能符合预期,提高软件质量。
- **应用场景**:业务建模适用于各种规模的企业,特别在大型企业项目中,通过业务建模可以有效地识别需求、优化业务流程、提高系统设计的质量。 #### 二、业务模型需求工程 - **需求获取**:包括需求调研、方案建议...
统一建模语言(Unified Modeling Language,简称UML)是一种广泛使用的可视化建模语言,它提供了一系列图形化的工具和技术,用于构建系统的概念模型。其中,UML用例建模是一种特别有用的技术,用于捕捉系统的功能性...
### UML建模:用例说明及应用 #### 深入浅出解析用例与用例图 在软件工程领域,UML(统一建模语言)作为一种标准的图形化语言,被广泛应用于系统设计阶段,其中用例图是UML中最直观、最容易理解的部分之一。用例图...
### UML中的用例建模知识点详解 ...通过上述详细解释,我们可以更好地理解UML中的用例建模以及如何有效地建立和使用用例模型。这有助于软件工程师在软件开发的过程中更加高效地捕捉和表达系统的需求。
UML不仅是一种图形化语言,更是系统分析师、设计师、架构师和程序员之间沟通的桥梁,它能够清晰地表达系统的需求、设计和实现。通过UML,团队成员可以共享对系统架构的理解,减少误解,提高协作效率。此外,UML还有...