小白java笔记——UML介绍
来源:互联网 发布:mac apktool使用教程 编辑:程序博客网 时间:2024/06/05 19:13
前言:面向对象软件开发需要经历OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)三个阶段:OOA对目标系统分析,建立分析模型,并使之文档化;OOD用面向对象的思想对OOA的结果细化,得出设计模型。那么OOA和OOD需要用统一建模语言描述,这就是UML。
UML分为静态图和动态图两种,下面是组成,有13种。红色的是常用的图。
一、用例图
主要目的帮助开发团队以一种可视化的方式理解系统的需求功能,对系统的实现不做任何说明。
不要太复杂,多用文字描述。
二、类图
可以表示实体静态内部结构,还可以表示实体之间相互关系。类之间有三种基本关系:关联(包括聚合、组合)、泛化(与继承统一个概念)、依赖。
(一)关联:具有方向性
1.单向关联:仅能从一个类单方向地访问另一个类。用带箭头的实线表示。
2.双向关联:两个类可以互相访问对象。
多重性:一个对象能访问关联对象的数目
3.聚合:有部分和整体关系。当A实体聚合成B实体时,A还可以是B的一部分。用带空心菱形的实线表示。
4.组合:有部分和整体关系。当A实体聚合成B实体时,A不可以是B的一部分。用带实心菱形的实线表示。
其中1..*代表一个到多个
(二)泛化
泛化和继承是一个概念,都是指子类是一种特殊的父类。由图:Student类是一种特殊的Person类。
(三)依赖
一个类会导致另一个类的改动。
原因:1.改动的类将消息发给另一个类;2.改动的类以另一个类作为数据部分;3.改动的类以另一个类作为操作参数。
通常而言,依赖是单向的,尤其是数据表现和数据模型分开设计时,数据表现依赖于数据模型。
用带箭头的虚线表示。
三、组件图
大型应用程序,通常会由一个或多个可部署的组件组成。对Java程序而言,可复用的组件通常打包成一个JAR、WAR等文件;对C++,可复用的组件通常是一个函数库,或者一个DLL(动态链接库)文件。
组件图提供系统的物理视图,用途是显示系统中的软件对其他软件组件(如库函数)的依赖关系。
通常包括组件、接口和Port等图元。
具体细节之后深入学习补充。。。
四、部署图
现代软件工程不再是超出早期的单机程序,整个软件系统可能跨国家、跨地区的分布式软件。因此部署图起到的作用是显示软件系统不同的组件将在何处物理运行,以及它们将如何彼此通信。
具体细节之后补充。。。
五、顺序图
显示具体用例的详细流程,并显示流程中不同对象之间的调用关系,还可以显示出对不同对象的不同调用。
当绘制顺序图是,消息可以向两个方向扩展,通消息发送者与接收者相邻摆放;一般的,交互图中参与者是对象,所以直接在方框中表明对象名。
注意与通信图的区别:通信图没有时间概念。
六、活动图
活动图和状态机图都是演化图,区别如下:
活动图:用于描述用例内部的活动或者方法流程,如果除去的活动图中并行活动描述话,就变成流程图。
状态机图:描述某一对象生命周期中需要关注的不同状态,并会详细描述刺激对象状态改变的事件,以及对象状态改变时所采用的动作。
演化图的五个要素:
1.状态:状态是对象响应事件前后不同是面貌,目前的软件计算机都是基于稳定态的对象的稳定态是对象的固有特征。
2.事件:来自对象外界的刺激,通常的形式是消息的传递,是对象演化的原动力。
3.动作:动作是对象的针对所发生事件所做的处理,实际上通常表现为执行了某个方法。
4.活动:活动是动作激发的后续系统的行为。
5.条件:条件指事件发生所具备的条件。
那么,可以激发对象状态改变的事件,有以下两个类型:
内部事件:一个对象的方法(动作)调用(通过事件激活)另一个对象的方法。
外部事件:从系统边界外激发的事件,如用户的鼠标。
活动图主要用于描述过程原理、业务逻辑以及工作流技术。类似流程图,区别是时活动图支持并发 。
七、状态机图
通常只对感兴趣的对象绘制状态机图,也就是说在系统活动期间具有三个或者更多潜在状态的对象才需要考虑使用状态机图进行描述。
五个基本的元素:
1.初始状态:使用实心圆绘制;
2.状态之间的转换:带箭头的线段描述;
3.状态:圆角矩形绘制;
4.判断点:空心圆;
5.一个或者多个终止点:内部包含实心圆的圆来描述。
绘制状态机图时,保证对象只有一个初始状态,可以有多个终结状态。
各种细节等到之后的学习深入以后接着补充。
- 小白java笔记——UML介绍
- UML—小总结
- UML学习笔记(一)——介绍
- 小白Java笔记——运行机制
- 小白Java笔记——注释
- 小白Java笔记——数据类型
- 小白Java笔记——数组
- JAVA UML 介绍
- UML之序——小谈UML
- 小白Java笔记——第一个Java程序
- UML简单介绍(三)——UML中的语法概述
- UML for Java笔记
- UML——九种图的详细介绍
- 小白Java笔记——下载安装
- 小白Java笔记——垃圾回收机制
- 小白Java笔记——标识符和关键字
- 小白Java笔记——流程控制
- 小白Java笔记——深入数组
- 安卓E/CursorWindow: Failed to read row 0, column 0 from a CursorWindow which has 0 rows, 5 columns解决方案
- java小项目(文件读取)标准化考试
- NKOJ 2106 机密谍报 (并查集)
- redis简介
- 广义表
- 小白java笔记——UML介绍
- 2014-03-28-JDK环境变量配置
- 【esp8266】MCU下arduino uno添加LED开关代码示例
- js通过正表达式获取链接参数id
- populating-next-right-pointers-in-each-node(i,ii)
- ubuntu 16.04 LTS
- init.rc启动 shell脚本
- React.js入门与案例开发
- android makefile批处理文件夹的资源