虽然项目团队成员可以使用任何UML图表在任何这些建模空间中工作,但是通过了解图表对建模者和每个建模空间所扮演的角色的重要性,可以获得高质量的模型。
从这个UML技术工具箱中选择合适的图表是高质量SE的关键步骤。
可以在问题,解决方案和架构空间中创建UML图的子集。在表中的每一列中已经接收到三个或更多“*”的UML图理想地形成该特定建模空间的一部分。例如,以下图表与构建MOPS相关。
◾用例图 - 用作与用户交互和了解业务问题的主要手段。因此,用例图在问题空间中是理想的。
◾活动图 - 作为复杂的流程图,它们可以在问题空间中用于建模流和依赖关系。用户和业务分析师特别热衷于使用它们来描述业务工作流程。
◾包图 - 作为子系统的“分组机制”,包图在问题空间中是非常宝贵的,特别是对于项目经理和项目赞助者来说,组织,评估和安排项目。
◾类图 - 表示关键业务实体及其关系,因此有助于在问题空间中创建“业务领域模型”。
◾序列图 - 通过显示业务对象之间的交互或业务用户在问题空间中直接描述的交互来建模需求的动态方面。
◾交互概述图 - 提供交互图之间依赖关系的概述,从而使用户和分析人员能够在问题空间中显示序列和用例之间的关系。
◾状态机图 - 支持对重要业务对象的状态进行建模,提供在问题空间中传递属性值及其含义的可视方法。
类似地,表3.2显示了具有三个或更多“*”的UML图,以指示它们在MOSS和MOAS中的相应重要性。这些图如下:
◾类图 - 代表详细的设计和编程结构;这些图还可以为关系数据库表建模。
◾解决方案空间中的序列图表示系统内交互的详细技术模型;解空间中的序列图中的对象表示实体,接口,控制器和数据库表的实例。
◾对象图 - 表示内存中类关系的多重性。
◾状态机图 - 提供解决方案空间中对象状态变化的更详细的技术模型;这些图还模拟了防护条件和嵌套,以帮助设计精确的解决方案。
◾复合结构图 - 表示一组对象和组件的运行时体系结构,包括它们的接口和实现。
◾组件图 - 表示结构和可执行组件;它们为解决方案的体系结构建模提供了出色的机制。
◾部署图 - 表示解决方案的硬件(节点和链接)的架构组织。
◾时序图 - 对解空间中多个对象的多个状态进行详细比较。
◾轮廓图 - 创建可在系统中共同应用的轮廓,以确保约束的一致性,从而提高质量。
与建模空间对应的前面的图表列表创建了与给定建模工作相关的UML的子集。因此,除了项目的类型和大小之外,UML还需要由软件项目中的个人选择性地使用。选择性使用UML对于SE内的成功非常重要。 UML中建模技术的广泛可用性有时会导致所有角色使用所有建模结构 - 导致混乱和建模损失的价值。相反,有选择地使用UML为建模空间中的给定角色提供必要的值。
Model of Problem Space [MOPS], Model of Solution Space [MOSS], and Model of Architecture
Space [MOAS])
问题空间模型[MOPS],解空间模型[MOSS]和建筑模型空间[MOAS])
创建MOPS的关键角色是业务分析师和用户。除了可以编写某些代码的问题空间中的原型设计之外,开发MOPS不需要编程工作。
解空间建模图3.3显示了包含系统设计的MOSS。解决方案空间描述了如何实现解决方案以处理问题空间中描述的问题。
创建解决方案模型需要了解编程语言,相应数据库,Web服务,Web应用程序解决方案和类似技术问题的功能。
MOSS包含由技术或低级类图表示的解决方案级设计。
这些设计级类图包含最低级的详细信息,包括属性,属性类型,初始值,操作及其签名。通过参数列表和返回值,序列图及其消息和协议也可用于MOSS。
这里可以谨慎使用状态机图和对象图。解决方案领域的关键角色是系统设计人员和程序员,如图3.3所示。
建筑空间建模建筑空间(有时也称为背景空间)涉及问题空间或解决方案空间未涵盖的软件开发的两个主要方面:架构和管理。图3.3显示了第三维中的建筑空间 - 与问题和解空间正交。
架构模型处理大量技术背景工作,必须考虑解决方案体系结构,现有体系结构,组织技术环境以及系统的操作要求(例如,压力,体积和带宽需求)的关键问题。系统)。
架构问题包括程序,设计,服务和云托管的可重用性方面。这些活动需要了解组织环境如何工作以及可重用架构和设计的可用性的行业知识。 MOAS通过架构师和设计师对问题和解决方案模型提出组织级约束。
架构空间使用UML对部署环境进行建模以及重用架构和设计。因此,部署和组件图在此处发挥着重要作用。组件图表示代码或库的可执行块(例如.exe或.dll和面向服务的组件),它们最终被合并到软件解决方案中。 UML领域还提供了材料,例如Fowler(1997)的分析模式,Gang of Four的5种设计模式(Gamma等,1995),6种认知模式(Gardner等,1998),7和反模式(Brown et al。,19988),它支持MOAS中的建筑工作。
背景架构空间中的管理涉及整个项目的规划,并不一定构成问题或解决方案空间的一部分。项目经理负责规划和资源化项目硬件,软件和人员,预算和执行成本效益分析,跟踪项目按照迭代计划的进展,并提供检查点,为问题中的角色产生质量结果和解决方案空间。因此,质量经理从质量角度同样参与项目的规划和执行。
将UML映射到建模空间通过对三个建模空间的理解,现在可以更容易地理解14个UML图中的每一个如何在这些不同的建模空间中发挥作用,具有不同程度的重要性和相关性。一些UML图在理解问题,记录和确定需求优先级方面更为重要和相关;其他UML图在解决方案空间的设计建模中增加了更多价值;而一些UML图可用于建模和应用架构约束以及测试系统。
下面的表格总结了每个图在 问题,解决方案和体系结构的三个建模空间中的相对重要性。此外,该表还将UML图映射到项目中的主要建模角色。每个图都有一个特殊的细微差别,使其与软件项目中的特定角色相关。这里将UML视为建模符号和图表的工具箱。然后从该工具箱中选择与相应建模空间中的角色相关的图。
表3.2 UML图对各个模型的重要性(对于该特定空间最重要的最大值为5 *)
UML图例 | 问题空间模型MOPS | 解决方案空间模型MOSS
| 架构空间模型MOAS
|
用例图 | ***** | ** | * |
活动图 | ***** | ** | * |
类图 | *** | ***** | ** |
系列图 | **** | ***** | * |
交互图 | **** | ** | ** |
通信图 | * | *** | * |
对象图 | * | ***** | *** |
状态机 | *** | **** | ** |
组合结构图 | * | ****** | **** |
组件图 | * | *** | ***** |
部署图 | ** | ** | ***** |
包图 | *** | ** | **** |
时序图 | * | *** | *** |
配置图 | * | ** | **** |