一. 类图语法学习小结(类间关系的表示方法)

1.抽象类和接口

我们用关键字abstractabstract class来定义抽象类(抽象类用斜体显示).也可以使用interface,annotationenum关键字.

abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection List <|-- AbstractList
Collection <|-- AbstractCollection Collection <|- List
AbstractCollection <|- AbstractList
AbstractList <|-- ArrayList class ArrayList {
Object[] elementData
size()
} enum TimeUnit {
DAYS
HOURS
MINUTES
} annotation SuppressWarnings

2.包

我们可以使用 package 声明包(包可以被定义为嵌套).

@startuml
package "Classic Collections" # {
Object <|-- ArrayList
} package net.sourceforge.plantuml {
Object <|-- Demo1
Demo1 *- Demo2
}
@enduml

3.命名空间

在包中,类的名称是该类的唯一标识符,这意味着在不同的包中不能有两个同名的类.

在这种情况下,应该使用名称空间而不是包。

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

 4.关系类

我们可以在定义了两个类之间的关系后定义一个 关系类 association class.

@startuml
class Student {
Name
}
Student "0..*" - "1..*" Course
(Student, Course) .. Enrollment class Enrollment {
drop()
cancel()
}
@enduml

5.帮助布局

有时,帮助布局并不完美.我们可以使用together关键字将一些类组合在一起:布局引擎将尝试将它们组合在一起(就像它们在同一个包中).

@startuml
class Bar1
class Bar2
together {
class Together1
class Together2
class Together3
}
Together1 - Together2
Together2 - Together3
Together2 -[hidden]--> Bar1
Bar1 -[hidden]> Bar2
@enduml

二. 书店图书管理系统

类:

图书|会员|会员卡|工作人员|售卖信息

类的属性:

图书:

图书编号:string

ISDN号:string

书名:string

作者:string

出版社:string

定价:float

出版日期:date

会员:

会员编号:string

姓名:string

性别:string

出生日期:date

职业:string

电话:string

地址:string

邮编:int

邮箱:string

会员卡:

会员编号:string

办证日期:date

会员积分:string

会员等级:string

补办日期:date

工作人员:

工作人员编号:string

姓名:string

性别:string

出生日期:date

岗位:string

学历:string

职称:string

售卖信息:

图书编号:string

出售日期:date

书名:string

会员编号:string

工作人员编号:string

三. 上述类之间关系

会员(1)--(1)会员卡

会员卡

|

工作人员 -- 出售 -- 售卖信息

|

图书

图书(1)<--(n)售卖信息(n)-->(1)会员卡

(n)

|

\/

(1)

工作人员

四. 类图脚本程序

@startuml
skinparam class {
BackgroundColor F0F0F0
ArrowColor
BorderColor B5B5B5
}
skinparam stereotypeCBackgroundColor CDC5BF package "图书信息" #D6D6D6{
class 图书{
- 图书编号:string
- ISDN号:string
- 书名:string
- 作者:string
- 出版社:string
- 定价:float
- 出版日期:date
} class 售卖信息{
- 图书编号:string
- 出售日期:date
- 书名:string
- 会员编号:string
- 工作人员编号:string
}
} package "会员信息" <<Frame>> #D6D6D6{
class 会员{
- 会员编号:string
- 姓名:string
- 性别:string
- 出生日期:date
- 职业:string
- 电话:string
- 地址:string
- 邮编:int
- 邮箱:string
} class 会员卡{
- 会员编号:string
- 办证日期:date
- 会员积分:string
- 会员等级:string
- 补办日期:date
}
} class 工作人员{
- 工作人员编号:string
- 姓名:string
- 性别:string
- 出生日期:date
- 岗位:string
- 学历:string
- 职称:string
} 会员卡"" -- ""会员
图书"" <-left- "n"售卖信息
售卖信息"n" -right-> ""会员卡
售卖信息"n" --> ""工作人员
@enduml

五.类图

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

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

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

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

    分析图书销售管理系统 一.概览 PlantUML类图语法学习小结 <书店图书销售管理>的类图元素 绘制类图脚本程序 绘制的类图 二.PlantUML类图语法 1.类之间的关系绘制 示例: ...

  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. maven war项目完整配置

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  2. 找出点的密集区域,javascript实现,html5 canvas效果图

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. vue中$refs的使用

    vue中$refs获取组件或元素: 获取的元素就相当于是一个原生获取的元素,可以进行操作 this.$refs.ele.style.color = 'red

  4. Linux和windows 平台下启动和关闭mysql服务

    Linux平台下启动和关闭mysql服务 一.linux下查看mysql服务的两种方式: 方式一: [root@localhost bin]ps -ef|grep mysql 方式二: [root@l ...

  5. Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...

    1.Eclipse无法正常启动,弹出对话框内容为 A Java Runtime...如下图: 原因分析:由于软件版本的更新或者安装其他开发软件无意之间修改了配置文件中的路径,众所周知,Java虚拟机( ...

  6. 多个yml文件的读取方式

    1配置pom.xml文件,以下配置将默认激活-dev.yml配置文件<profiles>        <profile>            <id>dev&l ...

  7. C#十进制与任意进制的转换

    /// <summary> /// 将十进制转换为指定的进制 /// </summary> /// <param name="Val">十进制值 ...

  8. ThinkPHP5.0 开发手册

    ThinkPHP5.0开发手册地址 https://www.kancloud.cn/manual/thinkphp5/118003 此博文仅仅作为个人笔记存储,没有广告,宣传的意图

  9. ie11~ie9兼容的布局写法。bootsteap的12栅格,栅格化就可以实现。

    全局 CSS 样式 设置全局 CSS 样式:基本的 HTML 元素均可以通过 class 设置样式并得到增强效果:还有先进的栅格系统. 概览 深入了解 Bootstrap 底层结构的关键部分,包括我们 ...

  10. Jsp的table导出Excel

    var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.in ...