UML建模的要点总结


预备知识:

一、UML的特性与发展现状

UML是一种Language(语言)

UML是一种Modeling(建模)Language

UML是Unified(统一)Modeling Language

1、已进入全面应用阶段的事实标准

2、应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域

3、成为“产生式编程”的重要支持技术:MDA、 可执行UML等

二、建模的目的与原则

1、帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。

2、仅当需要模型时,才构建它。

3、选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理。

三、谁应该建模

1、业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与

2、需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与

3、设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。

4、实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。

5、数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。

正式开始

UML组成,三部分(构造块、规则、公共机制),关系如下图所示:

一、构造块

1、构造块是对模型中最具有代表性的成分的抽象

建模元素:UML中的名词,它是模型基本物理元素。

行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。

分组元素:UML中的容器,用来组织模型,使模型更加的结构化。

注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。

1.1、建模元素

类(class)和对象(object)

接口(interface)

主动类(active class)

用例(use case)

协作(collaboration)

构件(component)

节点(node)

类(class)和对象(object)

类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象

UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法

对象则是类的一个实例 (object is a Instance of Class)

接口(interface)

接口是描述某个类或构件的一个服务操作集

主动类(active class)

主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到 启动控制活动的作用

主动类是指其对象至少拥有一个进 程或线程,能够启动控制活动的类

用例(use case)

用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具

用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个 用例定义一组用例实例。

协作(collaboration)

协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构 成的一个群体。

对于某个用例的实现就可 以表示为一个协作

构件(component)

在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)

构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换

节点(node)

为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件

节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力

1.2、行为元素

交互(interaction): 是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合

交互的表示法很简单,就是一条有向直线,并在上面标有操作名

状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列

在UML模型中将状态画为一个圆 角矩形,并在矩形内写出状态名 称及其子状态

1.3、分组元素

对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标

1.4、注释元素

结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分

2、关系

UML模型的关系比较多,下图

2.1 关联关系

关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。

在UML中,使用一条实线来表示关联关系

在关联关系中,有两种比较特殊的关系:聚合和组合

聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系

如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述

组合是聚合的变种,加入了一些重要的语义。也就是说,在一个组合关系中一个对象一次就只是一个组合的一部分,“整体”负责“部分”的创建和破坏,当“整体”被破坏时,“部分”也随之消失

聚合就像汽车和车胎,汽车坏了胎还可以用。组合就像公司和下属部门,公司倒闭了部门也就不存在了!

2.2  泛化、实现与依赖

泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。

实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。

有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。

二、规则

命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符

范围:与类的作用域相似.

可见性:Public,Protected,Private,Package

三、UML公共机制

1、规格描述

在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :

2、UML修饰与通用划分

在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类

UML通用划分:

1)类与对象的划分:类是一种抽象,对象是一个具体 的实例

2)接口与实现的分离:接口是一种声明、是一个契 约,也是服务的入口;实现则是负责实施接口提供 的契约

3、UML扩展机制

这部分不容易描述,待改(邀月注 2009.2.18)

构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块

标记值则是用来为事物添加新特性的。标记值的表示方法是用形如“{标记信息}”的字符串

约束是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。

4、UML视图和图

图名            功能                备注
类图      描述类、类的特性以及类之间的关系        UML 1原有
对象图     描述一个时间点上系统中各个对象的一个快照       UML 1非正式图
复合结构图   描述类的运行时刻的分解             UML 2.0新增
构件图     描述构件的结构与连接              UML 1原有
部署图     描述在各个节点上的部署             UML 1原有
包图      描述编译时的层次结构              UML中非正式图
用例图     描述用户与系统如何交互             UML 1原有
活动图     描述过程行为与并行行为             UML 1原有
状态机图    描述事件如何改变对象生命周期          UML 1原有
顺序图     描述对象之间的交互,重点在强调顺序       UML 1原有
通信图     描述对象之间的交互,重点在于连接        UML 1中的协作图
定时图     描述对象之间的交互,重点在于定时        UML 2.0 新增
交互概观图   是一种顺序图与活动图的混合           UML 2.0新增

附:开发过程与图的对应关系

时间: 2024-11-26 23:36:58

UML建模的要点总结的相关文章

对软件开发中uml建模的理解和图形整理(一)

由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要.在uml开始之前,咱先回顾一个OOAD.OOP的主要特征. OOAD:根据面向对象的方法学来对软件系统进行分析和设计的过程.它包括OOA 分析阶段和OOD设计阶段.其中分析阶段主要解决"What to do?"的问题,而设计阶段主要解决"How to do?"的问题.具体来说就是:在OOA分析阶段咱要做的主要工作就是建立对业务问题域的视图(建立模型).

系统分析与设计课程之UML建模

UML(统一建模语言)是面向对象建模语言的标准,它可以对任何具有静态结构和动态行为的系统进行建模,它的主要作用是帮助用户进行面向的描述和建模,它可以描述软件从需求分析到软件实现和测试的全过程.标准建模语言UML的重要内容可以由五类图(十种图形)来定义,如表1所示. 用例图,即用来描述什么角色通过某某系统能做什么事情的图,用例图关注的是系统的外在表现,系统与人的交互,系统与其它系统的交互. 用例图有三种构成元素,分别是:角色,用例,关系 1.角色(Actor):即使用本系统的有哪些角色,不同的角色

ArgoUML -- 开源UML 建模工具

目前的0.18.1已经可以运行在Java1.4上了,而且它是开源(遵循BSD协议)和免费的UML制作工具,最主要的是只要添加它的模块包就能支持C#了. 我们最熟悉的商业UML建模工具恐怕就是Rational Rose了,当然除了它比较昂贵的价格外,伴随着它强大且烦杂的功能其安装下来也要有400M之多:那么argouml有什么独到之处呢,除了安装简便(安装完成仅有不到6M的大小)之外,还有以下特点: 1.Cognitive Psychology:符合认知心理学: 2.open standards:

UML建模学习1:UML统一建模语言简介

一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准,可以用来描述(specify).可视化(visualize).构造(construct)和记载(document)软件密集 型系统的各种工件(artifacts,又译为制品). UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由 需求分析到规格,到构造和配置. UML是面向对

UML建模之 - 类图&时序图

简介 简介 UML是面向对象开发中一种通用的图形化建模语言 UML建模技术就是用模型元素来组建整个系统的模型,模型元素包括系统中的类.类和类之间的关联.类的实例相互配合实现系统的动态行为等 UML建模工具 Rational Rose : 是直接从UML发展而诞生的设计工具,常用建模工具 Power Designer : 是对数据库建模而发展起来的一种数据库建模工具 Microsoft Visio :是一种画图工具,Visio 2010才开始引入UML建模,不是很专业 Star UML : 开源轻

UML建模——使用EA工具开发时序图实践及经验

Enterprise Architect(以下简称EA)是一款基于OMG UML的可视化模型与设计工具,提供了对软件系统的设计和构建.业务流程建模和基于领域建模的支持,被企业和组织不仅应用于对系统的建模,还用于推进模型在整个应用程序开发周期中实现. 在EA工具建模平台上,提供如下常用设计模型: Business Process   业务流程模型 Requirements   需求分析模型 Use Case       用例模型 Domain Model    领域模型 Class        

对软件开发中uml建模的理解和图形整理(三)

今天接着上一节的内容,继续来了解uml剩下的几种的静态建模和动态建模. 三.对象图:主要用来表现对象的特征,展示多个对象的特征及对象之间的交互.就拿咱出行旅游使用交通工具为例,如图: 说明:对象图只在系统的某一段时间存在,可以被看作是类图在该时刻的实例,主要用来描述对象之间的行为. 四.组件图:也称为构件图,主要用来描述软件中组件之间的关系,同时也是系统设计的一个模块化元素.组件(构件)是系统中可替换的物理部分,它封装了类的实现以及对象提供一组接口,在软件开发过程中,满足相同接口的组件可以自由地

UML建模快速入门00 Outline

Preface UML建模,其重要性不言而喻,本人虽然大学期间就早已知其大名,无奈因各种因素总是拿起又放下,未能持续研究,几经断断续续,一直未持续深入读完一本书.最近越发觉得逆向工程(由代码生成UML)在日常整理中的重要性及方便性,便又捡起书本,觉得应该好好看看,边看边画,对很多概念又有了较深入的理解,对以前模糊的概念更加明晰些了.说实在的,这次拿起书本来看,主要有两个原因:一是觉得UML建模确实应该作为码工具备的一个技能,二是为了提升下逼格. 为了记录个人历经的路程,后续将推出系列快速入门读书

linux 和windows系统下同时可用的UML建模工具(umbrello),超强

原文地址:linux 和windows系统下同时可用的UML建模工具(umbrello),超强 作者:zhangjiakouzf OPEN SOURCE 的 UML建模工具 -- umbrello 如果你的开发小组既有windows系统下的开发人员(比如客户端软件),又有linux或其他*nix系统下的开发人员(比如服务器端程序).就像我现在的处境一样,那么你需要"她",trust me!! umbrello 最初的 homepage 在http://uml.sourceforge.n