企业组织架构的领域建模
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
版—— ——推广到机构 2.4 领域模型第三版——推广到机构 间和岗位间的直线管理关系
推而广之,机构间的上下级关系、岗位间的上 下级关系,其实也会随着时间而变动,只是变 动的频率极小。 岗位和机构间的隶属关系不会随着时间而改变 。 引入机构之间管理和岗位之间管理抽象解决上 述问题。
领域模型第四版—— ——发现当事人 2.5 领域模型第四版——发现当事人 和责任抽象
简单性
整个模型只有两个核心概念:当事人和责任。
一致性
各种当事人之间通过一致的方式——责任机制发生联系
灵活性
举例:获取在指定时间点某机构下的所有员工
可扩展性
通过增加新的当事人类型或新的责任类型可以扩展系统的功能,同时只增加一 点点复杂性,没有破坏一致性。
关注第四维—— ——时间维度 3 关注第四维——时间维度
发现新的当事人类型——职务(Job)。 发现新的责任类型——聘用(Employment)、 劳动合同(LaborContract)等等。 多维组织——通过引入新的责任类型实现(市 交警支队的直线管理上级是市公安局,业务管 理上级是省交警总队……)。 ……
“四性合一 四性合一” 2.7 “四性合一”
识别领域中的本质抽象—— ——当事人 2 识别领域中的本质抽象——当事人 和责任模式
通过领域模型的不断精炼的过程达到简单性、 一致性和灵活性、扩展性的统一。
2.1 组织架构中的实体
组织架构中明显的业务实体有三个: 机构——为完成某种职能所建立的实体单位。 机构之间通过上下级关系形成树形结构。 岗位——在各级机构中设立的专门用于处理某 方面事务的职位。 员工——企业聘用来承担某种具体工作的个人 。
领域模型第一版—— ——基本实体关 2.2 领域模型第一版——基本实体关 系(续)
未能解决的问题 张三是什么时候担任技术总监的? 2007年5月1日,张三担任什么岗位?
领域模型第二版—— ——引入任职抽 2.3 领域模型第二版——引入任职抽 象
通过引入“任职(EmployeePostHolding)”抽 象: 从岗位和员工中转移获取任职信息的责任。 可以查找在历史上任意时刻,某个员工担任哪 (几)个岗位,某个岗位有哪(几)位员工担 任。 解除了岗位和员工之间的耦合,两者都不依赖 于对方,缩小了接口规模并提高了内聚性和可 重用性。
通过上面的模型演化,隐约发现深藏的领域抽 象——当事人和责任。 以“当事人(Party)”概括表示机构、岗位和 员工,以“责任(Accountability)”表示 两 个当事人之间在一定的时间范围内存在的责任 关系。 最终得出组织架构模型的本质:各种类型的当 事人以及它们之间的责任关系。
领域模型第五版—— ——井喷式发展 2.6 领域模型第五版——井喷式发展
4.1 领域模型第一版
问题:
员工对象包含了多方面的信息,违背单一责任原则。 无法解决问题1:张三离职后重新加入本公司,怎么 知道两个员工对应着同一个人?怎么知道他以前是本 公司员工,他以前的工资待遇是多少? 无法解决问题2:员工不一定都是系统的用户(HR系 统可能只开放给人力资源部员工使用),用户也不一 定都是员工(HR软件供应商保留着一个用户账号用于 维护调试)。 不实行接口分离,上述两问题很难得到简单、优雅的 解决方案。
从员工、自然人和用户关系领域模型的演变看 如何实现单一责任原则和实现灵活性
4.2 领域模型第二版
实现了接口分离,符合单一责任原则。 解决了上节中的第一个问题。 未解决上节中的第二个问题。
4.3 领域模型第三版
解决了4.1节中的第二个问题。
5 总结
通过深入分析领域中的共性部分,发现隐含的 本质抽象。 隐含的抽象往往比明显的抽象更重要。 不仅要记录现状,还要记录历史。 关注OO的原则(单一责任原则,开放封闭原则 ),OO原则比设计模式更重要,前者是后者的 目标。 通过将直接关联转化为关联类,能够解除两个 领域类之间的耦合,提供更丰富的关联信息, 引入灵活性和扩展性。
领域模型第一版—— ——基本实体关 2.2 领域模型第一版——基本实体关 系
该模型表达了以下的业务逻辑:
机构是层次性的,机构之间通过上下级关系形成一棵单根的树 。除总部之外,每个机构有且只有一个上级机构。 每个机构下面可设立多个岗位,每个岗位只属于一个机构。 类似于机构,岗位之间也通过上下级关系形成树形结构。除最 高岗位之外,每个岗位有且只有一个上级岗位。 岗位与员工之间是多对多的关系。每个员工可担任一或多个岗 位,每个岗位可容纳0或多个员工。 员工与机构之间没有直接的隶属关系。员工通过担任某机构下 的岗位间接地与机构之间形成隶属关系。
企业组织架构的领域建模
领域建模概述 识别领域中的本质抽象——当事人和责任模式 关注第四维——时间维度 分离责任——员工、自然人和用户
1 领域建模概述
领域建模是对问题域进行建模。用来揭示业务 领域中有哪些关键实体,以及它们之间如何相 互作用以实现业务行为。 领域模型直接对应到N层架构中的领域层。 领域建模就是发现领域中的抽象并为其分配职 责的过程。
从责任模式看时间维度——实体之间的关联会 随着时间而变化 实体的某些属性(如员工的行政级别、职称等 级、工资级别、岗位的编制人数)也会随着时 间而改变。 这些关联和属性的变更通常对应着现实中的业 务行为。 一个系统,至少系统中的关键部分,必须实现 时间维度,能够获取历史上任意时间点的系统 现状。
分离责任——员工、 ——员工 4 分离责任——员工、自然人和用户
推而广之,机构间的上下级关系、岗位间的上 下级关系,其实也会随着时间而变动,只是变 动的频率极小。 岗位和机构间的隶属关系不会随着时间而改变 。 引入机构之间管理和岗位之间管理抽象解决上 述问题。
领域模型第四版—— ——发现当事人 2.5 领域模型第四版——发现当事人 和责任抽象
简单性
整个模型只有两个核心概念:当事人和责任。
一致性
各种当事人之间通过一致的方式——责任机制发生联系
灵活性
举例:获取在指定时间点某机构下的所有员工
可扩展性
通过增加新的当事人类型或新的责任类型可以扩展系统的功能,同时只增加一 点点复杂性,没有破坏一致性。
关注第四维—— ——时间维度 3 关注第四维——时间维度
发现新的当事人类型——职务(Job)。 发现新的责任类型——聘用(Employment)、 劳动合同(LaborContract)等等。 多维组织——通过引入新的责任类型实现(市 交警支队的直线管理上级是市公安局,业务管 理上级是省交警总队……)。 ……
“四性合一 四性合一” 2.7 “四性合一”
识别领域中的本质抽象—— ——当事人 2 识别领域中的本质抽象——当事人 和责任模式
通过领域模型的不断精炼的过程达到简单性、 一致性和灵活性、扩展性的统一。
2.1 组织架构中的实体
组织架构中明显的业务实体有三个: 机构——为完成某种职能所建立的实体单位。 机构之间通过上下级关系形成树形结构。 岗位——在各级机构中设立的专门用于处理某 方面事务的职位。 员工——企业聘用来承担某种具体工作的个人 。
领域模型第一版—— ——基本实体关 2.2 领域模型第一版——基本实体关 系(续)
未能解决的问题 张三是什么时候担任技术总监的? 2007年5月1日,张三担任什么岗位?
领域模型第二版—— ——引入任职抽 2.3 领域模型第二版——引入任职抽 象
通过引入“任职(EmployeePostHolding)”抽 象: 从岗位和员工中转移获取任职信息的责任。 可以查找在历史上任意时刻,某个员工担任哪 (几)个岗位,某个岗位有哪(几)位员工担 任。 解除了岗位和员工之间的耦合,两者都不依赖 于对方,缩小了接口规模并提高了内聚性和可 重用性。
通过上面的模型演化,隐约发现深藏的领域抽 象——当事人和责任。 以“当事人(Party)”概括表示机构、岗位和 员工,以“责任(Accountability)”表示 两 个当事人之间在一定的时间范围内存在的责任 关系。 最终得出组织架构模型的本质:各种类型的当 事人以及它们之间的责任关系。
领域模型第五版—— ——井喷式发展 2.6 领域模型第五版——井喷式发展
4.1 领域模型第一版
问题:
员工对象包含了多方面的信息,违背单一责任原则。 无法解决问题1:张三离职后重新加入本公司,怎么 知道两个员工对应着同一个人?怎么知道他以前是本 公司员工,他以前的工资待遇是多少? 无法解决问题2:员工不一定都是系统的用户(HR系 统可能只开放给人力资源部员工使用),用户也不一 定都是员工(HR软件供应商保留着一个用户账号用于 维护调试)。 不实行接口分离,上述两问题很难得到简单、优雅的 解决方案。
从员工、自然人和用户关系领域模型的演变看 如何实现单一责任原则和实现灵活性
4.2 领域模型第二版
实现了接口分离,符合单一责任原则。 解决了上节中的第一个问题。 未解决上节中的第二个问题。
4.3 领域模型第三版
解决了4.1节中的第二个问题。
5 总结
通过深入分析领域中的共性部分,发现隐含的 本质抽象。 隐含的抽象往往比明显的抽象更重要。 不仅要记录现状,还要记录历史。 关注OO的原则(单一责任原则,开放封闭原则 ),OO原则比设计模式更重要,前者是后者的 目标。 通过将直接关联转化为关联类,能够解除两个 领域类之间的耦合,提供更丰富的关联信息, 引入灵活性和扩展性。
领域模型第一版—— ——基本实体关 2.2 领域模型第一版——基本实体关 系
该模型表达了以下的业务逻辑:
机构是层次性的,机构之间通过上下级关系形成一棵单根的树 。除总部之外,每个机构有且只有一个上级机构。 每个机构下面可设立多个岗位,每个岗位只属于一个机构。 类似于机构,岗位之间也通过上下级关系形成树形结构。除最 高岗位之外,每个岗位有且只有一个上级岗位。 岗位与员工之间是多对多的关系。每个员工可担任一或多个岗 位,每个岗位可容纳0或多个员工。 员工与机构之间没有直接的隶属关系。员工通过担任某机构下 的岗位间接地与机构之间形成隶属关系。
企业组织架构的领域建模
领域建模概述 识别领域中的本质抽象——当事人和责任模式 关注第四维——时间维度 分离责任——员工、自然人和用户
1 领域建模概述
领域建模是对问题域进行建模。用来揭示业务 领域中有哪些关键实体,以及它们之间如何相 互作用以实现业务行为。 领域模型直接对应到N层架构中的领域层。 领域建模就是发现领域中的抽象并为其分配职 责的过程。
从责任模式看时间维度——实体之间的关联会 随着时间而变化 实体的某些属性(如员工的行政级别、职称等 级、工资级别、岗位的编制人数)也会随着时 间而改变。 这些关联和属性的变更通常对应着现实中的业 务行为。 一个系统,至少系统中的关键部分,必须实现 时间维度,能够获取历史上任意时间点的系统 现状。
分离责任——员工、 ——员工 4 分离责任——员工、自然人和用户