原图2.8EA绘制
图2.8 当责。
使用当事者,当责可以涵盖广泛的当事者间责任,包括管理、雇佣和合约。
PlantUML
@startuml
skinparam linetype ortho
skinparam ranksep 60
skinparam nodesep 120
class 当责类型
class 当责
class 时间段
class 当事者
class 人
class 组织
当责类型 "1" -- "0..*" 当责
时间段 "1" -- "0..*" 当责
当责 "0..*" -- "-委托方1" 当事者
当责 "0..*" -- "-责任方1" 当事者
当事者 <|-- 人
当事者 <|-- 组织
当责类型 -[hidden]down- 当责
当责 -[hidden]down- 时间段
当责 -[hidden]right- 当事者
当事者 -[hidden]right- 组织
@enduml
原图2.9
EA绘制
图2.9 当责的知识级和操作级。
知识级对象定义操作级对象的合法配置。只能根据相应的当责类型和当事者类型在当事者之间创建当责。
PlantUML
@startuml
skinparam ranksep 160
skinparam nodesep 140
class 动作
class 当责
class 当责类型
class 当事者
class 当事者类型
class 时间段
当责类型 "0.." -- "-委托方s\n1.." 当事者类型
当责类型 "0.." -- "-责任方s\n1.." 当事者类型
当责 "0..*" -- "-委托方1" 当事者
当责 "0..*" -- "-责任方1" 当事者
当责类型 "-类型1" -- "0..*" 当责
当事者类型 "-类型1" -- "0..*" 当事者
当责 "0..*" -- "1" 时间段
当责 "0.." -- "0.." 动作
note right of 当责
约束:
类型.委托方s->includes(委托方.类型)
and
类型.责任方s->includes(责任方.类型)
end note
当责类型 -[hidden]right- 当责
当事者类型 -[hidden]right- 当事者
@enduml
原图2.10
EA绘制
图2.10 允许当事者类型具有子类型和超类型。
给当事者类型添加泛化使定义知识级变得更容易
PlantUML
@startuml
skinparam ranksep 120
skinparam nodesep 180
class 当责
class 当责类型
class 当事者
class 当事者类型
当责类型 "0.." -- "-委托方s\n1.." 当事者类型
当责类型 "0.." -- "-责任方s\n1.." 当事者类型
当责 "0..*" -- "-委托方1" 当事者
当责 "0..*" -- "-责任方1" 当事者
当责类型 "-类型1" -- "0..*" 当责
当事者类型 "-类型1" -- "0..*" 当事者
当事者类型 "-子类型s\n0..*" -- "-超类型\n0..1" 当事者类型
note top of 当责
约束:
(委托方.类型->closure(超类型))->intersection(类型.委托方s)->notEmpty()
and
(责任方.类型->closure(超类型))->intersection(类型.责任方s)->notEmpty()
end note
当责类型 -[hidden]left- 当责
当事者类型 -[hidden]left- 当事者
@enduml
原图2.11
EA绘制
图2.11 层级当责类型。
所添加的约束意味着通过此类型的当责来链接的当事者必须形成一个层级结构。
PlantUML
@startuml
class 当责类型
class 层级当责类型
当责类型 <|-- 层级当责类型
note right of 层级当责类型
约束:
对于此类型的“当责”,
“当事者”只对其中一个负责。
end note
@enduml
原图2.12
EA绘制
图2.12 分级当责类型。
分级当责支持固定级别,如销售办事处、分部、地区。
PlantUML
@startuml
skinparam ranksep 80
skinparam nodesep 180
class 当责类型
class 分级当责类型
class 层级当责类型
class 当事者类型
当责类型 <|-- 分级当责类型
当责类型 <|-- 层级当责类型
当事者类型 "-级别s* {sequence}" -right- " * " 分级当责类型
note bottom of 分级当责类型
约束:
“当事者”只对唯一的“当事者类型”
为级别列表中的下一个级别的“当事者”负责。
end note
note bottom of 层级当责类型
约束:
对于此类型的“当责”,“当
事者”只对其中一个负责。
end note
@enduml
原图2.13
EA绘制
图2.13 重新平衡当责类型的子类型。
一个更好地组织当责类型层级结构的方式。
PlantUML
@startuml
skinparam ranksep 80
skinparam nodesep 120
class 当责类型
class 层级当责类型
class 分级当责类型
class 定向当责类型
class 当事者类型
分级当责类型 -up-|> 当责类型
定向当责类型 -up-|> 当责类型
层级当责类型 -left-|> 当责类型
分级当责类型 "" -- "-级别s\n{sequence}" 当事者类型
定向当责类型 " " -right- "-委托方s" 当事者类型
定向当责类型 " " -- "-负责方s" 当事者类型
@enduml
原图2.14
EA绘制
图2.14 操作范围
操作范围定义当责在创建时所承担的责任。它们可以用于职务描述。
PlantUML
@startuml
class 当责
abstract class 操作范围
class 地点
class 临床护理范围
class 协议范围
class 资源供给
class 销售区域
class 观察概念
class 数值
class 协议
class 数量
class 资源类型
class 产品类型
操作范围 <|-- 临床护理范围
操作范围 <|-- 协议范围
操作范围 <|-- 资源供给
操作范围 <|-- 销售区域
当责 "1" -- "0..*" 操作范围
地点 "0..1" -- "*" 操作范围
临床护理范围 "0..*" -- "1" 观察概念
协议范围 "0..*" -- "-数额1" 数值
协议范围 "0..*" -- "1" 协议
资源供给 "0..*" -- "1" 数量
资源供给 "0..*" -- "1" 资源类型
销售区域 "0..*" -- "1" 产品类型
@enduml