我想至少为我工作的项目创建UML图表。根据我的快速研究,有以下几种方法:
1. 用于创建逻辑模型 - 对象角色模型(ORM) 2. 用于创建物理模型 - 组件、类、序列、活动 3. 用于数据库模型 - ERD
问题:
1. 在你的公司,你会创建哪些UML图表? 2. MS Visio是否具备创建上述所有图表的功能? 3. UML图表是基于正在开发的应用程序的类型而选择的吗?
#1 在贵公司中,您创建了哪些UML图示?
我们使用了由UML定义的整套图示。我们特别重视用例图、类图、时序图和状态机图。
#2 MS Visio是否具备创建上述所有图示的能力?
它有这个能力,但我们通常不使用Visio进行绘制,因为有许多工具更适合这项工作。就我个人而言,我喜欢那些可以快速创建图示的工具,而且没有太多繁琐的操作。那些强制要求严格遵守UML规范(或者更糟糕的是,工具供应商对规范的解释)的工具会让我感到很烦。其中一款我发现特别有用的工具是Pacestar的UML Diagrammer。
#3 UML图示是否根据正在开发的应用程序类型进行选择?
UML可以用于描述任何应用程序的方面。然而,应用程序的性质将影响您选择使用的图示类型和数量。
这里的大多数架构师认为创建UML图示不能证明所花费的时间有价值
创建UML图示不需要花费太多时间。关键是为了满足您的需求,避免收益递减而开发“足够好”的模型。正如我上面所提到的,我把建模工作集中在捕捉系统的显著方面上,而不是严格遵守UML规范。此外,如果使用非UML图示(或仅仅用文本)可以更好地传达系统感兴趣的方面,我会毫不犹豫地使用它们来对系统进行建模。
前言
我认为UML用例图对于绘制应用程序的整体用户和功能区域非常有帮助。这实际上是业务分析师的工作,但如果不存在业务分析师或者缺少这种详细级别,那么进行这种练习所需的时间很少,而且具有极大的价值,可以让您获得解决方案的全局视图。
序列图在ASP.NET开发中也非常有用。它使用例图中高级视图的组件易于分解并实现。
1.你们公司创建哪些UML图?
没有。在我目前工作的地方,业务分析师、开发团队等人员都不了解UML。然而,鉴于我们所做的开发类型:快速和中等规模的战术解决方案,实际上并没有太多的价值。
2.MS Visio是否能够创建以上所有的图表?
是的。请参考http://softwarestencils.com/uml/index.html
我建议您考虑使用一种允许UML -> 代码生成的工具http://www.visual-paradigm.com/
3.UML图表是否根据正在开发的应用程序类型而选择?
这是一个混合使用的过程。UML是一组可以按照用户需求进行使用的工具。不同的图表类型(行为、结构和交互)及其子类型有不同的目的。经过多年与UML打交道(自上世纪90年代末以来),我几乎只看到了类、用例和序列图的价值。除此之外,它只是语义超载,在我参与的项目中没有太多价值。