学习c++必不可少UML,UML从考虑系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。尽管UML和其它开发工具还会设计出许多派生的视图,但上述这些图和其它辅助性的文档是软件开发人员所见的最基本的构造。
用例图。
用例图是用来描述用户需求的,从用户的角度来描述系统的功能,并指出各个执行者。强调谁在使用,系统的执行者是谁。
【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。
类图。
用来定义系统中的类,包括描述类的结构和类之间的关系。类图的主要作用于描述系统的静态结构。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。
对象图。
对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。
状态图。
状态图说明对象在它的生命周期中响应事件所经历的状态序列,以及它们对那些事件的响应。
构件图。
构件图用来描述代码构件的物理结构以及构件之间的依赖关系。一个构件可以是一个资源文件、一个二进制文件或者已给可执行文件。
实施图(部署图)。
用来定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及它们之间的连接关系。
顺序图(序列图)。
描述对象之间的交互顺序,着重体现对象之间消息传递的时间顺序,强调了对象之间消息的发送顺序,同时也显示了对象之间的交互过程。
协作图。
协作图是一种交互图,强调的是发送和接受消息的对象之间的组织结构。
协作图主要描述协作对象的交互和链接。
显示对象间的连接以及对象之间如何发送消息。
协作图可以表示类操作的实现。
活动图。
概述系统的动态行为,包括活动状态,活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。活 动 图适合描述在没有外部事件触发的情况下,系统内部的逻辑执行过程,否则状态图更容易描述类似与传统意义上的流程图。业务建模时,用于详述业务用例,描述一项业务的执行过程设计时,描述操作的流程。
下面在援引一位老鸟的文章 http://blog.****.net/fengart/article/details/1588366
3. UML的特点
(1)统一标准。
UML融合了当前一些流行的面向对象开发方法的主要概念和技术,成为一种面向对象的标准化的统一建模语言,结束了以往各种方法的建模语言的不一致和差别。
UML提供了标准的面向对象的模型元素的定义和表示法,以及对模型的表示法的规定,使得对系统的建模有章可循,有标准的语言工具可用,有利于保质保量地建立起软件系统模型。
UML己经成为工业标准化组织OMG的正式标准,OMG将负责语言标准的进一步的开发。UML在统一和标准化方面的努力,将有利于建模语言本身的发展,也有利于工业化应用。
(2)面向对象。
UML支持面向对象技术的主要概念。UML提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。
(3)可视化、表示能力强大。
UML是一种图形化语言,系统的逻辑模型或实现模型都能用UML的模型图形清晰地表示。UML不只是一堆图形符号,在每一个UML的图形表示符号背后,都有良好定义的语义。
UML还可以处理与软件的说明和文档有关的问题,包括需求说明、体系结构、设计、源代码、项目计划、测试、原型、发布等。
UML提供了语言的扩展机制,用户可以根据需求增加定义自己的构造型、标记值和约束等。
UML的强大表示能力使它可以用于各种复杂类型的软件系统的建模。
(4)独立于过程。
UML是系统建模语言,独立于开发过程。虽然UML与Rational统一过程配合使用,将发挥强大的效用,但是UML也可以在其他面向对象的开发过程中使用,甚至在常规的软件生命周期法中使用。
(5)容易掌握使用。
UML的概念明确,建模表示法简洁明了,图形结构清晰,容易掌握使用。学习UML应着重学习它的三方面的主要内容:UML的基本模型元素,把这些模型元素组织在一起的规则,UML语言中的公共机制。只要具备一定的软件工程和面向对象技术的基础知识,通过运用UML建立实际问题的系统模型的实践,很快就能掌握和熟悉UML。
4. UML的用途
使用UML进行软件系统的分析与设计,能够加速软件开发的进程,提高代码的质量,支持变动的业务需求。UML适用于各种大小规模的软件系统项目,能促进软件复用,方便地集成已有的系统软件资源。使用UML将有助于处理软件开发中的各种风险。UML的这些特点和优点使它获得了计算机业界和越来越多的软件人员的青睐。
UML不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分。UML只是一种标准的系统分析和设计的语言,用于系统的建模。UML适用于对各类软件系统的建模,从应用系统到计算机系统的支持软件,从一般的企业的信息管理系统到基于WEB的分布式应用系统,甚至实时系统。
UML不是程序设计语言,不能用来直接书写程序,实现系统。UML所建立的系统模型(逻辑模型和实现模型),必须转换为某个程序设计语言的源代码程序,然后经过该语言的编译系统生成可执行的软件系统。但是,用UML建立系统模型可以很好地支持软件开发的前向工程(Forward
engineering)和逆向工程(Reverse engineering)。[2]