发展史:吃水不忘挖井人,先记记创立者吧。

    统一建模语言UML(Unified Modeling Language)是由Grady Booch、Jim Rumbaugh和Ivar Jacobson三人共同努力,于1996年6月和10月发布。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言,成为可视化建模语言事实上的工业标准。  

    1、James Rumbaugh
    参与创立了称为对象建模技术(Object Modeling Technique,简写OMT)的早期建模语言。
    OMT包括对象模型、动态模型、功能模型用于分析、系统设计、对象设计和实现等步骤。
    2、Grady Booch
    开发了Booch方法,是一个面向对象的软件解决方案开发方法,用来分析、模型化和记录系统要求。
    使用对象图、状态转换图、交互图来进行逻辑建模和物理建模。
    3、Ivar Jacobson
    创立了面向对象的软件工程(Object-Oriented Software Engineering,简称OOSE)方法。OOSE是一种真正的面向对象的软件方法,突出的特点是Ivar Jacobson加入的用例驱动和方法。

(可惜,这三个人的名字不会读,有人标出音标来吗?英语水平太差。)

  UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

    UML可用于下列领域:
    1、机构的工作流程
    2、业务分析
    3、用户描述
    4、数据库设计
    5、对象设计
    6、组件
    7、部署(域和服务器)
    8、GUI设计

    UML是模型,不是实现,所以可用于任何类型的环境。在设计的方法,UML都独立于编程语言。当然,在某些位置,需要在UML模型做出一些决策,来反映物理和技术选择,这是UML的另一个强大特性。也就是说,不仅所有开发人员可使用UML,而且业务分析师和技术架构师能在了解所有要求、当前状态、未来状态、交互和约束前,不需要选择技术平台,即开始分析和设计解决方案。

    UML由图形符号组成,开发人员、分析师、客户、用户和其他股东都能理解。

    UML模型分为三类:功能、行为和实现。功能类别模型用来收集要求和描述功能。行为类别模型用于描述解决方案的对象和用户的行为。实现类别模型用于解决方案功能和行为的物理实现。
    1、功能模型:用例图、类图
    2、行为模型:交互图(顺序图和协作图)、状态图、活动图
    3、实现模型:组年图、部署图

功能类模型:包括用例图和类图,它们将准确了解解决方案的作用及开发方式。
用例图:用来收集用户要求。由行动者(actor)、用例(use case)及它们之间的关系组成。
1、行动者(actor)指与系统交互的某人或某事。行动者要么从解决方案接收信息,要么将信息传给系统。通常包括人(如用户)或另一个系统。行动者一般指一个角色,而非操作者。例如:如果两个操作者以完全相同的方式使用解决方案,则行动者是一个,而不是两个。
2、用例(Use Case)指一个过程。
类图:用于收集要求阶段。它提出总是,并验证系统确能完成要求。

行为类模型:描述解决方案的行为或交互。
1、交互图:包括顺序图和协作图。这两种图之间的区别在于:顺序图基于时间,按时间顺序显示出现的任务;而协作图显示任务和信息(对象)的交互方式。
2、状态图:显示对象的生命期。
3、活动图:描述工作流以及谁完成工作。

实现类模型:描述如何打包和实现解决方案。
1、组件图:指在解决方案中构建实际物理组件模型的方式。组件图可显示源代码组件、COM+组件及其它二进制和可执行文件。组件图还显示组件接口。
2、部署图:显示解决方案的部署方式,由处理器、设备和连接器构成。用来描述组件运行在哪些物理计算机上,以及解决方案如何与硬件交互。