软件工程/UML 简介
统一建模语言是一种标准化的通用建模语言,如今由对象管理组织 (OMG) 作为事实上的行业标准进行管理。 [1] UML 包含一组图形表示技术,用于创建软件密集型系统的可视化模型。 [2]
UML 由 James Rumbaugh、Grady Booch 和 Ivar Jacobson 发明。1994 年,Rational Software Corporation 从通用电气公司聘请了 James Rumbaugh,该公司成为当时两种最流行的面向对象建模方法的来源:Rumbaugh 的面向对象建模技术 (OMT),更适合面向对象分析 (OOA),以及 Grady Booch 的 Booch 方法,更适合面向对象设计 (OOD)。他们很快得到了 Ivar Jacobson 的协助,他是面向对象软件工程 (OOSE) 方法的创建者。Jacobson 于 1995 年加入 Rational,此前他的公司 Objectory AB [3] 被 Rational 收购。
统一建模语言 (UML) 用于指定、可视化、修改、构建和记录正在开发的面向对象软件密集型系统的工件。 [4] UML 提供了一种标准方式来可视化系统的架构蓝图,包括活动、参与者、业务流程、数据库模式、组件、编程语言语句和可重用软件组件等元素。 [5]
UML 结合了数据建模 (实体关系图)、业务建模 (工作流)、对象建模和组件建模的技术。它可以与所有流程一起使用,贯穿整个软件开发生命周期,并且跨越不同的实现技术。 [6]
区分 UML 模型和系统的一组图表很重要。图表是系统模型的部分图形表示。该模型还包含驱动模型元素和图表的文档。
UML 图表代表了系统模型的两种不同视图 [7]
- 静态(或结构)视图:使用对象、属性、操作和关系来强调系统的静态结构。结构视图包括类图和组合结构图。
- 动态(或行为)视图:通过显示对象之间的协作以及对象内部状态的变化来强调系统的动态行为。此视图包括时序图、活动图和状态机图。
在 UML 2.2 中,有 14 种类型的图表,分为两类。 [8] 七种图表类型代表结构信息,另外七种代表一般行为类型,包括四种代表交互的不同方面。这些图表可以按照层次结构进行分类,如下面的图表所示
结构图强调了建模系统中必须存在的事物。由于结构图代表了结构,因此它们被广泛用于记录软件系统的软件架构。
- 类图:通过显示系统的类、它们的属性以及类之间的关系来描述系统的结构。
- 组件图:描述软件系统如何被拆分为组件,并显示这些组件之间的依赖关系。
- 组合结构图:描述类的内部结构以及这种结构实现的协作。
- 部署图:描述系统实现中使用的硬件以及部署在硬件上的执行环境和工件。
- 对象图:显示特定时间点建模系统的结构的完整视图或部分视图。
- 包图:通过显示这些分组之间的依赖关系来描述系统如何被拆分为逻辑分组。
- 概要图:在元模型级别运作,将构造型显示为具有 <<构造型>> 构造型的类,将概要文件显示为具有 <<概要文件>> 构造型的包。扩展关系(带封闭实心箭头头的实线)表示给定构造型扩展的元模型元素。
行为图强调了建模系统中必须发生的事情。由于行为图说明了系统的行为,因此它们被广泛用于描述软件系统的功能。
- 用例图:根据参与者、他们的目标(以用例表示)以及这些用例之间的任何依赖关系来描述系统提供的功能。
- 活动图:描述系统中组件的业务和操作步骤流程。活动图显示了整体控制流程。
- 状态机图:描述系统的状态和状态转换。
交互图是行为图的一个子集,强调了建模系统中事物的控制流程和数据流
- 时序图:以消息序列的形式显示对象如何相互通信。还指示了对象相对于这些消息的生命周期。
- 通信图:以顺序消息的形式显示对象或部件之间的交互。它们代表了从类图、时序图和用例图中获取的信息的组合,描述了系统的静态结构和动态行为。
- 交互概述图:提供一个概述,其中节点代表通信图。
- 时序图:一种特定的交互图类型,重点关注时间约束。
要绘制 UML 图表,您只需要一支铅笔和一张纸。但是,对于软件工程师来说,这似乎有点过时,因此我们大多数人都会使用工具。最简单的工具只是绘图程序,如 Microsoft Visio 或 Dia。这样生成的图表看起来很漂亮,但实际上并没有那么有用,因为它们不包括代码生成功能。
因此,在决定使用 UML 建模工具(有时也称为 CASE 工具)时 [9],您应该确保它允许进行代码生成,甚至更好,它还应该允许进行逆向工程。两者结合起来也称为双向工程。任何严肃的工具都应该能够做到这一点。最后,UML 模型可以通过使用 XMI 交换格式在 UML 工具之间交换,因此您应该检查您选择的工具是否支持这一点。
由于 Rational Software Corporation 可以说是“发明”了 UML,因此最知名的 UML 建模工具是 IBM Rational Rose。其他工具包括 Rational Rhapsody、Visual Parardigm、MagicDraw UML、StarUML、ArgoUML、Umbrello、BOUML、PowerDesigner、Visio 和 Dia。一些流行的开发环境也提供 UML 建模工具,例如 Eclipse、NetBeans 和 Visual Studio。 [10]
- ↑ http://www.omg.org/ 对象管理组织
- ↑ http://en.wikipedia.org/w/index.php?title=Unified_Modeling_Language&oldid=413683022 统一建模语言
- ↑ Objectory AB,被称为 Objectory System,由 Ivar Jacobson 于 1987 年创立。1991 年,它被收购并成为爱立信的子公司。
- ↑ 维基百科:FOLDOC (2001)。 统一建模语言 最后更新时间为 2002 年 1 月 3 日。访问日期为 2009 年 2 月 6 日。
- ↑ Grady Booch,Ivar Jacobson 和 Jim Rumbaugh (2000) OMG 统一建模语言规范,版本 1.3 第一版:2000 年 3 月。检索日期为 2008 年 8 月 12 日。
- ↑ Satish Mishra (1997)。 "可视化建模与统一建模语言 (UML) : UML 简介"。Rational Software Corporation。访问日期为 2008 年 11 月 9 日。
- ↑ Jon Holt 电气工程师学会 (2004)。系统工程的 UML:观测轮子 IET,2004,ISBN 0863413544。第 58 页
- ↑ UML 超结构规范版本 2.2。OMG,2009 年 2 月。
- ↑ http://en.wikipedia.org/wiki/Computer-aided_software_engineering 计算机辅助软件工程
- ↑ http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools 统一建模语言工具列表