博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uml第二次作业
阅读量:5117 次
发布时间:2019-06-13

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

一、类图

类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图。它形象的描述出了系统的结构,帮助人们理解系统。 类图是在"所有的UML图"中,实用频率非常之高;掌握它对于我们软件设计,以及交流都很有帮助。对于类图而言,它的基本单位是类。类主要由三部分组成:类名、属性、操作(函数)。

类名:类的名称

属性:UML类图中,属性的基本格式: 可见性 名称: 类型 [=缺省值]

操作:UML类图中,属性的基本格式: 可见性 名称(参数类表) [:返回类型]

类之间的关系通过下面的符号定义:

@startumlClass01 <|-- Class02  Class03 *-- Class04   Class05 o-- Class06   Class07 .. Class08Class09 -- Class10@enduml

 

@startumlClass11 <|.. Class12   Class13 --> Class14    Class15 ..> Class16Class17 ..|> Class18Class19 <--* Class20@enduml

在关系之间使用标签来说明时, 使用 :后接 标签文字。对元素的说明,在每一边使用 "" 来说明.

@startumlClass01 "1" *-- "many" Class02 : containsClass03 o-- Class04 : aggregationClass05 --> "1" Class06@enduml

在标签的开始或结束位置添加< 或 >以表明是哪个对象作用到哪个对象上。

@startumlclass CarDriver - Car : drives >Car *- Wheel : have 4 >Car -- Person : < owns@enduml

添加方法:

为了声明域或者方法,你可以使用 后接域名或方法名

系统检查是否有括号来判断是方法还是域

@startumlObject <|-- ArrayListObject : equals()ArrayList : Object[] elementDataArrayList : size()@enduml

也可以使用{} 把域或者方法括起来

注意,这种语法对于类型/名字的顺序是非常灵活的

@startumlclass Dummy {  String data  void methods()}class Flight {   flightNumber : Integer   departureTime : Date}@enduml

@startumlclass Dummy {  {field} A field (despite parentheses)  {method} Some method}@enduml

定义可访问性:一旦你定义了域或者方法,你可以定义 相应条目的可访问性质

抽象与静态:

通过修饰符{static}或者{abstract},可以定义静态或者抽象的方法或者属性

这些修饰符可以写在行的开始或者结束。也可以使用{classifier}这个修饰符来代替{static}

高级类体:

PlantUML默认自动将方法和属性重新分组,你可以自己定义分隔符来重排方法和属性,下面的分隔符都是可用的:--..==__.

备注和模板:

模板通过类关键字("<<"和">>")来定义

可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注。

还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注

@startumlclass Object << general >>Object <|--- ArrayListnote top of Object : In java, every class\nextends this one.note "This is a floating note" as N1note "This note is connected\nto several objects." as N2Object .. N2N2 .. ArrayListclass Foonote left: On last defined class@enduml

链接的注释:

在定义链接之后,你可以用 note on link 给链接添加注释

如果想要改变注释相对于标签的位置,你也可以用 note left on link note right on link note bottom on link。(对应位置分别在label的左边,右边,下边)

抽象类和接口:

用关键字abstractabstract class来定义抽象类。抽象类用斜体显示。 也可以使用interface, annotation 和 enum关键字。

使用非字母字符:

如果你想在类(或者枚举)的显示中使用非字母符号,你可以:

  • 在类的定义中使用 as 关键字
  • 在类名旁边加上 ""

 隐藏类:

你也可以使用 show/hide 命令来隐藏类

如果你定义了一个大的!ncluded文件,且想在文件包含之后隐藏部分类,该功能会很有帮助

泛型:

可以用 < 和 > 来定义类的泛型

包:

可以通过关键词 package 声明包,同时可选的来声明对应的背景色(通过使用html色彩代码或名称)

注意:包可以被定义为嵌套。

二、“学生” 类的属性、方法
属性有: 学生基本信息(姓名,学号,年龄,班级,职务)          学生课程信息(课程名,上课教室,老师姓名)          学生成绩信息(学号,姓名,成绩) 三、plant uml 脚本程序    @startuml class 学生个人信息 {
  -姓名:string   -学号:varchar   -年龄:varchar   -班级:string   -职务:string   __   +登录   +修改个人信息   +退出登录 } class 学生课程信息{
  -课程名:string   -教室:string   -老师:string   __   +登陆   +选课   +退出   +查看课程   +课程成绩 } class 学生成绩 {
  -学号:varchar   -姓名:string   -成绩:varchar   __   +登陆   +查看成绩   +退出 } 学生课程信息 --> 学生个人信息 学生成绩-left-> 学生个人信息 @enduml

 

 
 
 
 
 
 

 

转载于:https://www.cnblogs.com/lh65wl/p/10672773.html

你可能感兴趣的文章
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
红黑树 c++ 实现
查看>>
Android 获取网络链接类型
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>
LeetCode【709. 转换成小写字母】
查看>>