UML学习笔记

  这个学期有幸选到章老师的UML精品课程,虽然到目前仅仅上课两周,但是收益匪浅。尽管在本科接触过UML,却没有非常详细的对其进行深入的了解,只是对一些图的名称有所耳闻,没有深究其功能。

就最近所学知识,谈一下我对uml统一建模语言的一个总体认识,软件工程作为一门工程类学科,如同建筑类学科一样,当我们需要搭建一所建筑时,我们都需要对其进行需求和设计,在施工的时候,我们就需要一些设计图纸,例如各个房间的具体设计、三维视图等,通过这些图纸进行施工。软件工程也是如此,当我们拿到一个项目时,并不是直接开始编码,而是在此之前进行一系列的需求分析和详细设计,UML在详细设计中得到了广泛的应用,我们使用UML绘出的类图、用例图、时序图、部署图等作为依据,以及按照这些图表实现相应的编码,这些用UML语言绘制的图形就好比建筑行业中的设计图纸,以这些图纸为标准,进行coding。UML绘图工具主要有 Visio 2007,开发工具主要有:Star UML,IBM Rational Rose,RSA等。

下面对一些比较常用的UML图进行一些详细的介绍(本次博文重点介绍一下类图):

一、 类图

我们知道面向对象主要有三个特征:封装(抽象)、继承以及多态,对象作为类的实例化,这些特征用类图可以很好的表示出来,类图也是最常用的UML图,通常看到类图就能了解各类之间的关系以及每个类中所具有的属性,在一些软件中,可以通过类图生成生成相应的代码。所以类图在软件工程中应用非常广泛。下面介绍一些类图的基本用法,

1、 类

如图所示,一个类主要由三部分组成:类名、属性、方法组成。其中属性和方法都有一定的作用域,public用+表示,private用-表示,protect用#表示,package用~表示。

2、 类与类之间的关系

1) Association(关联关系)

通常用直线(相互关联)或者 (直接关联)表示,相互关联和直接关联有一定的区别,比如A B 可以表示A类知道B类的属性和方法,同时B类也可以知道A类的属性和方法,但是直接关联AB 中A可以知道B类的属性和方法,但是通过B不能知道A的属性和方法,是单向关联,相互关联的实现可能需要使用指针来实现。

2) Aggregation(聚合关系)

聚合可以看做是一种强度关联,用于描述总体到局部的关系。当我们不知道两个类之间的到底是关联关系还是聚合关系时,一般使用关联关系。表示符号为:

或者

3) Composition(组合关系)

组合关系的强度强于聚合关系,比如车由引擎等组成,引擎作为车的一部分,可以看出子类实例的生命周期依赖于父类的生命周期。表示符号为:

或者

4) Generation(一般化)

一般化关系表示类与类之间的继承关系,是由子类指向父类,如animal类可以一般化出cat类,cat类是animal类的一个继承。表示符号为

5) Dependency(依赖关系)

顾名思义,依赖表示的一个类依赖另一个类的定义,所以依赖关系时单向的。表示符号为:

6) Realization(实现)

主要针对interface,类似于继承关系。表示符号为:

类与类之间主要有这六种关系,我们根据类之间的实际情况去判断到底使用那些关系,如果有些关系不太确定,我们在设计类图时可以先设定成关联关系,然后在后期进行相应的修改,除此之外我们可以在这些关系上设定实例化对象之间的对应关系。

如图:


0..1


0个或1个


1


只能1个


0..*


0个或多个


1..*


1个或多个

最后,向大家推荐一本参考书《UML2 and the Unified Process: Practical Object-Oriented Analysis and Design》另附上课上速记的学习笔记(速记只有部分重点>_<):

时间: 2024-12-14 06:55:31

UML学习笔记的相关文章

Thinking in UML 学习笔记(二)——UML核心视图之用例图

在UML中,需求模型又称为用例模型,它主要用于描述系统的功能性需求,即软件可以实现的功能,如登录.注册.入库.出库.查看库存报表.增加员工信息等.常规的用例建模一般包括两个组成部分:绘制用例图和编写用例文档. 用例图采用参与者和用例作为基本元素,以不同的视角展现系统的功能性需求. 一.业务用例视图 说明:使用业务主角和业务用例展现业务建模. 1.业务主角视角 作用:从业务的角度展示业务主角在业务中使用用例达成业务目标. 借阅人在借书管理系统中有借阅图书和办理借阅证两个业务目标. 2.业务模块视角

Thinking in UML 学习笔记(四)——UML核心视图之活动图

在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目标的达成过程并借此来发现对象的工具,它不是我们的分析目标,也不是编程的依据. 建立活动图: 一个登录过程的活动图如下: Thinking in UML 学习笔记(四)--UML核心视图之活动图

Thinking in UML 学习笔记(三)——UML核心视图之类图

类图的作用:用于展示系统中的类及其相互之间的关系. UML在解决面向对象的方法中对类理解为三个层次,分别是:概念层.说明层.实现层.在UML中,从开始的需求到最终设计类,类图也是围绕这三个层次的观点进行建模的. 一.概念层类图 在概念层上类图着重于对问题领域的概念化理解,而不是实现,因此类名称通常都是问题领域中实际事物的名称. 网上购物主要由商品.订单.支付卡这几个关键类构成,这几个类的交互能够完成网上购物这个业务目标. 二.说明层类图 这一层是类的接口而不是实现,类图中表达类和类之间的交互接口

UML学习笔记系列-第二章 开发流程

第二章  开发流程 UML是从一大推面向对象分析与设计的方法论中所诞生出来的.在某种程度范围内,这些方法论都会在图形模型语言中混合某种开发流程,以说明软件该如何开发下去. 1.反覆式和瀑布式的开发流程 两者的本质差异在于:我们该如何把项目分解成一些比较小的部分.我们需要把项目加以分解,这样一来大家就可以随时掌握问题,并追踪进度. 瀑布式开发风格是根据开发活动来分解项目的.为了编写软件,你需要进行一些特定的开发活动,包括:需求分析.设计.编程与测试.如果是一年的时间需要如下分配: 分析阶段 设计阶

Thinking in UML 学习笔记(一)——建立对象模型

一.面向对象的本质 面向对象的本质是抽象,当系统达到了超越其处理能力的程度,我们能够抽象出我们能够处理的范围来提成抽象级别,这样就能够构建更大.更复杂的系统. 现实世界和对象世界之间存在着一道沟壑,这道沟壑的名字叫抽象,抽象是面向对象的精髓所在.同一时候也是面向对象的困难所在.要跨越这道沟壑,我们须要解决下面问题: 1.一种把现实世界映射到对象世界的方法. 2.一种从对象世界描写叙述现实世界的方法. 3.一种验证对象世界行为是否正确反映了现实世界的方法. UML正是解决这一问题的分析设计方法.

浅谈UML学习笔记之用例图

最近一直在学习UML的基础知识,再看完视频之后,并没有很好的总结,在画图的过程中发现了很多的问题,下面是看书的过程自己总结的UML用例图的一点知识,与大家分享一下. 一.概念 用例图是由参与者.用例以及它们之间的关系构成的用于描述系统功能的动态视图. 用例是系统中的一个功能单元,描述一个系统做什么(what)的信息,并不是怎么(how)做.用例图的作用是描述参与者和用例的关系,表示系统的用户使用了系统中的哪些用例. 二.组成 用例图组成的概念,我们通过一张图学习: 我们重点讲解用例组成中用例之间

浅谈UML学习笔记动态图之状态图和活动图

Trufun Plato Trufun Plato是新一代的UML建模软件,它将为您的软件分析设计提供高效快捷的建模工具.Trufun是在OMG发布UML2.2规范之后同步发布UML2.X工具的CASE工具厂商,是基于全新理念的.中国人自己的先进的企业级UML工具.   原文转自trufun.net网站,更多UML资料和项目模型,可以到网站下载. 状态图 我先简单的理解一下,什么是状态机?① 在日常生活中,状态机,我们理解为记录下给定时刻状态的机器,根据不同的输入对每个给定的变化而改变其状态或引

【索引】UML学习笔记

行为图 交互图 交互概览图 时间图 顺序图 通信图 活动图 状态及图 用例图 结构图 包图 类图 对象图 组件图 部署图 组合结构图

UML学习笔记4——系统需求分析,从无到有

一.第一阶段:战略分析  需要理清问题--了解项目背景:为什么会有这样的一个项目?客户为什么想要做这个项目?公司为什么会接这个项目? 二.第二阶段:需求分析--命中需求 3.项目目标:从项目的背景,合同,方案书中找到或整理项目的目标.整理目标才是关键. 4.关键涉众及待解决的问题: 项目的涉众分为以下几类人员: 系统的用户:使用该系统的人. 对该项目有商业决策的人,如:客户的高层领导,对项目付款,验收等有决定权. 对该项目有影响的第三方,如:本项目需要采购的硬件,该硬件供应商会影响项目的成功.