`
zz563143188
  • 浏览: 2276131 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
博客专栏
77fc734c-2f95-3224-beca-6b8da12debc8
编程工具介绍
浏览量:578945
D9710da2-8a00-3ae6-a084-547a11afab81
Spring Mvc实战(...
浏览量:1088029
D3f88135-07de-3968-a0f0-d2f13428c267
项目开发经验
浏览量:1657680
社区版块
存档分类
最新评论

UML 的九种模型图

阅读更多

UML设计九种图例

分享
 

 

一、作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。

  • UML语义:描述基于UML的精确元模型定义。
  • UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
二、标准建模语言UML可以由下列5类图来定义。
  • 用例图:从用户角度描述系统功能,并指出各功能的操作者。
  • 静态图:包括类图和对象图。类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
  • 行为图:描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件,状态图是对类图的补充,活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并进行活动。
  • 交互图:描述对象间的交互关系,包括时序图和协作图。时序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用时序图;如果强调上下级关系,则选择协作图。
  • 实现图:包括组件图和部署图。组件图描述代码部件的物理结构及各部件之间的依赖关系,组件图有助于分析和理解部件之间的相互影响程度;部署图定义系统中软硬件的物理体系结构。

采用UML来设计系统时,第一步是描述需求;第二步根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图、对象图、组件图和部署图等5种图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、时序图和协作图等4种图形,是标准建模语言UML的动态建模机制。

 

首先对UML中的各个图的功用做一个简单介绍:

1、用例图
    描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
2、类图
    类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。
3、对象图
    与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。
4、活动图
    描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
5、状态图
    描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。
6、序列图(顺序图)
    序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
7、协作图

    和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。

8、构件图 (组件图)
    描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
9、部署图 (配置图)
    是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。
 
 
几种图的区别:

一:这九种模型图各有侧重,

1:用例图侧重描述用户需求,

2:类图侧重描述系统具体实现;

二:描述的方面都不相同,

1:类图描述的是系统的结构,

2:序列图描述的是系统的行为;

三:抽象的层次也不同,

1:构件图描述系统的模块结构,抽象层次较高,

2:类图是描述具体模块的结构,抽象层次一般,

3:对象图描述了具体的模块实现,抽象层次较低。

 

在有的文献书籍中,将这九种模型图分为三大类:

结构分类、动态行为和模型管理:

1:结构分类包括用例图、类图、对象图、构件图和部署图,

2:动态行为包括状态图、活动图、顺序图和协作图,

3:模型管理则包含类图。

 

 

画图说明

UML(统一建模语言):是面向对象的可视化建模的一种语言。是数据库设计过程中,在E-R图(实体-联系图)的设计后的进一步建模。
UML中有3种构造块:事物、关系和图,事物是对模型中最具有代表性的成分的抽象;关系是把事物结合在一起;图聚集了相关的的事物。具体关系图标如下:
 
 

说明:
构件事物是名词,是模型的静态部分。
行为事物是动态部分,表示行为。
分组事物是组织部分。
注释事物是解释部分。
依赖:一个事物变化会引起另一个事物变化。
聚集:特殊的关联,描述整体与部分的组合关系。
泛化:是一种特殊与一般的关系,如子元素(特殊)与父元素(一般),箭头指向父元素。
实现:类元之间的关系,其中一个类元指定了由另一个类元保证执行的契约。一般用在接口和实现他们的类之间或用例和实现它们的协作之间。
UML提供9种视图:类图、对象图,用例图,序列图、协作图,状态图、活动图,构件图和部署图。

UML系统开发中有三个主要的模型:
功能模型: 从用户的角度展示系统的功能,包括用例图。
对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。
动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。

下面具体说明:

1.类图:描述一组对象、接口、协作等事物之间的关系。如下图(摘自网络):
 
 
注:#表示protected,+表示Public,-表示private

2.对象图:描述一组对象之间的关系,是具有具体属性值和行为的一个具体事物,其是类图中所建事物实例的静态快照,其与类图的主要区别是一个是抽象的,而对象图是具体的。如下图(摘自网络):
 

3.用例图:描述一组用例、参与者以及它们之间的关系,其展示的是该系统在它的外面环境中所提供的外部可见服务。如下图(摘自网络):
 

4.交互图:包括序列图(顺序图)和协作图,两者对应,顺序图是强调消息时间顺序,有对象生命线和控制焦点。协作图是强调接收和发送消息的对象的结构组织,有路径和顺序号。如下图(摘自网络):
序列图:
 
5.协作图:
 

6.状态图:展示了一个状态机,由状态、转换、事件和活动组成。强调事件行为的顺序。如下图(摘自网络):
 
7.活动图:是一种特殊的状态图,实现一个活动到另一个活动的流程。如下图(摘自网络):
 
8.构件图 9.部署图:构件图展示一组构件之间的组织和依赖关系,并以全局的模型展示出来。部署图是构件的配置及描述系统如何在硬件上部署。如下图(摘自网络):


 企业级项目实战(带源码)地址http://zz563143188.iteye.com/blog/1825168

 

http://ibingle.blog.sohu.com/176849217.html

  • 大小: 54.4 KB
  • 大小: 25.7 KB
  • 大小: 29.1 KB
  • 大小: 29.1 KB
  • 大小: 26.7 KB
分享到:
评论

相关推荐

    UML 的九种模型图与"4+1" 视图模型对应关系

    UML的九种模型图则提供了丰富的表达手段,帮助我们清晰地表达和沟通这些视图中的内容。每种图都有其独特的应用场景和价值,例如: - 类图(Class Diagram):描述类、接口和它们之间的关系,是设计视图中的核心。 -...

    对UML的概念和模型之UML九种图的总结

    UML 概念和模型之 UML 九种图总结 UML(Unified Modeling Language)是一种软件设计语言,不仅仅是对软件设计的描述,而是整个软件开发过程中的一个重要组成部分。UML 通过九种图描述软件设计的各个方面,包括静态...

    UML 九种视图总结

    UML 视图是用来描述系统的不同方面的模型,包括静态视图、动态视图等。下面详细介绍几种常见的 UML 视图: ##### 3.1 类图 (Class Diagrams) - **定义**:类图用于展示系统中类及其之间的关系,包括继承、关联、...

    .net 需求分析试题

    #### 十一、UML九种模型图的基本作用及组成元素的含义 UML包括以下九种模型图: 1. **用例图**(Use Case Diagram):描述系统的功能需求,即系统的用例和参与者之间的关系。 2. **类图**(Class Diagram):描述...

    图书馆管理系统UML设计

    ### 图书馆管理系统UML设计知识点解析 ...综上所述,通过UML的各种模型图,图书馆管理系统的设计变得更加清晰、规范。这些模型图不仅有助于开发者更好地理解和实现系统,也为最终用户的使用提供了便利。

    uml各种图介绍,精简版

    UML 图是一种基本的建模语言,它提供了九种图形来描述软件系统的不同方面。 一、基本概念 UML 图可以分为静态视图和动态视图两种。静态图包括用例图、类图、对象图、包图、构件图和部署图。动态图包括状态图、活动...

    UML教程 UML的一切知识都在这里.zip

    UML的九种图是上述五类中的具体图表,每种图都有其特定的用途和应用场景。例如,类图用于描绘类和接口的结构,序列图则侧重于展示系统动态行为。理解UML图的种类和使用方法,对于进行软件设计和分析至关重要,尤其对...

    UML图

    UML由类图、对象图、用例图、序列图、协作图、状态图、活动图、组件图和部署图等九种主要图构成,每种图都有其特定的用途。 **2. 类图与对象图** 类图描述了系统的静态结构,包括类、接口、关联、继承和实现关系。...

    UML基础教程:用例图、类图、序列图

    "UML 基础教程:用例图、类图、序列图" UML(Unified Modeling Language)是一种标准化的、可视化的建模语言,用于...这本 UML 基础教程提供了 UML 的基础知识,帮助读者了解 UML 的基础知识,并能读懂 UML 模型图。

    uml系统建模与分析设计 课后习题答案

    UML 的三大类模型图是用例模型图、静态模型图和动态模型图。 八、UML 的静态建模机制 UML 的静态建模机制包括类图、对象图、包图、构件图和配置图等。UML 的动态模型包括状态图、活动图、顺序图和合作图等。 九、...

    UML 统一建模语言.pdf

    作为一种通用的建模语言,UML具备创建系统静态结构和动态行为模型的能力,拥有可扩展性和适应性,适用于多样化的建模需求。 #### UML的历史发展 UML的发展历程始于二十世纪八十年代初期,当时众多方法学家探索不同...

    uml课程_uml_

    本章将讲解如何运用UML的分析模型(如用例图、类图)和设计模型(如对象图、协作图)来支持分析和设计工作,以确保软件的质量和可维护性。 ### UML演示文稿 此部分包含一系列UML的实际示例和练习,帮助巩固理论知识...

    uml从简单到详细三种版本集合包

    1. **UML的九大图**:逐一介绍每种图的目的、构成和使用场景。 2. **建模步骤**:介绍如何从需求分析到设计阶段逐步构建UML模型。 3. **最佳实践**:分享一些在使用UML时应注意的规则和建议。 总的来说,这个集合包...

    UML

    3. UML的九种图表类型,包括类图、对象图、包图、组件图、部署图、用例图、序列图、协作图和状态图。 4. 如何使用UML进行需求分析、系统设计和代码实现的映射。 5. UML的标准符号和约定,以及如何阅读和创建UML图。 ...

    UML与UML复习题与答案

    UML中有九种图: 1. 用例图,描述一组用例,参与者及其它们之间的关系,是外部用户所能观察到的系统功能的模型图。用于需求建模。 2. 类图,描述一组类之间的关系。用于对应用领域中的概念以及与系统实现有关的内部...

    UML轻松教程(全)

    **UML的九种图**: 1. **用例图(Use Case Diagram)**:展示了系统外部参与者与系统提供的功能之间的交互。 2. **类图(Class Diagram)**:描绘类、接口以及它们之间的关系。 3. **对象图(Object Diagram)**...

Global site tag (gtag.js) - Google Analytics