统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
这个语言由葛来迪·布区,伊瓦尔·雅各布森与詹姆士·兰宝于1994年至1995年间,在Rational Software(英语:Rational Software)公司中开发,于1996年,又进一步发展。UML集成了Booch,OMT和面向对象程序设计的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。
UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成为工业标准。OMG之前曾经呼吁业界向其提供有关面向对象的理论及实现的方法,以便制作一个严谨的软件建模语言(Software Modeling Language)。有很多业界的领袖亦真诚地回应OMG,帮助它建立一个业界标准。
)强调的是系统式的建模:
行为式图形()强调系统模型中触发的事件:
交互性图形(),属于行为图形的子集合,强调系统模型中的资料流程:
UML并不限定UML要素型别非得是某图形上的型别。一般来说,每个UML要素大约会出现在图的所有型别。这种弹性在UML 2.0部分被限定。
为了要保持工程图的传统,在您的UML图上加注用途、约束、或意图永远无伤大雅。
UML 2为了符合模型驱动架构(Model Driven Architecture)的需求做了大幅度的修改除在图形基础上扩充及变化了部分的展现方式外,也增加了一些图形标准元件,比前一版多出了由循序图与互动图所混合而成的互动概图(Interaction Overview Diagram)、强调时间点的时序图(Timing Diagram)与合成结构图(Composite Structure Diagram),此外,在UML2中,UML1合作图转变为通讯图(Communication Diagram),且在循序图中也添加了互动框(Interaction Frame)的概念,还有增加一些运算子(如sd、loop、alt等)。同时,UML2支援模型驱动架构(MDA)倡议,提供稳定的基础架构,容许软件开发程序增添自动化作业。此外,MDA把大型的系统分解成几个元件模型,并与其他模型保持连结,使得UML更加精确。
UML从来源中使用相当多的概念。下面仅列代表性的概念。
对于结构而言
对于行为而言
对于关系而言
其他概念
类图(Class Diagram)
构件图(Component diagram)
复合结构图(Composite structure diagram)
部署图(Deployment diagram)
对象图(Object diagram)
包图(Package diagram)