博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UML
阅读量:6274 次
发布时间:2019-06-22

本文共 1722 字,大约阅读时间需要 5 分钟。

UML

Unified Modeling Language,统一建模语言,在软件开发的所有阶段,设计一个可视化的系统模型。

UML主要有3个设计模型。

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

UML三大基本组成要素:

1.事物 2.关系 3.图形

1.事物(Things)UML中最基本的成员,指开发设计模型时抽象化的最后结果,分为4类:

结构事物(Structural Things)结构事物分为:类、接口、协作、用例、活动类、组件和节点
动作事物(Behavioral Things)模型的动词,代表时间和空间上的动作。
分组事物(Grouping Things)分组事物是UML模型中组织的部分,分组事物只有一种,称为包。
备注事物(Annotational Things)注释事物是UML模型的解释部分。

2.关系(relationships)将各个事物关联在一起,分为6类:

依赖(dependency):(虚线+箭头) class A{public void Function(B b){}}
关联(association):(实线+箭头) class A{B b = new B();}
聚合(aggregation):(实线+空心菱形) 聚合是关联的一种,是较强的关联关系,强调的是整体与部分之间的关系。
组合(composition):(实线+实心菱形) 组合是关联的一种,比聚合更强的关系,整体死亡,部分也死亡。
实现(realization):(虚线+三角形) 实现关系
泛化(generalization):(实线+三角形) 继承关系

依赖:对象方法依赖某个对象。

关联:一个对象包含多个属性对象。
聚合:一组对象与单个对象。
组合:一个对象与单个属性的关系。

3.图形(Diagrams)由事物、关系和行为所绘制的图形表示方法,分为9种:

1.用例图(Use Case Diagram)
用例图定义了系统的功能需求,从系统的外部看系统功能,并不描述系统内部对功能的具体实现。由参与者(Actor)、用例(Use Case)、箭头组成。作用:1获取需求,2指导测试。

2.类图(Class Diagram)

类图显示出类与类之间的静态结构和关系,用于描述系统的结构化设计。一般包含3个组成部分:类名、属性和方法。+表示public,-表示private,#号表示protected。
Operator
-userName:String
+SetUserName(userName:String):String

3.时序图(Sequence Diagram)

时序图也称为序列图,描述对象之间发送消息的时间顺序,每一个用例行为都对应一个触发事件。包含角色(Actor)、对象(Object)、生命线(Lifeline)、激活期(Activation)和消息(Message)。时序图描述对象是如何交互的,并且将重点放在消息序列上。

4.状态图(Statechart Diagram)描述系统动态特征,包括状态、转换、事件以及活动等。

5.活动图(Activity Diagram)描述系统在处理某项活动时,两个或多个对象之间的过活动流程。
6.组件图(Component Diagram)以可视化方式提供系统的物理视图,显示系统中组件的依赖关系。
7.部署图(Deployment Diagram)显示系统如何物理部署到硬件环境之中,是节点和连线的集合。
8.对象图(Ojbect Diagram)显示了一组对象和他们之间的关系。对象图是类图的实例,几乎使用与类图完全相同的标识。
9.协作图(Collaboration Diagram)强调的是发送和接收消息的对象之间的组织结构,显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。

转载于:https://www.cnblogs.com/lc19149/p/9341270.html

你可能感兴趣的文章
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>
80后创业的经验谈(转,朴实但实用!推荐)
查看>>