架构方法学习总结
一、软件设计三阶段
需求分析阶段:通过用户、场景、需求的分析确定系统(或产品)功能的范围与优先级(用例图)。
概要设计阶段:根据系统功能,设计出系统的实现模型(部署图和组件图)。
详细设计阶段:根据组件图完成类的设计,用来指导并约束代码落地(类图)
1、基于垂直泳道图,识别领域(核心领域、支撑领域、通用域),每个垂直泳道为不同领域;
2、基于每个流程图内部,具体细分场景(活动图),识别限定上下文
3、领域驱动概念
领域:一个组织所做的事情以及其包含的一切,通俗地说,就是组织的业务范围和做事方式,也是软件开发的目标范围。
子域:领域是一个组织所做的事情以及其包含的一切。这个范围就太大了,不知道该如何下手。所以通常的做法是把整个领域拆分成多个子域,比如用户、商品、订单、库存、物流、发票等。
限界上下文:在一个子域中,会创建一个概念上的领域边界,在这个边界中,任何领域对象都只表示特定于该边界内部的确切含义。这样边界便称为限界上下文。限界上下文通常和子域具有一对一的关系,用来控制子域的边界,保证子域内的概念统一性。
上下文映射图:不同的限界上下文,也就是不同子域之间会有各种的交互合作。DDD 使用上下文映射图来设计这种关联和交互。
实体:领域模型对象也被称为实体,每个实体都是唯一的,具有一个唯一标识,一个订单对象是一个实体,一个产品对象也是一个实体,订单 ID 或者产品 ID 是它们的唯一标识。实体可能会发生变化,比如订单的状态会变化,但是它们的唯一标识不会变化。
值对象:并不是领域内的对象都应该被设计为实体,DDD 推荐尽可能将对象设计为值对象。比如像住址这样的对象就是典型的值对象。
聚合:聚合是一个关联领域对象的集合,我们将其作为一个单元来处理数据更改。每个集合都有一个根和一个边界。边界定义了聚合内部的内容。根是聚合中包含的单个特定实体。
二、UML 关系
三、 5 种 UML 图
组件部署图、组件图、用例图、时序图、类图
用例图需识别系统边界
评论