PlantUML+EA描述《分析模式》第6章存货和会计(9)

0 阅读1分钟

《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

图片