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

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. C# 指定程序打开指定文件

    Process process = new Process(); process.StartInfo.FileName = 指定程序exe文件路径: process.StartInfo.Argumen ...

  2. elementUi中input输入字符光标在输入一个字符后,光标失去焦点

    elementUi中input输入字符光标在输入一个字符后,光标就退出,无法输入需要再次聚焦然后输入一个字符又再次退出 首先,用elementUi正常用v-model绑定输入的值是不会造成光标退出的, ...

  3. php 根据输入的参数,获取上季度最后一个月的时间

    public function getTime( $time ='2017-06-01 00:00:00'){ $month = date('m',strtotime($time)); $season ...

  4. istio-opentracing链路追踪方案

    目录 istio-opentracing链路追踪方案 envoy链路追踪 初始化追踪 跟踪上下文信息 istio链路追踪 链路追踪参数 采样率 jaeger istio中jaeger现状 jaeger ...

  5. highchart 十字准星 crosshairs

    crosshairs: true, crosshairs: [true, true], // 同时启用竖直及水平准星线 crosshairs: [{ // 设置准星线样式 width: 2, colo ...

  6. AngularJs在ng-click函数中获取代表当前元素的DOM对象

    html代码 <div ng-click="test($event)">111</div> Controllers.js $scope.test= func ...

  7. pc端结合canvas实现简单签名功能

    需求:业务员做提交时要签名... 代码不多简单易懂,直接看代码 <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  8. 在.net core web项目中生成二维码

    1.添加QRCoder包引用 2. public IActionResult MakeQrCode()        { string url="https://www.baidu.com& ...

  9. EAP-MD5计算方法

    一.说明 领导要求确认设备进行802.1X认证时,是否直接将用户名密码明文传给交换机.配好端口镜像.搭好Radius环境后进行了抓包分析. 二.计算 2.1 802.1X认证过程 完整流程如下: 客户 ...

  10. 使用idea搭建maven项目,结果spring-mybatis.xml文件报红“Cannot resolve file 'jdbc.properties' less... (Ctrl+F1) Inspection info:Spring XML model validation”

    错误如下图: 解决方案: 暂时只是使用右下角的highlightinglevel来屏蔽,拖动到最左边就行了