《GJJ-004 分析模式及实现》,umlchina.com/url/video.html
原图6.33
EA绘制
图6.33 突显问题的账户结构。
如果使用多个汇总账户,有人可能会定义一个具有重叠明细账户的汇总账户。
PlantUML
@startuml
object "X: 汇总账户"
object "ACM: 汇总账户"
object "Megabank: 汇总账户"
object "ACM酬金: 明细账户"
object "ACM支出: 明细账户"
object "Megabank支出: 明细账户"
object "Megabank酬金: 明细账户"
object "支出: 汇总账户"
object "酬金: 汇总账户"
"ACM: 汇总账户" --> "X: 汇总账户"
"酬金: 汇总账户" --> "X: 汇总账户"
"ACM酬金: 明细账户" --> "ACM: 汇总账户"
"ACM支出: 明细账户" --> "ACM: 汇总账户"
"Megabank支出: 明细账户" --> "Megabank: 汇总账户"
"Megabank酬金: 明细账户" --> "Megabank: 汇总账户"
"ACM支出: 明细账户" --> "支出: 汇总账户"
"Megabank支出: 明细账户" --> "支出: 汇总账户"
"ACM酬金: 明细账户" --> "酬金: 汇总账户"
"Megabank酬金: 明细账户" --> "酬金: 汇总账户"
@enduml
原图6.34
EA绘制
图6.34 引入派生账户。
PlantUML
@startuml
skinparam nodesep 120
skinparam ranksep 120
class 账户
class 分录
class 派生账户 {
--
constraints
{分录s->forAll(e | 账户过滤器.是否包括(e))}
}
class 账户过滤器 {
+ 是否包括(分录)
}
class 支出分录
class 支出类别
派生账户 --|> 账户
支出分录 --|> 分录
账户 "1" -- "0..*\n-分录s" 分录
派生账户 "0..*" -- "1" 账户过滤器
支出分录 "0..*" -- "1" 支出类别
@enduml
原图6.35
EA绘制
图6.35 放弃会计模型所定义的支出。
派生账户仍然允许我们使用所有报告行为,但我们失去了跟踪行为。
PlantUML
@startuml
skinparam ranksep 120
class 客户
class 支出 {
- 金额: 币值
- 日期: 日期
}
class 支出类别
客户 "0..1" -- "0..*" 支出
支出 "0..*" -- "1" 支出类别
@enduml