UML第二次作业:类在类图中的表示

时间:2023-02-26 10:40:01

类在类图中的表示

一、概览

1.plant UML语法学习小结

2.班级学生管理系统中的 —— “学生” 类的属性、方法

3.类图脚本程序

4.类图示例

二、类图语法学习小结

1.类之间的关系

通过某些符号定义 ,例如<|--、*--等符号。

             UML第二次作业:类在类图中的表示

示例1:

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

UML第二次作业:类在类图中的表示

2.关系上如何添加标识

(1)在关系之间使用标签来说明时, 使用 :后接 标签文字,可以在每一边使用 "" 来说明元素。

示例2:

@startuml
 Class01 "wtl" *-- "wtl" Class02 : contains
 Class03 o-- Class04 : wtl
 Class05 --> "wtl" Class06
 @enduml

UML第二次作业:类在类图中的表示

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

示例3:

@startuml
 class Car
 Driver - Car : drives >
 Car *- Wheel : have 4 >
 Car -- Person : < wtl
 @enduml

UML第二次作业:类在类图中的表示

3.如何添加方法

(1)为了声明域或者方法,可以使用后接域名或方法名,系统检查是否有括号来判断是方法还是域。

示例4:

@startuml
  Object <|-- ArrayList
  Object : wtl()
  ArrayList : Object[] elementData
  ArrayList : wtl()
  @enduml

UML第二次作业:类在类图中的表示

(2)同样可以可以使用{}把域或者方法括起来

示例5:

@startuml
 class wtl {
   String data
   void methods()
 }
 class wtl {
   flightNumber : Integer
   departureTime : Date
 }
 @enduml

UML第二次作业:类在类图中的表示

4.抽象和静态

通过修饰符{static}或者{abstract},可以定义静态或者抽象的方法或者属性这些修饰符可以写在行的开始或者结束。也可以使用{classifier}这个修饰符来代替{static}

示例6:

@startuml
 class wtl {
   {static} String name
   {abstract} void methods()
 }
 @enduml

UML第二次作业:类在类图中的表示

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

UML第二次作业:类在类图中的表示

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

UML第二次作业:类在类图中的表示

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

UML第二次作业:类在类图中的表示

8.如何使用非字母字符

如果你想在类(或者枚举)的显示中使用非字母字符,可以在类的定义中使用 as 关键字,或者在类名旁边加上 ""

示例10:

@startuml
 class "This is my class" as class1
 class class2 as "It works this way too"
 class2 *-- "foo/dummy" : use
 @enduml

UML第二次作业:类在类图中的表示

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

UML第二次作业:类在类图中的表示

示例12:

@startuml
 class name
 class school
 name *-- school
 hide school
 @enduml

UML第二次作业:类在类图中的表示

10.类的泛型的定义

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

示例13:

@startuml
 class name<? nam is wtl> {
   int size()
 }
 name  *- student
 @enduml

UML第二次作业:类在类图中的表示

11.声明包

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

示例14:

@startuml
 package "student" #DDDDDD {
   wtl <|-- name
 }
 package student.uml {
   wtl <|-- age
 }
 @enduml

UML第二次作业:类在类图中的表示

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

UML第二次作业:类在类图中的表示

16.改变箭头方向

类之间默认采用两个破折号 -- 显示出垂直方向的线. 要得到水平方向的可以像这样使用单破折号 (或者点)。

示例16:

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


UML第二次作业:类在类图中的表示的更多相关文章

  1. 我罗斯方块第二次作业(Block类)

    负责任务 完善Block类的相关函数及变量: 对Block类的函数功能进行调试: github项目地址. 开发日记 2020.5.11 今天和朋友们讨论了如何分工的工作,我负责的部分是Block类的完 ...

  2. UML第二次作业

    一.plant UML语法学习小结 1.类之间的关系 使用.. 来代替 -- 可以得到点 线. 在这些规则下,也可以绘制下列图形 @startumlClass01 <|-- Class02 Cl ...

  3. 软件工程与UML第二次作业

    博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...

  4. UML第二次作业(代码互评)

    博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ 作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018S ...

  5. UML与软件建模:第二次作业(类图中类的表示)

    一.类图 (1)类图定义 类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图.它形象的描述出了系统的结构,帮助人们理解系统. 类图是在&q ...

  6. 第二次作业社团UML图

    第二次作业 UML图 用例图: 时序图: 申请加入社团 学生可以在页面投递社团加入申请,送交给社团管理员审批 社团活动审批 团委通过社团提交胡活动进行审批 评价活动 社团活动举行完,会有相应的团委和学 ...

  7. UML类图中的关系和表示方法

    类图是用来描述程序中的类以及它们之间的关系的,使用类图可以帮助我们简化对系统的理解.在UML类图中比较常见的关系有六种,它们分别是:依赖.关联.聚合.组合.泛化.实现,这六种关系中类之间的紧密程度是依 ...

  8. UML类图中连接线与箭头的含义(转)

    UML类图是描述类之间的关系 概念 类(Class):使用三层矩形框表示. 第一层显示类的名称,如果是抽象类,则就用斜体显示. 第二层是字段和属性. 第三层是类的方法. 注意前面的符号,'+'表示pu ...

  9. 练习UML类图中的类的表示

    第一部分:UML类图(class diagram) 类图用来展现一组类.类的特性以及其类相互之间的关系,一个类图由一组类以及它们之间的关系构成,类图用来对系统的领域概念以及静态结构进行建模. 在软件模 ...

随机推荐

  1. WPF入门教程系列三——Application介绍&lpar;续&rpar;

    接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...

  2. Android 开发之旅:view的几种布局方式及实践

    本文的主要内容就是分别介绍以上视图的七种布局显示方式效果及实现,大纲如下: 1.View布局概述 2.线性布局(Linear Layout) 2.1.Tips:android:layout_weigh ...

  3. node&period;js和socket&period;io纯js实现的即时通讯实例分享

    在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这 ...

  4. 一元多项式Polynomial的C语言实现

    /* 编译器:Dev-c++ 5.4.0 文件名:Polynomial.cpp 代码版本号:1.0 时间:2015年10月9日21:53:26 */ /* 总结: 1.结构体指针指向的区域要手动分配内 ...

  5. VS2013 Update 2正式发布 &period;NET Framework&OpenCurlyDoubleQuote;云优先、移动优先”

    2013 Update 2正式发布 .NET Framework“云优先.移动优先” 投递人 itwriter 发布于 2014-05-13 12:33 评论(19) 有2155人阅读  原文链接   ...

  6. IIS配置PHP环境

    IIS配置PHP环境(快速最新版)(转载+自创) (参考转载的) 我们知道php配置有几种: 1.CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少.  ...

  7. ubuntu下处理mysql无法启动故障一例

    故障现象: mysql无法启动 1: dmesg |grep mysql [101353.820000] init: mysql post-start process (9077) terminate ...

  8. js登录滑动验证,不滑动无法登陆

    js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html; ...

  9. day2&period;jmeter简单压测,下载文件,Charles手机抓包准备

    一.压测 压测衡量一个系统的好坏:1.tps每秒钟处理的事物数,2.qps响应时间 添加聚合报告,更改线程组,运行接口请求 **添加压力机 1.首先确保都在同一网段 2.其他电脑要先启动jmeter- ...

  10. socket&period;io笔记一

    //服务端代码 var server = require('http').createServer(app); var io = require('socket.io')(server,{path:' ...