UML第二次作业:类在类图中的表示
类在类图中的表示
一、概览
1.plant UML语法学习小结
2.班级学生管理系统中的 —— “学生” 类的属性、方法
3.类图脚本程序
4.类图示例
二、类图语法学习小结
1.类之间的关系
通过某些符号定义 ,例如<|--、*--等符号。

示例1:
@startuml
wtl01 <|-- wtl02
wtl03 *-- wtl04
wtl05 o-- wtl06
wtl07 .. wtl08
wtl09 -- wtl10
@enduml

2.关系上如何添加标识
(1)在关系之间使用标签来说明时, 使用 :后接 标签文字,可以在每一边使用 "" 来说明元素。
示例2:
@startuml
Class01 "wtl" *-- "wtl" Class02 : contains
Class03 o-- Class04 : wtl
Class05 --> "wtl" Class06
@enduml

(2)在标签的开始或结束位置添加< 或 >以表明是哪个对象作用到哪个对象上。
示例3:
@startuml
class Car
Driver - Car : drives >
Car *- Wheel : have 4 >
Car -- Person : < wtl
@enduml

3.如何添加方法
(1)为了声明域或者方法,可以使用后接域名或方法名,系统检查是否有括号来判断是方法还是域。
示例4:
@startuml
Object <|-- ArrayList
Object : wtl()
ArrayList : Object[] elementData
ArrayList : wtl()
@enduml

(2)同样可以可以使用{}把域或者方法括起来
示例5:
@startuml
class wtl {
String data
void methods()
}
class wtl {
flightNumber : Integer
departureTime : Date
}
@enduml

4.抽象和静态
通过修饰符{static}或者{abstract},可以定义静态或者抽象的方法或者属性,这些修饰符可以写在行的开始或者结束。也可以使用{classifier}这个修饰符来代替{static}。
示例6:
@startuml
class wtl {
{static} String name
{abstract} void methods()
}
@enduml

5.高级类体
PlantUML中默认自动将方法和属性重新分组,当然也自己定义分隔符来重排方法和属性,例如:--..==__,我们还可以在分隔符中添加标题。
示例7:
@startuml
class wtl {
You can use
several lines
..
as you want
and group
==
things together.
__
You can have as many groups
as you want
--
End of class
}
class name {
.. Simple Getter ..
+ getName()
+ getAddress()
.. Some setter ..
+ setName()
__ private data __
int age
-- encrypted --
String password
}
@enduml

6.备注和模板
模板通过类关键字("<<"和">>")来定义,可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注,你还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注。
示例8:
@startuml
class age << general >>
Object <|--- ArrayList
note top of Object : my age is 22
note "This is a table" as N1
Object .. N2
N2 .. ArrayList
class name
note left: my name is wtl
@enduml

7.如何给链接写注释
定义链接之后,用 note on link 给链接添加注释。
示例9:
@startuml
class student
student --> name : A link
note on link #red: name is wtl
student --> age : Another link
note right on link #blue
age is 22
end note
@enduml

8.如何使用非字母字符
如果你想在类(或者枚举)的显示中使用非字母字符,可以在类的定义中使用 as 关键字,或者在类名旁边加上 ""
示例10:
@startuml
class "This is my class" as class1
class class2 as "It works this way too"
class2 *-- "foo/dummy" : use
@enduml

9.隐藏属性、函数和类
基础命令是: hide empty members. 这个命令会隐藏空白的方法和属性,可以使用 show/hide 命令来定义相关规则和例外,也可以使用 show/hide 命令来隐藏类。
示例11:
@startuml
class name {
+myMethods()
}
class age {
+hiddenMethod()
}
class school <<Serializable>> {
String school
}
hide members
hide <<Serializable>> circle
show Dummy1 methods
show <<Serializable>> fields
@enduml

示例12:
@startuml
class name
class school
name *-- school
hide school
@enduml

10.类的泛型的定义
你可以用 < > 来定义类的泛型。
示例13:
@startuml
class name<? nam is wtl> {
int size()
}
name *- student
@enduml

11.声明包
可以通过关键词 package 声明包,同时可选的来声明对应的背景色(通过使用html色彩代码或名称)。
示例14:
@startuml
package "student" #DDDDDD {
wtl <|-- name
}
package student.uml {
wtl <|-- age
}
@enduml

15.设计包的样式
可以通过以下的命令来设置默认样式 : skinparam packageStyle,或者对包使用对应的模板。
示例15:
@startuml
scale 750 width
package foo1 <<Node>> {
class Class1
}
package foo2 <<Rectangle>> {
class Class2
}
package foo3 <<Folder>> {
class Class3
}
package foo4 <<Frame>> {
class Class4
}
package foo5 <<Cloud>> {
class Class5
}
package foo6 <<Database>> {
class Class6
}
@enduml

16.改变箭头方向
类之间默认采用两个破折号 -- 显示出垂直方向的线. 要得到水平方向的可以像这样使用单破折号 (或者点)。
示例16:
@startuml
student o- name
student *-- age
@enduml
二、“学生” 类的属性、方法
属性有: 学生基本信息(姓名,学号,年龄,班级,职务)
学生课程信息(课程名,上课教室,老师姓名)
学生成绩信息(学号,姓名,成绩)
三、plant uml 脚本程序
@startuml
class 学生个人信息 {
-姓名:string
-学号:varchar
-年龄:varchar
-班级:string
-职务:string
__
+登录
+修改个人信息
+退出登录
}
class 学生课程信息{
-课程名:string
-教室:string
-老师:string
__
+登陆
+选课
+退出
+查看课程
+课程成绩
}
class 学生成绩 {
-学号:varchar
-姓名:string
-成绩:varchar
__
+登陆
+查看成绩
+退出
}
学生课程信息 --> 学生个人信息
学生成绩-left-> 学生个人信息
@enduml
四、类图示例
UML第二次作业:类在类图中的表示的更多相关文章
- 我罗斯方块第二次作业(Block类)
负责任务 完善Block类的相关函数及变量: 对Block类的函数功能进行调试: github项目地址. 开发日记 2020.5.11 今天和朋友们讨论了如何分工的工作,我负责的部分是Block类的完 ...
- UML第二次作业
一.plant UML语法学习小结 1.类之间的关系 使用.. 来代替 -- 可以得到点 线. 在这些规则下,也可以绘制下列图形 @startumlClass01 <|-- Class02 Cl ...
- 软件工程与UML第二次作业
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...
- UML第二次作业(代码互评)
博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...
- UML与软件建模:第二次作业(类图中类的表示)
一.类图 (1)类图定义 类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图.它形象的描述出了系统的结构,帮助人们理解系统. 类图是在&q ...
- 第二次作业社团UML图
第二次作业 UML图 用例图: 时序图: 申请加入社团 学生可以在页面投递社团加入申请,送交给社团管理员审批 社团活动审批 团委通过社团提交胡活动进行审批 评价活动 社团活动举行完,会有相应的团委和学 ...
- UML类图中的关系和表示方法
类图是用来描述程序中的类以及它们之间的关系的,使用类图可以帮助我们简化对系统的理解.在UML类图中比较常见的关系有六种,它们分别是:依赖.关联.聚合.组合.泛化.实现,这六种关系中类之间的紧密程度是依 ...
- UML类图中连接线与箭头的含义(转)
UML类图是描述类之间的关系 概念 类(Class):使用三层矩形框表示. 第一层显示类的名称,如果是抽象类,则就用斜体显示. 第二层是字段和属性. 第三层是类的方法. 注意前面的符号,'+'表示pu ...
- 练习UML类图中的类的表示
第一部分:UML类图(class diagram) 类图用来展现一组类.类的特性以及其类相互之间的关系,一个类图由一组类以及它们之间的关系构成,类图用来对系统的领域概念以及静态结构进行建模. 在软件模 ...
随机推荐
- YML文件中ipv6地址输入格式
关于YML文件格式可以百度,这里只说ipv6:yml文件是注重格式的不能用tab键代替空格 ipv4 :10.1.202.9 ipv6: 2001:202::6e4:f32b:c19c:4760 端口 ...
- 微信浏览器无法下载APK文件的解决方案
大家是不是经常会遇到微信内点击链接或扫描二维码无法打开指定网页的问题?只要你使用微信转发分享,相信你就一定会遇到,那么打不开的原因很简单了,就是被微信拦截了.这个问题我们只需要实现从微信内直接跳出到外 ...
- 聊聊大学期间的我是怎样学习Linux系统的
高考成绩并不是那么的理想,本科是个普通的二本院校,来到学校之后,整个人其实很迷茫,当时对大学的专业真的是一点都不了解,也不知道自己对哪方面感兴趣,最后选择的专业是电子方面的,其实当时选择专业的时候对电 ...
- mask_rcnn训练自己的数据集
1.首先从官方下载mask_rcnn源码https://github.com/matterport/Mask_RCNN 2.首先将demo.ipynb转换成demo.py,这里我顺便更改为适用于我自己 ...
- 最短路径HDU3790(Dijkstra)
准备考研,荒废了好多东西,希望做了正确的决定 /********************************************************* *author:chen xin * ...
- 【版本更新】开发工具DevExtreme发布v18.2.7|附下载
DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...
- 初读"Thinking in Java"读书笔记之第八章 --- 多态
再论向上转型 在某些方法中,仅接收基类作为参数,而不是特殊的导出类,会使得程序更容易扩展. 转机 方法调用绑定 前期绑定(编译期绑定):在编译期将一个方法调用和方法主体关联起来. 后期绑定(动态绑定或 ...
- python模块和包(模块、包、发布模块)
模块和包 目标 模块 包 发布模块 01. 模块 1.1 模块的概念 模块是 Python 程序架构的一个核心概念 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块 模块名 同样也 ...
- mongo的runCommand与集合操作函数的关系
除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...
- MySQL数据库需进行修改密码问题解决方案
两种方式可供大家进行参考: 第一种: 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1.给root加个密码pass123: 首先在DOS下进入目录mysql\bin,然 ...

