2.1 建模
<1>.建模是什么:
建模是对客观的事物按某个角度进行抽象用来表征这些事物从而了解事物的本身,同时把这些理解概念化。将这些逻辑概念组织起来,形成对所观察的对象本身的内部结
构和工作原理的便于理解的表达。
建模主要讲了两个东西:怎么建模? 模是什么?
<2>.怎么建模 && 模是什么:
怎么建模:分析业务中都有哪些参与者,这些参与者的目标是什么。参与者的目标就是你的抽象角度
模是什么:
●模就是对于 人 基于什么 规则 作用于 事 ,产生了什么 物 的抽象。
●问题领域 = 抽象角度的累加和
抽象角度 = 问题领域边界之外的参与者的目标 = 业务用例
业务用例 = 特定场景的累加和
特定场景 = 静态的事物 + 特定的条件+ 特定的动作
2.2 用例驱动:
用例驱动包含下面四个视图:
<1> 逻辑视图:
描述人、事、物、条件 之间的组织关系
<2> 进程视图
描述人、事、物、条件 之间是如何进行交互的
<3> 部署视图
描述人、事、物、条件 之间是如何部署到物理节点上的
<4> 实施视图
包含三点内容:
◆列举模型包含的所有子系统
◆描述子系统如何分层和层次结构构件
◆描述子系统的导入依赖图解
应用于下面四个场景:
◆给个人、团队或分包商分配实施工作
◆确定程序修改代码量
◆考虑发不策略
◆阐明大规模复用的理由
描述 人、事、物、条件如何构成系统的零部件,以及我们如何组织人力生产和组装这些"零部件"以构成最终系统
2.3抽象层次
<1>关于抽象程度:
抽象层次高,包含的信息少,概括性高,容易理解,实现或部署不容易。
抽象层次低, 包含的信息多,概括性低,不容易理解,实现或部署容易。
<2>两种进行抽象分层的方法:
关键点:如何确定抽象粒度大小
自顶向下的分层: 好处是符合我们平时开发程序的逻辑,对过程进行精化
自底向上的分层: 适用于在在实践中对过程进行改进,提高认知。
2.4 视图
<1> 视图用于组织UML元素,表达出模型的某一方面的含义。
视角是指看待模型的角度,例如你看汽车外形时从前面看还是从后面看。
<2> 对于模型中的对象,应该从不同的视角来定义符合观看的人的需求的视图,例如将跨部门的流程的视图给某一个部门的职员看,非但要给他解释其他部门的东西且得不到 正确的建议
2.5 对象分析方法:
<1> 将业务中所有的东西都看做对象,哪怕是某某业务的流程
<2> 对象都是独立的:
我们通过一个个业务场景来分析对象的特性,但对象相对于这些业务场景是独立的,业务场景中的只是这个对象在该纬度上的一个投影,显示了这个对象的一部分信息。
我们是通过分析模型中该对象出现过的所有业务场景来理解这个对象并对其进行合适的抽象的。
<3> 对象是原子的:
在同一层次应当将对象看做是原子的,无论在这个层次对象大到银行、医院还是小到车轮、铆钉,都不该对其内部进行探究,那样只会让分析变得混乱。
<4> 对象都是可抽象的:
对象在不同的场景中,会展现对象的某一方面,这些事可以抽象出来的。
对象参与的场景越多,对象就越具有抽象价值,这些具有高抽象价值的对象常常会决定系统的成败。
<5>对象具有层次性:
对象的抽象层次越高,其描述的就越粗略,但适应能力就越广;对象的抽象层次越低,其描述的就越具体,但适应能力就越窄。分析时应依据问题的复杂度,设定多个抽象层次,在每个层次使用适合的抽象程度,从而降低分析的复杂性。