UML软件工程组织

北京火龙果软件工程技术中心

第一章 UML模型的基本概念

1 UML的建筑块

组成UML有三种基本的建筑块:
1、事物(Things)
2、关系(Relationships)
3、图(Diagrams)
事物是UML中重要的组成部分。关系把事物紧密联系在一起。图是很多有相互相关的事物的组。

1.1   UML的事物

UML中有始终类型的事物:

1、结构事物(Structural things)
2、动作事物(Behavioral things)
3、分组事物(Grouping things)
4、注释事物(Annotational things)
这些事物是UML模型中最基本的面向对象的建筑块。它们在模型中属于最静态的部分,代表概念上等或物理上的元素。

1.1.1结构事物。

总共有七种结构化事物。首先是类(class),类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。在UML 中类被画为一个矩型,通常包括它的名字、属性和方法。

Window
Origin Size
Open()
Close()
Move()
Display()

图1-1 类
第二种是接口(interface),接口是指类或组件提供特定服务的一组操作的集合。因此,一个接口描述了类或组件的对外的可见的动作。一个接口可以实现类或组件的全部动作,也可以只实现一部分。接口在UML 中被画成一个圆和它的名字。


图1-2 接口

第三种是协作(collaboration),协作定义了交互的操作,是一些角色和其它元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。因此,协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。协作在UML 中用一个虚线画的椭圆和它的名字来表示。

 

 

图1-3 协作

第四种是use case,use case是描述一系列的动作,这些动作是系统对一个特定角色执行,产生值得注意的结果的值。在模型中use case通常用来组织动作事物。Use case是通过协作来实现的。在UML 中,use case画为一个实线椭圆,通常还有它的名字。
 

图1-4 use case

第五种是活动类(active class),活动类是这种类,它的对象有一个或多个进程或线程。活动类和类很相象,只是它的对象代表的元素的行为和其他的元素是同时存在的。在UML 中活动类的画法和类相同,只是边框用粗线条。

EventManager
Suspend()
Flush()

图1-5 活动类
 
第六种是组件(component),组件是物理上或可替换的系统部分,它实现了一个接口集合。在一个系统中,你可能会遇到不同种类的组件,例如COM+ 或JAVA BEANS。组件在UML中用如下的图表示:

图1-6 组件 第七种是结点(node),结点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个结点,但有可能从一个结点转到另一个结点。结点通常用如下的图形表示:
    图1-7结点
 
类、接口、协作、use case、活动类、组件和结点这七个元素是在UML 模型中使用的最基本的结构化事物。系统中还有这七种基本元素的变化体,如角色、信号(某种类),进程和线程(某种活动类),应用程序、文档、文件、库、表(组件的一种)。

1.1.2 动作事物

动态事物是UML 模型中的动态部分。它们是模型的动词,代表时间和空间上的动作。总共有两种主要的动作事物。
第一种是ineraction,interaction是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。 interaction中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作),连接(对象之间的连接)。在UML 中消息画成带箭头的直线,通常加上操作的名字。

图1-8 消息
       第二种是状态机(state machine),状态机由一系列对象的状态组成。在UML 中状态表示为下图:
 
图案1-9 状态
 
interaction和状态机是UML 模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。

1.1.3 分组事物

分组事物是UML 模型中组织的部分,可以把它们看成是个盒子,模型可以在其中被分解。总共只有一种分组事物,称为包(package)。
包是一种将有组织的元素分组的机制。结构事物、动作事物甚至其他的分组事物都有可能放在一个包中。与组件(存在于运行时)不同的是包纯粹是一种概念上的东西,只存在于开发阶段。在UML 中用如下图表示包:
 
   
图 1-10 包

1.1.4 注释事物

注释事物是UML模型的解释部分。UML中用如下图表示:
 
图 1-11 注释

1.1.5 UML中的关系

UML中有四种关系:
1.     依赖(Dependencies) 
(图1-12 依赖)
 
2.    关联(Association)
(图 1-13 关联)
   
3.         一般化(generalization)
(图1-14 一般化)  
4.       实现(realuzation) 
(图 1-15 实现)

1.1.6 UML中的图

1、类 图(class diagram)
2、对象图(class diagram)
3、用例图(Use case diagram)
4、顺序图(Sequence diagram)
5、协作图(Collaboration diagram)
6、状态图(Statechart diagram)
7、活动图(Activity diagram)
8、组件图(Compomnent diagram)
9、分布图(Deployment diagram)

 


版权所有:UML软件工程组织

转载于:https://www.cnblogs.com/VirtualMJ/archive/2007/03/26/687995.html

UML模型的基本概念(转)相关推荐

  1. 2 在UML中有4种事物:结构事物、行为事物、分组事物和注释事物。其中,( )事物表示 UML模型中的名词,它们通常是模型的静态部分,描述概念或物理元素。以下( )属于此类事物。

    标签: 初级程序员考试易错题,计算机基础, 面向对象基础,统一建模语言 (UML) 2 在UML中有4种事物:结构事物.行为事物.分组事物和注释事物.其中,( )事物表示 UML模型中的名词,它们通常 ...

  2. 【UML】UML扩展的建模概念

    UML扩展的建模概念 构造型 构造型对现有的UML建模元素进行扩展,使现有元素的语义多样化. 构造型本身不是一个新的模型元素,没有改变UML的结构,只是扩展了现有表示法的语义. 表示方法:双尖括号括住 ...

  3. 关于 UML 模型 Visio的说明

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Micr ...

  4. 使用Visio画UML模型

    Microsoft Office Visio"UML 模型图" 模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统 ...

  5. 聊天室UML模型一致性问题

    个案研究:聊天室UML模型一致性问题 摘要 本文从初始需求开始构建聊天室模型,以及对个案进行研究.在不同的开发阶段,分别要用到UML类图.时序图和状态图.这样,难免需要确定一致性问题,现在已经提出了许 ...

  6. 数据库设计(ER模型和UML模型及转换为关系模型的公式)

    本文根据b站鲁老师的教学视频整理而来,可能会偏理论化,有点枯燥,但是如果认真看完,还是会有所收获哒. 从本文可以学习到: 对于一个即将展开的项目,我们应该怎么设计及实现数据库. 掌握概念模型(ER模型 ...

  7. [1.2]由UML模型通过XMI生成XML,通过XSLT展示到表现层

    本专栏当前的话题是建模.UML 和 XML.具体而言,即研究 UML 建模在 XML 开发中的应用,特别是如何用 XSLT 样式表实现自动派生. 随着 XML 成为开发项目的一种常见特性,很多开发人员 ...

  8. IBM Rational Software Architect 通过编程方式生成UML模型

    统一建模语言(UML)在全世界范围内,成为软件开发项目方面广泛采用的交流标准.在软件项目中,UML 模型现在用于描述以及交流软件产品,它从获取软件结构的需求出发,然后分析,设计,开发,部署应用,以及维 ...

  9. 软件建模概述 UML模型图

    软件建模 什么是软件建模 将想法通过模型可视化地表达出来,方便记忆和进一步分析,方便团队/同事交流,口语交流容易失真. 软件建模体现了软件设计的思想,在需求和实现之间架起了一座桥梁,通过模型指导软件系 ...

最新文章

  1. STM32学习笔记9(SysTick滴答时钟)
  2. javca中redis获取value_接口测试:如何从redis中获取短信验证码
  3. VM8不能安装64位操作系统原因解析
  4. Git连载(9)使用Eclipse作为Git客户端
  5. JavaSE、JavaEE与Spring的概念和异同点剖析
  6. 直播 | ICLR 2021论文解读:兼听则明,信而有征:可信多模态分类
  7. 经典C语言程序100例之三三
  8. fastJson null字符串转空 null数字转0
  9. 百度 图片文字识别 Python版本
  10. Webpack打包工具的使用---打包引用JS和CSS文件
  11. python棋子判定_python微信跳一跳系列之棋子定位颜色识别
  12. java jexl_利用Jexl实现数据库的计算公式在Java中执行
  13. Android 虚拟机快捷键
  14. ROW_NUMBER() OVER()函数用法;(分组,排序),partition by (转)
  15. centos转换linux格式,CentOS 下转换网易云音乐ncm格式为mp3
  16. linux ntp时间立即同步命令_linux时间同步,ntpd、ntpdate
  17. 期货市场之反转形态分析
  18. linux下线程池实现
  19. 计算机方向kade期刊,计算机辅助导航技术在上颌骨肿瘤切除及缺损重建中的应用...
  20. LIteOS学习笔记-7LiteOS启动流程与编译流程

热门文章

  1. 无界限设计加持!魅族手环正式亮相
  2. CentOS7下安装MySQL5.7安装与配置(转)
  3. JPA关系映射之one-to-many和many-to-one
  4. 单词前后位置颠倒,大小写颠倒
  5. thinkphp3.2定义多模块并设置默认模块
  6. JAVA基础--JAVA中的反射机制详解
  7. hdoj1087 (DP--LIS)
  8. linux程序员的proc文件系统
  9. 34 linux监控平台
  10. Python2.7+selenium2自动化测试环境搭建