61阅读

uml类图-解析UML类图符号

发布时间:2017-10-17 所属栏目:编程开发

一 : 解析UML类图符号

UML类图符号简介

1.类(Class):使用三层矩形框表示。

第一层显示类的名称,如果是抽象类,则就用斜体显示。

第二层是字段和属性。

第三层是类的方法。

注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

2.接口:UML类图符号中接口使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示。

第一行是接口名称。

第二行是接口方法。

3.继承类(extends):用空心三角形+实线来表示。

4.实现接口(implements):用空心三角形+虚线来表示

5.关联(Association):用实线箭头来表示,例如:燕子与气候

6.聚合(Aggregation):用空心的菱形+实线箭头来表示

聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工

组合(Composition):UML类图符号中组合用实心的菱形+实线箭头来表示

组合:部分和整体的关系,并且生命周期是相同的。例如:人与手

7.依赖(Dependency):用虚线箭头来表示,例如:动物与氧气

8.基数:连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的

UML类图符号软件工程

1、泛化(继承)

类图 解析UML类图符号

实线箭头表示继承一个基类B类继承A类

2、实现

类图 解析UML类图符号

UML类图符号中虚线箭头表示实现一个接口:C类实现接口Interface(现在好像显示成线了没有了箭头)

3、关联

类图 解析UML类图符号

UML类图符号中关联分为单向和双向关联两种。

关联和类的属性很相似。

3.1单向关联:仅能从一个类访问另一个类(前者的属性中有后者)

B类单向关联A类(B中有属性a为A的对象)

3.2双向关联:两个类之间能相互访问(两个类的属性中都有对方)

B类关联A类(B中有属性a为A的对象)

A类关联B类(A中有属性bs为Set,Set包含B的对象)

A和B是1对n(n>0)的关联

类图 解析UML类图符号

3.3聚合关系

类图 解析UML类图符号

由上图知道,Wheel类扮演wheels角色,聚合4个到Car对象里面去

UML类图符号中空心的菱形表示Wheel对象并不随Car的创建而创建,销毁而销毁。

3.4组合关系

类图 解析UML类图符号

由上图知道,Company类完全由Department对象组成。

UML类图符号中实心菱形表示Department对象随Company对象的创建而创建,销毁而销毁。

4、依赖

类图 解析UML类图符号

UML类图符号中依赖指的是类之间的调用关系,在UML中用带虚线的箭头表示。如果类A访问类B的属性或者方法,

或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无须在类A中定义类B类型的属性。

二 : uml各类图

原文:

一、UML是什么?UML有什么用?

二、UML的历史

三、UML的上层结构(Superstructure)

四、UML建模工具

五、UML的图(重点)

  1、用例图(use case diagram)

  2、活动图(activity diagram)

  3、静态结构图

  4、顺序图(Sequence Diagram)

  5、交互纵览图(Interaction Overview Diagram)

  6、通信图(Communication Diagram)

  7、时间图(Timing Diagram)

  8、状态机图(State Machine Diagram)

  9、构件图(Component Diagram)

  10、部署图(Deployment Diagram)


一、UML是什么?UML有什么用?

UML是什么?

Unified Modeling Language(统一建模语言)是对象管理组织(OMG)制定的一个通用的、可视化的建模语言标准,可以用来可视化(visualize)、描述(specify)、构造(construct)和文档化(document)软件密集型系统的各种工件(artifacts,又译制品)

UML是一种标准的图形化建模语言,是面向对象分析与设计的标准表示,它:

uml图 uml各类图不是一种可视化的程序设计语言,而是一种可视化的建模语言(用于分析设计)

uml图 uml各类图不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准

uml图 uml各类图不是过程,也不是方法,但允许任何一种过程和方法使用

UML有什么用?

软件开发系统规模比较复杂时,需要用图形抽象地表达复杂概念,增强设计的灵活性、可读性和可理解性,以便暴露深层次的设计问题,降低开发风险。[www.61k.com]有必要采用一套通用的图形语言和符号体系描述组织的业务流程和软件需求,促进业务人员、开发人员之间一致、高效地交流。

二、UML的历史

UML发展背景:

P. Coad和E.Yourdon提出OOA和OOD

G. Booch提出面向对象开发方法

Jacobson提出OOSE

Rumbaugh提出的OMT

……

UML的出现结束了这场方法学战争

UML发展历程:

uml图 uml各类图

三、UML的上层结构(Superstructure)

至于UML底层的基础结构(Infrastructure),软件开发工程师们没必要了解,只需要懂得上层结构就行了。

uml图 uml各类图

构造块(building blocks)通用机制(common mechanisms)构架(architecture)

uml图 uml各类图事物(things)

   结构、行为、分组、注释

uml图 uml各类图关系(relationships)

  依赖、关联、泛化、实现

uml图 uml各类图图(diagram)

  静态(7种):类图、对象图、构件图、部署图、包图、组合结构图、外廓图

  动态(7种):顺序图、通信图、时间图、交互纵览图、活动图、状态机图、用例图

uml图 uml各类图规格说明(Specifications)

文本维度的模型描述

uml图 uml各类图修饰(Adornments)

描述建模元素的细节信息

uml图 uml各类图通用划分(Common Divisions)

建模时对事物的划分方法

uml图 uml各类图扩展机制(Extensibility Mechanisms)

构造型、约束、标记值

4+1视图 
UML中的视图包括用例视图(Use Case View)、逻辑视图(Logical View)、实现视图(Implementation View)、进程视图(Process View)、部署视图(Deployment View)等,这5个视图被称作”4+1”视图.uml图 uml各类图

四、UML建模工具

比较流行的有Rational Rose ,Microsoft Visio、Enterprise Architect 、Visual UML等。我现在使用的UML建模工具是Enterprise Architect 8.0,推荐使用这款,比较好用。

五、UML的图(重点)

uml图 uml各类图

1、用例图(use case diagram)

uml图 uml各类图用例图(Use Case Diagram)是被称为参与者(Actor)的外部用户所能观察到的系统功能的模型图

    列出系统中的用例和参与者

    显示哪个参与者参与了哪个用例的执行

uml图 uml各类图核心概念

   用例:系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用

   参与者、参与者泛化

   用例与参与者之间的关系:关联

   用例之间关系:扩展、包括、泛化

uml图 uml各类图推荐使用场合

   业务建模、需求获取、定义


某图书馆管理系统:

是一个基于Web的计算机应用系统;

读者可以查询图书信息以及借阅信息;

读者可以通过系统预约所需的图书;

图书馆工作人员利用该系统完成读者的借书、还书业务;

图书馆工作人员可以对图书信息、读者信息等进行维护;

对于到期的图书,系统会自动向读者发送催还信息;

管理员会定期进行系统维护;

……

uml图 uml各类图 

UC01:“借书”用例文档

用例名称:借书

用例标识:UC01

涉及的参与者:工作人员

涉及的用例:

描述:工作人员利用该用例为读者完成借书过程

前置条件:工作人员必须登录到当前系统

涉众利益:

    读者:能够方便的找到并借出所需的图书

    工作人员:能够快速并准确的完成借书工作

基本事件流:工作人员帮助读者借阅图书

  1.用例起始于读者带着所要借的图书来到借阅前台;

  2.工作人员录入读者信息;

  3.工作人员逐一录入所有的图书信息:

  * 3.1 工作人员录入一本图书信息;

  * 3.2 系统确认该读者可以借阅当前图书;

  4.工作人员确认本次借阅信息;

  5.系统记录本次借阅情况。

后置条件:系统将读者借阅信息正确地记录到数据库中

备选事件流

  2a. 读者身份不合法

  2b. 读者存在欠费信息,不允许借书

  3.2a. 该读者不允许借阅当前图书

字段列表:

  5. 借阅信息主要包括:读者图书证号、图书编号、借阅日期(默认为当天日期)、借阅天数以及归还日期。

业务规则

  3.2 系统根据当前读者的借阅规则来判断是否可以借阅图书;而借阅规则取决于读者的类型(如本科生、研究生、老师等)和图书的类型(如科技类、文学类、新书等),并可动态配置

非功能需求:

设计约束:

部署约束:

未解决的问题

  2b. 读者存在多少欠费记录时,才不允许借书?

  3.2 借阅规则的具体配置情况需和用户进一步讨论?

2、活动图(activity diagram)

uml图 uml各类图活动图(Activity Diagram)

通过动作来组织,主要用于描述某一方法、机制或用例的内部行为

uml图 uml各类图核心概念

状态、活动、组合活动、对象

转移、分支

并发、同步

泳道

uml图 uml各类图推荐使用场合

业务建模、需求、类设计

uml图 uml各类图

3、静态结构图

类图(Class Diagram)

是软件的蓝图,详细描述了系统内各个对象的相关的类,以及这些类之间的静态关系。

核心概念:类、接口、依赖、关联、泛化、实现

类图展示实体类的静态关系:

uml图 uml各类图

对象图(Object Diagram)

表示在某一时刻类的对象静态结构和行为。

核心概念:对象、链接、多重性

对象图展示我当前借书情况:

uml图 uml各类图

包图(Package Diagram)

展现有模型本身分解而成的组织单元(包)以及它们的依赖关系。

核心概念:包(、框架、层、子系统) 、依赖

包图展示系统分层结构:

uml图 uml各类图

组合结构图(Composite Structure Diagram)

描述系统中某一部分(组合结构)的内部结构,包括该部分与系统其它部分的交互点。 

核心概念:组合结构、部件、端口、协议

组合结构图展示借书内部结构:

uml图 uml各类图

4、顺序图(Sequence Diagram)

uml图 uml各类图顺序图(Sequence Diagram)

用于显示对象间的交互活动

关注对象之间消息传送的时间顺序

uml图 uml各类图核心概念

对象、生命线、激活、交互、消息

交互帧(Interaction Frame)

uml图 uml各类图推荐使用场合

用例分析、用例设计

“借书”用例实现的顺序图uml图 uml各类图

5、交互纵览图(Interaction Overview Diagram)

uml图 uml各类图交互纵览图(Interaction Overview Diagram)

活动图和顺序图的混合物

直观地表达一组相关顺序图之间的流转逻辑

uml图 uml各类图核心概念

交互帧

分支、转移

uml图 uml各类图推荐使用场合

用例分析、用例设计

交互纵览图组织多个顺序图uml图 uml各类图

6、通信图(Communication Diagram)

uml图 uml各类图通信图(Communication Diagram)

UML 1.x中称为协作图(Collaboration Diagram)

表示一组对象间关系以及交互活动

uml图 uml各类图核心概念

对象、协作角色

协作、交互、消息

uml图 uml各类图推荐使用场合

用例分析、用例设计

“借书”用例实现的通信图 
uml图 uml各类图

7、时间图(Timing Diagram)

uml图 uml各类图时间图(Timing Diagram)

一种交互图,展现消息跨越不同对象或角色的实际时间信息;

具体描述单个或多个对象状态变化的时间点以及维持特定状态的时间段;

顺序图是表示交互的主要手段,可以在顺序图中增加时间约束来表明对象状态变化的时间点以及维持特定状态的时间段。

uml图 uml各类图核心概念

时间约束、持续时间约束、生命线

状态、条件、事件

“打电话”顺序图的时间约束 
uml图 uml各类图
利用时间图描述时间约束 
uml图 uml各类图

8、状态机图(State Machine Diagram)

uml图 uml各类图状态机图(State Machine Diagram)

UML1.x为状态图(Statechart Diagram)

利用状态和事件描述对象本身的行为

uml图 uml各类图主要概念

状态、初态、终态、复合状态

事件、转移、动作

并发

uml图 uml各类图推荐使用场合

类设计

“图书”类的状态机图 
uml图 uml各类图

9、构件图(Component Diagram)

uml图 uml各类图构件图(Component Diagram)

封装类为构件

描述在系统实现环境中的软件构件和之间的关系

uml图 uml各类图主要概念

构件、工件、接口(所供接口、所需接口)

依赖、实现

uml图 uml各类图推荐使用场合

系统设计、实现、部署

构件图描述类的实现环境 
uml图 uml各类图

10、部署图(Deployment Diagram)

uml图 uml各类图部署图(Deployment Diagram)

描述系统所需的硬件构件的物理部署

uml图 uml各类图主要概念

节点、构件、位置

连接、依赖

uml图 uml各类图推荐使用场合

系统设计、实施、部署

部署图描述系统部署情况 
uml图 uml各类图

三 : UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

扩展:uml类图 / eclipse生成uml类图 / uml类图怎么画

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

扩展:uml类图 / eclipse生成uml类图 / uml类图怎么画

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

扩展:uml类图 / eclipse生成uml类图 / uml类图怎么画

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

uml 类图 UML类图详解

扩展:uml类图 / eclipse生成uml类图 / uml类图怎么画

四 : uml类图常见关系

1.泛化关系

泛化关系是继承或实现的关系,是is-a关系,具体表现为类与类的继承,接口与接口的继承,类对接口的实现关系。

2.依赖关系

依赖关系表示为一个类使用另一个类,这种使用关系是具有偶然性的、临时性的、非常弱的,一个类的变化会影响到另一个类,是use a关系,如果类A依赖于类B,那么类B可以是类A的局部变量,或类A方法的参数,或静态方法的调用。

3.关联关系

关联关系是一种强依赖关系,这种关系不存在依赖关系的偶然性,关系也不是临时的,是长期的,稳定的。双方的关系是平等的,可以单向关联也可以是双向关联。假如类A关联了类B,则类B是类A的全局变量(注意是全局变量,再看看上面的依赖关系),大多数关联都是单向关联,这比较容易维护,关于关联,在生活中我们常会说,类A持有类B的引用。

4.聚合关系

聚合关系是特殊的关联关系,是一种强的关联关系,他体现的是整体与部分关系,即has-a的关系,但是整体和部分是可以分离的,注意,是可以分离的。普通关联关系的两个类处于同一层次上,是平级的,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建,这句话非常有意义,它在代码中通常体现成依赖注入的setter方法,即A对象可以随时创建B对象,再想想这不就体现了整体和部分是可以分离了吗?创建整体的时候可以不创建部分。

5.组合关系

组合关系也是特殊的关联关系,它体现一种contains a(拥有)关系,这种关系是比聚合还要强,也称为强聚合。体现了严格的整体和部分关系,两者是不可分割的,它们的生命周期是一致的。如果A由B组成,那么A就包含B的全局变量,并在创建A的同时创建B,在代码上我们通常是使用构造函数进行实现,也是依赖注入中构造函数的实现。

最后,我们来总结一下,泛化就不用多少了,大家都懂的,就是继承和实现接口,重点说下其它的吧,依赖,ClassB体现为ClassA的局部变量,我想用就用,用了就有关系,不用就没关系;关联,ClassB体现为ClassA的全局变量,不管你用不用,反正你知道我的存在了,持有了我的引用。聚合,是特殊的关联关系,用了就加强了关系,不用还是我只知道你的存在。聚合可以方便的持有多个类的引用,如使用List<>,所以当你发现有List<>等集合是可以使用聚合来表示,比如观察者模式的结构。组合,体现最强的关系,比如人出身了,必定也有头部吧,不然我真无法想象这个世界了。

本文标题:uml类图-解析UML类图符号
本文地址: http://www.61k.com/1100955.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1