UML 的本意是要成为一种标准的统一语言(通用的可视化建模语言),用于对软件进行描述、可视化处理,构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML 成为"标准"建模语言的原因之一在于,它与程序设计语言无关,适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。而且,UML 符号集只是一种语言而不是一种方法学。这点很重要,因为语言与方法学不同,它可以在不做任何更改的情况下很容易地适应任何公司的业务运作方式。通过把标准的UML图放进您的工作产品中,精通UML的人员就更加容易加入您的项目并迅速进入角色。
UML 包括概念的语义,表示法和说明提供了静态、动态、系统环境及组织结构的模型。UML 描述了一个系统的静态结构和动态行为。UML 将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定的功能的模型结构。静态结构定义了系统中的重要对象属性和操作以及这些对象之间的相互关系。动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。从不同但相互联系的角度对系统建立的模型可用于不同的目的。
UML 还包括可以将模型分解为包的结构组件,以便开发小组将大的系统分解成易于处理的块结构,并理解和控制各个包之间的依赖关系,在复杂的开发环境中管理模型单元。它还包括用于显示系统实现和组织运行的组件。
UML 不是一门程序设计语言。是一种通用的建模语言。对于一些专业领域,例如:用户图形界面(GUI)设计、基于规则的人工智能领域等使用专业的语言和工具可能会更合适些。UML 是一种离散的建模语言,不适合对诸如工程和物理学领域中的连续系统建模。它是一个综合的通用建模语言,适合诸如由计算机软件、固件或数字逻辑构成的离散系统建模。
UML 的统一、通用体现在一下几点:
在以往出现的方法和表示法方面。UML 合并了许多面向对象方法中被普遍接受的概念,对每一种概念,UML 都给出了清晰的定义、表示法和有关术语。使用 UML 可以对已有的用各种方法建立的模型进行描述,并比原来的方法描述得更好。
在软件开发的生命期方面。UML 对于开发的要求具有无缝性。开发过程的不同阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以混合使用。在开发的不同阶段,不必转换概念和表示。这种无缝性对迭代式的、增量式软件开发是至关重要的。
在应用领域方面。UML 适用于各种应用领域的建模,包括大型的、复杂的、实时的、分布式的、集中式数据或计算的、嵌入式的系统。也许用某种专用语言来描述一些专门领域更有用,但在大部分应用领域中,UML 不但不比其他的通用语言逊色并且更好。
在实现的编程语言和开发平台方面。UML 可应用于运行各种不同的编程实现语言和开发平台的系统。其中包括程序设计语言、数据库、4GL、组织文档及固件等。在各种情况下,前部分工作应当相同或相似,后部分工作因各种开发媒介的不同而有某种程度上的不同。
在开发全过程方面。UML 是一个建模型语言,不是对开发过程的细节进行描述的工具。就像通用程序设计语言可以用于许多风格的程序设计一样,UML 适用于大部分现有的或新出现的开发过程。尤其适用于我们所推荐的迭代式增量开发过程。
在内部概念方面。在构建 UML 元模型的过程中,我们特别注意揭示和表达各种概念之间的内在联系并试图用多种适用于已知和未知情况的办法去把握建模中的概念。这个过程会增强对概念及其适用性的理解。这不是统一各种标准的初衷,但却是统一各种标准最重要的结果之一。