分析图书销售管理系统

一、概览

  1. PlantUML类图语法学习小结

  2. 《书店图书销售管理》的类图元素

  3. 绘制类图脚本程序

  4. 绘制的类图

二、PlantUML类图语法

1.类之间的关系绘制

示例:

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

示例:

@startuml
wtl11 <|.. wtl12
wtl13 --> wtl14
wtl15 ..> wtl16
wtl17 ..|>wtl18
wtl19 <--*wtl20
@enduml

 

示例:

@startuml
wtl #-- wtl22
wtl23 x--wtl24
wtl25 }-- wtl26
wtl27 +-- wtl28
wtl29 ^-- wtl30
@enduml

 

2.棒棒糖接口

需要定义棒棒糖样式的接口时可以遵循以下语法:

  • bar ()- foo
  • bar ()-- foo
  • foo -() bar

示例:

@startuml
class wtl
bar ()- wtl
@enduml

3.命名空间

示例:

@startuml
class wtl namespace net.dummy #DDDDDD {
.wtl <|-- Person
Meeting o-- Person .wtl <|- Meeting
} namespace net.foo {
net.dummy.Person <|- Person
.wtl <|-- Person net.dummy.Meeting o-- Person
} wtl <|-- net.unused.Person
@enduml

4.关系上如何添加标识

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

 示例:

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

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

示例:

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

5.如何添加方法

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

示例:

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

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

 示例:

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

6.抽象和静态

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

示例:

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

7.高级类体

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

8.备注和模板

模板通过类关键字("<<"和">>")来定义,可以使用note left of , note right of , note top of , note bottom of这些关键字来添加备注,你还可以在类的声明末尾使用note left, note right,note top, note bottom来添加备注。

示例:

 @startuml
class age << general >>
Object <|--- ArrayList
note top of Object : my age is
note "This is a table" as N1
Object .. N2
N2 .. ArrayList
class name
note left: my name is wtl
@enduml

9.如何给链接写注释

   定义链接之后,用 note on link 给链接添加注释。

示例:

 @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
end note
@enduml

10.如何使用非字母字符

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

示例:

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

11.隐藏属性、函数和类

    基础命令是: hide empty members. 这个命令会隐藏空白的方法和属性,可以使用 show/hide 命令来定义相关规则和例外,也可以使用 show/hide 命令来隐藏类。

示例:

 @startuml
class name {
+myMethods()
}
class age {
+hiddenMethod()
}
class school <<Serializable>> {
String school
}
hide members
hide <<Serializable>> circle
show Dummy1 methods
show <<Serializable>> fields
@enduml

示例:

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

12.类的泛型的定义

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

示例:

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

13.声明包

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

示例:

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

14.设计包的样式

  可以通过以下的命令来设置默认样式 : skinparam packageStyle,或者对包使用对应的模板。

示例:

 @startuml
scale 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

15.改变箭头方向

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

示例16:

@startuml
student o- name
student *-- age
@enduml
          

二、《书店图书销售管理》的类图元素

类图元素:图书档案、图书类型、出版社、书架设置、图书注销

三、绘制类图脚本程序

@startuml
skinparam class {
    BackgroundColor 99FFFF
    ArrowColor 919191
    BorderColor B5B5B5
}
class 图书档案管理 {
-图书编号:int
-类型代码:int
-图书名称:string
-作者:string
-译者:string
-ISBN:char()
-出版社名称:string
-价格:int
-页码数:int
-书架名称:string
-现存量:int
-库存总量:int
-入库时间:datatime
-建档操作员:char
-书籍简介:text
__
+创建新图书档案对象()
+添加()
+修改()
+删除()
+查找()
+打印()
+显示全部()
+退出() }
class 图书类型{
-类型代码:int
-类型名称:char
__
+创建新图书档案对象()
+添加()
+修改()
+删除()
+查找()
+打印()
+显示全部()
+退出()
}
class 出版社 {
-ISBN:int
-出版社名称:string
__
+创建新出版社对象()
+添加()
+删除()
+保存()
}
class 图书注销 {
-图书编号:int
-操作员:string
__
+显示全部图书信息()
+查找()
+选中注销图书()
+保存()
+退出()
}
class 书架设置 {
-书架编号:string
-书架名称:string
__
+创建书架设置对象()
+添加()
+修改()
+删除()
+保存()
+退出()
}
图书类型 --right--|> 图书档案管理
出版社 --|> 图书档案管理
图书注销--left--|> 图书档案管理
书架设置--|> 图书档案管理
@enduml

四、类图绘制

              

UML作业第三次:分析《书店图书销售管理系统》的更多相关文章

  1. UML作业第三次:分析《书店图书销售管理系统,绘制类图

    plantuml类图绘制方法的学习: 1.关于类图的学习: 类图显示了系统的静态结构. 类:类图中的主要元素,用矩形表示.矩形的上层表示类名.中层表示属性.下层表示方法. 类之间的关系:关联.依赖.聚 ...

  2. UML作业第三次:分析《书店图书销售管理系统》,绘制类图

    一. 类图语法学习小结(类间关系的表示方法) 1.抽象类和接口 我们用关键字abstract或abstract class来定义抽象类(抽象类用斜体显示).也可以使用interface,annotat ...

  3. 【UML九种图系列】之如何利用三层来绘制类图、时序图?

    UML并发视图:实体之间行为的交互,是动态.分为:时序图.协作图.状态图.活动图 一.时序图简述: 时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列. 元素: 角色 ...

  4. UML作业第三次

    一.学习小结 类之间的关系通过符号定义 : 使用.. 来代替 -- 可以得到点 线. 例如: @startuml Class01 <|-- Class02 Class03 *-- Class04 ...

  5. UML类图实例分析

    登录模块 某基于C/S的即时聊天系统登录模块功能描述如下: 用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是 ...

  6. UML类图(三)-------实例

    实例分析1——登录模块 某基于C/S的即时聊天系统登录模块功能描述如下: 用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较, ...

  7. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  8. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  9. 转:深入浅出UML类图(具体到代码层次)

    深入浅出UML类图 作者:刘伟 ,发布于:2012-11-23,来源:CSDN   在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML ...

随机推荐

  1. pip更新

    python -m ** install -U **

  2. Win10系列:C#应用控件进阶8

    LineGeometry LineGeometry控件通过指定直线的起点和终点来定义线.LineGeometry对象无法进行自我绘制,因此同样需要使用 Path元素来辅助呈现.LineGeometry ...

  3. ios打包unity应用以及配置签名

    先决条件是必须为苹果mac机.拥有公司苹果账号,并确保电脑上安装了unity,unity包 ios-support.和xcode. 1.打开了unity应用之后,选择buildSettings 然后点 ...

  4. 初写Linux脚本坑记录

    1.为变量赋值时=前后一定没有空格. 2.赋值时变量为xx,读取才是$xx.如赋值是$xx,则报语法错误.参考 http://www.jb51.net/article/52375.htm 3.脚本每句 ...

  5. jmeter保持登录

    1.添加配置元祖---http cookie 管理器(注意上面的http cookie管理器和其他的配置是对其的) 2.这里是当你想要配置多用户并发是要配置不同的账号,配置后记得上面的第一张图的清除c ...

  6. 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 20165326

    恶意代码分析 实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systra ...

  7. 2017-9-10"切题如切菜杯"模拟赛T4 ZZI

    题目 YYH拿到了父亲给的钱欣喜若狂,把这些钱拿来造了n栋房子.现在他要给这些房子通电.他有两种方法:第一种是在房间里搭核电发电机发电,对于不同的房子,他需要花不同的代价Vi:,第二种是将有电的房子i ...

  8. input ,button, textarea 1)使用disabled , 2) 显示值, 3) 表单提交. 4) jquery.form.js ajaxSubmit() 无刷新ajax提交表单.

    1.使用disabled input , button  textarea 可以 被 禁用, 禁用的效果 : 1) 上面的点击事件无法使用 --- button       : 下面的 onclick ...

  9. Firefox下载附件乱码的解决办法

    通过在http的header里设置fileName下载附件时,中文文件名通过chrome浏览器下载时正常,通过firefox下载时为乱码: 原来的Java代码: response.addHeader( ...

  10. Java学习笔记(4)

    比较两个String时,用==比较两个String是否引用同一个对象,s1.equals(s2)比较两个对象的内容是否相同,也可以用s1.compareTo(s2)来确定两个String的内容是否相同 ...