UML

概述

什么是 UML?

Unified Modeling Language (UML)又称统一建模语言或标准建 模语言,是始于 1997 年一个 OMG 标准,它是一个支持模型化 和软件系统开发的图形化语言,为软件开发的所有阶段提供模 型化和可视化支持,包括由需求分析到规格,到构造和配置。面 向对象的分析与设计(OOA&D,OOAD)方法的发展在 80 年代末 至 90 年代中出现了一个高潮,UML 是这个高潮的产物。它不 仅统一了 Booch、Rumbaugh 和 Jacobson 的表示方法,而且对 其作了进一步的发展,并最终统一为大众所接受的标准建模语 言。

软件开发的时候,系统设计师/系统架构师给出 UML 设计图, 程序员将来要根据 UML 设计图进行编码/开发。

能够实现 UML 图的建模工具有哪些?

  • IBM Rational Rose
  • StarUML
  • MS Visio(比较在行的是流程图)

    …..

常见的 UML 图包括哪些?

  • 类图(Class Diagram):描述类的信息(包括属性、方法),以及 类和类之间的关系信息。
  • 用例图(Use Case Diagram):站在系统用户(系统角色)的角度 分析系统存在哪些功能。
  • 时序图(Sequence Diagram):描述程序的执行过程,方法的调用 过程,方法的返回值等信息。(程序是一步一步怎么执行的,怎么调 用的。)
  • 状态图….
  • 活动图….

关于 UML 中的类图

什么是类图?

描述类的信息,以及类和类之间的关系信息。

画一个类图

通常在 Rational Rose 工具的 Logical View 目录下实现类图,一般会创 建一些目录用来组织这些类图,因为类可能会比较多。

1.关闭直接保存,观察后缀为mdl:模型驱动语言

2.在logical view中创建包

3.在我们创建的类图中new 一个Class Diagram

4.例如我们可以根据市场活动来新建一个class

点击类新建一个类,起名写备注

添加名字类型备注

插入属性:


注意:

未改之前id的权限是private,在图上是一把小锁。

更改权限为public 之后,图上变为一个小正方形


类和类之间的关系

A.泛化关系(is a:Cat is a Animal->继承):类和类的继承,接口和接口的继承



最终效果:

B.实现关系(like a:Cooker like a FoodMenu->)**

更改接口的展示类型,把原点化为正方形️


添加方法:

显示方法的返回值:

最终效果:

多个类可以实现一个接口或者一个类可以实现多个接口

C.关联关系(has a:Programmer has a computer)

关联是实线箭头

双击箭头打开一个窗口,在这个窗口中描述程序员和笔记本之间的关系

可以看两个类之间的关系,这里的Role A Detial 是笔记本,Role B Detial 是程序员

写Role,一旦这个关系线上的Role写好了,那么代码之中就不能随便写

而且要看好箭头的方向,箭头指向谁,由程序员就可以找到电脑

朋友关系(自身关联):

首先要画一个实线箭头指向自身

设置数量

再设置Role为friend

这种关系叫做自关联


夫妻关系(双向图):

进行连线的时候可以设置Navigable这样可以变为双向的箭头


husband和wife是角色名称

D.聚合关系

聚合关系描述的是整体与部分的关系,聚合关系是比较特殊的关联关系,比如:一个教室当中有多个学生,教室和学生之间的关系就是整体

和部分的关系在聚合关系中,整体的生命周期不会决定部分的生命周期,例如:教室没了,学生还在,或者说学生走了,教室还在。

去掉对勾

勾选这个选项

ClassRoom勾选Aggregate选择数目1

Student那边选择数量为0..n

多个学生设置Student的Role为students


E.组合关系

组合关系可以看为是一种特殊的聚合关系,整体的生命周期决定部分的生命周期,部分是依附在整体上面的,部分离开了整体是无法"存活"的。例如:人和四肢的关系。

依赖关系

实体箭头线连接好两个人和四肢,然后分别设置好人的数量为1,肢体的数量为0..4,然后保存之后再次打开,把Navigable这个对勾去掉,然后勾选Aggregate选项

效果如下:

然后再次打开选项卡,把By value值选上,这个By value表示组合关系,效果如下:

F.依赖关系

依赖关系是所有关系中最弱的一种,这种关系通常体现在类和局部变量之间的关系。

这里的Clue随着Test的创建而创建,随着Test的消亡而消亡。

用例图use case diagram

什么是用例图

站在系统用户(系统角色)的角度分析系统存在哪些功能? 实现用例图的时候,需要先进行系统角色的抽取。

在 Rational Rose 工具当中一般会在 Use Case View 当中实现用例图。

画一个用例图

1.右键新建一个package

2.new一个角色

3.新建use case diagram

4.长按可以将其拖动到画布上

可以给他指定功能

时序图 sequence diagram

什么是时序图?

时序图当中描述了方法的调用过程,程序的执行流程,以及方法执行 结束的返回值情况。

怎么实现时序图呢?

时序图通常会在 Rational Rose 的 Logical View 中实现。

用例图当中的一个用例会对应时序图当中的一个时序图。时序图描述 的是一个功能具体是怎么实现的,流程是什么?

1.创建一个package时序图,时序图要对应用例图,用例图当中的用例对应一个时序。

需要一一对应起来

2.创建一个dao package

新建四个层,每个层都需要一个模型


进行连线

起名

确定之后就可以new出来。

然后回到控制层的类图里面查看方法,多了一个

传入参数,写上返回值,然后勾选展示返回值


右键将这个方法new出来

然后发现控制器层里面生成了一个方法,将这个方法写上注释

并设置参数类型与上面一致起来

设置业务层的接口

将刚才创建好的service接口拖拽到我们的图中来,进行连接命名,然后把这个方法new出来

在业务层进行编辑

在领域模型上创建

在dao层上创建接口

同上面一样,调用生成方法,返回然后编辑方法

小人:动作的发起人

矩形/小圆圈:对象

实线箭头:调用

虚线箭头:返回

柱状:对象的生命周期,柱状不能断,在同一个流程当中不能断。

回折线:当前类的方法执行过程中调用自己当前类中

最新文章

  1. C++ Pitfalls 之 reference to an object in a dynamically allocated containter
  2. CCF NOI系列活动
  3. JQuery源码分析(三)
  4. 使用HashMap对象传递url參数有用工具类
  5. 第一个前台页面----xflow的页面
  6. 素数路(prime)
  7. js字符串转换为数字 总结
  8. 基于Gulp + Browserify构建es6环境下的自动化前端项目
  9. FTP主动模式和被动模式
  10. opencv : imread()的应用
  11. ch03 课下作业——缓冲区溢出漏洞实验
  12. Android为TV端助力 很详细的序列化过程Parcelable
  13. [转]解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
  14. BZOJ3945 : 无聊的邮递员
  15. springboot---->java.lang.IllegalArgumentException
  16. 30.SSH配置文件模板和类库.md
  17. 查看Linux 版本
  18. fastjson 使用记录
  19. Javassist 字节码 语法 MD
  20. Integral transform 积分变换

热门文章

  1. 附加数据库出现 无法打开物理文件 操作系统错误 5:拒绝访问 SQL
  2. XML:No operation was found with the name报错解决办法
  3. 常见链表操作-链表中环的检测(JAVA实现)
  4. 单片机与PLC的区别?
  5. sscanf功能详解(转)
  6. PYTHON 得到ADB的输出结果
  7. 求数组的子数组之和的最大值III(循环数组)
  8. [刘阳Java]_步步窥探JS变量作用域
  9. python+selenium+unittest发送Mail163邮件(PO)
  10. .Net Core微服务——自动收缩、健康检查:Consul(三)