java基础学习一UML学习

面向对象的软件开发 需要经过三个步骤 面向对象分析 面向对象设计 面向对象编程

java基础学习一UML学习

1、用例图
用例图主要在需求分析阶段使用,主要表达系统或者系统范畴的功能,方便用于和客户沟通,保证系统需求的准确性,不要把用例图做的过多,不方便阅读,尽可能多的使用文字说明。

java基础学习一UML学习

用例图中包括用例(椭圆),角色,角色和用例之间的关系(线段表示),用例之间的关系(虚线箭头) 要么是整个系统的用例图 要么是某个功能的用例图

2、类图
类图主要表示系统中包含哪些实体,展示实体中的关联。
类之间的三种关系:关联(聚合、组合) 泛化 (与继承同一个概念)依赖
(1)关联(聚合、组合)

java基础学习一UML学习

学生和老师之间存在关联关系 并且是双向关联 1..*表示多个关联
学生和篮球俱乐部和书法距离部有聚合关系
学生和手臂有组合关系
组合比聚合更严格 因为组合后实体不能单独成为某个实体
(2)泛化
泛华就是继承的概念 学生继承人 那么学生就是特殊的人 用实线空心箭头表示
类实现接口也是一种继承 用虚线空心箭头表示

java基础学习一UML学习

(3)依赖
如果一个类发生变化时导致另一个类发生变化,称之为依赖。

java基础学习一UML学习

3组件图
对于一个大型的应用程序,通常不是一个了类或者多个类组成的,通常会有一个或多个可部署的组件组成,java中一般将这些组件打包成jar、war等文件
组件图是提供系统的物理视图,他的用途主要是显示系统中的软件其它组件的依赖

java基础学习一UML学习

4部署图
软件的不同部分可能需要部署在不同的的地方,不同的平台上,部署图主要描述软件如何部署在硬件环境中,主要用途显示软件不同的组件如何在何处物理的运行,并显示他们如何彼此通信

java基础学习一UML学习

5顺序图

java基础学习一UML学习

顺序图描述对象直接的交互,重点描述消息及其时间顺序
垂直维度 以发生时间描述消息和调用的序列
水平维度 以消息发送到的对象实例
消息就是一个对象调用另一个对象方法返回的值
通信图和顺序图类似 但是顺序图多了时间的概念
6活动图
活动图主要用于描述过程原理,业务逻辑以及工作流技术,活动图类似于流程图,可支持并发

java基础学习一UML学习

7状态机图
状态机图表示对象不同的状态以及状态的转换信息

java基础学习一UML学习

初始状态 实心圆
状态之间的转换用带线箭头表示
状态用圆角矩形表示
判断点用空心圆表示
一个或多个终止点用内部包含实心圆的空心圆表示
8类之间的结构关系
一般----特殊关系:is a 典型的就是继承 水果父类 苹果 子类 苹果is水果
整体----部分关系(组装结构):has a java语言通过一个类中保存一个对象的引用来实现这种组合