UML作为一种建模语言,其在项目开发过程中的作用,总结起来主要有以下几个方面:
1、UML作为一种建模语言,为用户提供了一种易用的、具有可视化建模能力的语言,能够使用户使用该语言进行系统的开发工作,并且能够进行有意义的模型互换。UML统一了各种方法对不同类型的系统、不同的开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间许多不必要的差异。他实际上是一种通用的建模语言,可以为许多面向对象建模方法的用户使用。UML提供相关的规范支持,该规范独立于任意一种编程语言和开发过程。
2、UML为面向对象语言的核心概念提供了可扩展性和规约机制。UML在不同的开发领域中都能够适用。
3、支持高级的开发概念,例如构件、协作、框架和模式等。UML作为一种建模的语言,清晰地描述了面向对象和重用等高级开发的概念,这是它的重要贡献之一。
4、集成了优秀的开发实践结果和经验。UML发展背后的一个关键因素和动力就是UML已经集成了在工业界的最佳开发实践,这些开发实践包含对抽象层次、问题域、架构、生命周期阶段、项目实施技术等的不同观点。
UML是用模型来描述系统的结构或静态特征以及行为或动态特征的,它从不同的视角为系统的架构建模形成系统的不同视图。确切的讲,由于UML中的各种构件和概念之间没有明显的划分界限,为方便起见,我们用视图来划分这些概念和构件。视图只是表达系统某一方面特征的UML建模构件的子集。在每一类视图中均可使用一种或两种特定的图来可视化的表示视图中的各种概念。
UML主要包括的视图为静态视图、用例视图、交互视图、状态机视图、活动视图、物理视图和模型管理视图。
1、静态视图:静态视图是对在应用领域中的各种概念以及与系统实现相关的各种内部概念进行的建模。首先,静态视图是UML的基础。模型中静态视图的元素代表的是现实系统应用中有意义的概念,这些系统应用中的各种概念包括真实世界中的概念、抽象的概念、实现方面的概念和计算机领域的概念。其次,静态视图构造了这些概念对象的基本结构。静态视图不仅包括所有的对象数据结构,同时也包括了对数据的操作。根据面向对象的观点,数据和对数据的操作是紧密相关的,数据和数据的操作可量化为类。最后,静态视图也是建立其它动态视图的基础。静态视图将具体的数据操作使用离散的模型元素进行描述,尽管它不包括对具体动态进行细节的描述,但是它们是类所拥有并使用的元素,使用和数据同样的描述方式,只是在标识上进行区分。我们要建立的基础是说清楚什么在进行交互作用,如果无法说清楚交互作用是怎样进行的,那么也无从构建静态视图。
静态视图的基本元素是类元与类元之间的关系。类元是描述事物的基本建模元素,静态视图中的类元包括类、接口和数据类型等等。类元之间的关系有关联关系、泛化关系和依赖关系,我们又把依赖关系具体可以再分为使用和实现关系。静态视图的可视化表示的图主要包括类图。
2、用例视图:用例视图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能模型图。一个用例是系统的一个功能单元,是系统参与者与系统之间进行的一次交互作用。当用例视图在系统的参与者面前出现的时候,用例视图捕获了系统、子系统和用户执行的动作行为。它将系统描述为系统参与者对系统功能的需求,这种需求的交互功能被称为用例。用例模型的用途是标识出系统中的用例和参与者之间的联系,并确定什么样的参与者执行了什么样的用例。用例使用系统与一个或多个参与者之间的一系列消息来描述系统的交互作用。系统参与者可以是人,也可以是外部系统或外部子系统等。用例视图使用用例图来表示。
3、交互视图:交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系,是描述系统中各种角色或功能交互的模型。交互视图显示了跨越多个对象的系统控制流程。我们通过不同对象间的相互作用来描述系统的行为,是通过两种方式进行的,一种是以独立的对象为中心进行描述,另外一种方式是以相互作用的一组对象为中心进行描述。以独立的对象为中心进行描述的方式称为状态机,它描述了对象内部的深层次的行为,是以单个对象为中心进行的。以相互作用的一组对象为中心进行描述的方式称为交互视图,它适合于描述一组对象的整体行为。交互视图可以运用两种图的形式来表示:序列图和协作图,它们 各有自己的侧重点。
4、状态机视图:状态机视图是通过对象的各种状态来建立模型用于描述对象随时间变化的动态行为。状态机视图也是通过不同对象间的相互作用来描述系统的行为的,不同的是它以独立的对象为中心进行描述。状态机视图中,每一个对象都拥有自己的状态,这些状态之间的变化是通过事件进行触发的。对象被看成为通过事件进行触发并作出相应的动作来与外界的其他对象进行通信的独立实体。事件表达了对象可以被使用操作,同时反映了对象状态的变化。状态机视图是一个对象对自身所有可能处于状态的模型图。一个状态机由该对象的各种所处状态以及连接这些状态的符号所组成。状态机同时还描述了用于描述类的行为的事件。状态机用状态图来表达状态图的细节内容。
5、活动视图:活动视图是一种特殊形式的状态机视图,是状态机的一个变体,用来描述执行算法的工作流程中涉及的活动。通常活动视图用于对计算流程和工作流程进行建模。活动视图中的状态表示计算过程中所处的各种状态。活动视图是在假定整个计算处理的过程中没有外部事件引起中断的条件下进行描述的,否则普通的状态机更加适合于描述这种情况。活动视图使用活动图来体现。活动图中包含了描述对象活动或动作的状态以及对这些状态的控制。
6、物理视图:物理视图包含有两种视图,分别是实现视图和部署视图。物理视图是对应用自身的实现结构建模,例如系统的构件组织情况以及运行节点的配置等等。物理视图提供了将系统中的类映射成物理构件和节点的机制。为了可重用性和可操作性的目的,系统实现方面的信息也很重要。
7、模型管理视图:模型管理视图是对模型组织自身的建模,是由自身的一系列模型元素(如类、状态机和用例)构成的包组成的模型。模型是从某一观点以一定的精确程度对系统所进行的完整描述。从不同的角度出发,对同一系统可能会建立多个模型,例如系统分析模型和系统设计模型等。模型是一种特殊的包。一个包还可以包含其他的包。整个系统的静态模型实际上可看成是系统最大的包,它直接或间接的包含了模型中的所有元素内容。包是操作模型内容、存取控制和配置控制的基本单元。每一个模型单元都包含或被包含于其他模型元素中。子系统是另一种特殊的包,他代表了系统的一部分,它有清晰地接口,这个接口可作为一个单独的构件来实现。任何大的系统都必须被分成几个小的单元,这使得人们可以一次只处理有限的信息,并且分别处理这些信息的工作组之间不会相互干扰。模型管理由包及包之间的依赖组成。模型管理信息通常在类图中表达。
1、用例图:用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于流程的角色关系,以及系统内用例之间的关系。使用用例图可以表示出用例的组织关系,这个组织关系包括整个系统的全部用例或者是完成相关功能的一组用例。在用例图中画出某个用例方式是在用例图中绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。在用例图上绘制一个角色的方式是绘制一个人形的符号。角色和用例之间的关系我们使用简单的线段来描述。
2、类图:类图显示了系统的静态结构,表示不同的实体(人、事物和数据)是如何彼此相关联的。类图可用于表示逻辑类,逻辑类通常就是用户的业务所谈及的事物。比如说学生、学校等。类图还可用于表示实现类,实现类就是程序员处理的实体。实现类图或许会与逻辑类图显示一些相同的类。
3、序列图:序列图显示了一个具体的用例或者用例的一部分的一个详细流程。他几乎是自描述的,序列图不仅可以显示流程中不同对象之间的调用关系,还可以很详细的显示对不同对象的不同调用。序列图有两个维度:垂直维度,也称时间维度,以发生的时间顺序显示消息或调用的序列;水平维度显示消息被发送到的对象实例。序列图也称“顺序图”。
4、状态图:状态图表示某个类所处的不同状态以及该类在这些状态中的转换过程。状态图的符号集包含了下列5个基本的元素:初始起点,状态之间的转换,状态,判断点,一个或者多个终止点。
5、活动图:活动图是用来表示两个或者更多对象之间在处理某个 活动时的过程控制流程。活动图能够在业务单元的级别上,对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。
6、构件图:构件图提供系统的物理视图,它是根据系统的代码构件显示系统代码的整个物理结构。其中,构件可以使源代码组件、二进制组件或可执行组件等。在构件中,它包含了它需要实现的一个或多个逻辑类的相关信息,从而也就创建了一个从逻辑视图到构件视图的映射,我们根据构件的相关信息可以很容易的分析出构件之间的依赖关系,指出其中某个构件的变化将会对其他构件产生什么样的影响。
7、部署图:部署图是用于表示该软件系统是如何部署到硬件环境中的,他显示了系统中不同构件在何处物理的运行,以及如何进行彼此的通信。部署图对系统的物理运行情况进行了建模,因此系统的生产人员能够很好的利用这种图来部署实际的系统。