《大象UML》看书笔记2:

时间:2022-01-30 11:07:36

《大象UML》看书笔记2

抽象角度:                                                       
在为现实世界建模的时候,首先要搞清楚有多少参与者,每个参与者的目标是什么,参与者的目标就是我们需要的抽象角度。

什么是模:                                                       
确定了抽象角度就是确定了目标,接下来就是要找到满足这一目标的事物,我需要利用面向过程的方法找到:

1、贡献于场景目标的"物",

2、这些"物"如何贡献于场景

抽象角度确定的目标需要由特定的场景来完成,场景(事件)=静态的事物(物)+特定的条件(规则)+特定的动作(参与者的驱动)

用例驱动:                                                       
要解决问题就要归纳出所有的抽象角度(就是用例),为这些用例描述出可能出像的场景,描述出所有的场景,就实现了所有的用例,问题就解决了。

抽象层次:                                                       
抽象层次越高,具体信息越少,概括能力越强,信息量越大,结果越肯定,概括能力越弱。

抽象层次越高,被封装的信息就越多,信息量就小,就越容易理解和处理。

但是当信息量太小的时候,有不足以我们处理问题,因此我们要适当的选择抽象层次。

抽象有两种方法,自顶向下,自下向上

前者从最抽象的部分开始,概念少,信息量小,让你的思路更清晰,然后局部具体化,直到编码的工作。

后者一开始就要处理大量的底层信息,不利于我们的对事物的认识。

而我们就要直到什么时候选择什么样的抽象层次,以及共需要多少层,如果用UML建模的话,抽象层次就直接放映了用例的粒度。

视图 和 视角:                                                  
拿一辆车打比方,车的重量、外观、性能 ,这每一个属性就对应一个试图,每一个试图当中会有不同的视角,用以展示从不同角度看到的信息。

观察者只关心自己感兴趣的信息,因此在展示信息的时候,选择适当的视角并展示给实弹的观察者很重要。

对象分析方法:                                                  
1、一切都是对象:一切有名字的东西都是对象,我们要用下述的方法来分析它,就算是某个东西叫做某某业务流程,我们也要将他看作对象

2、对象都是独立的:对象是天然独立的,只是在某个特定的场景下,他们的某一个特定的实例才会联系在一起,而每一个场景中的这个实力都只是这个对象的一个侧面,要深入了解该对象,我们就需要对该对象在不同场景的多个实例进行分析,以获得其多个侧面,然后将反映多个侧面的这些实例进行抽象,得到这个对象的一般性。

3、在任何时候,分析过程都应该将对象视为一个不可分割的原子,不论这个对象多大,在与其他对象交互的时候都是一个整体。
     我们可以将对象看作是一个鸡蛋,不能将其打破,我们将我们对该对对象所有的认识都附加到其边界上,在实现该对象之前,不能窥探其内部,
这被称作面向借口编程。

4、对象是可抽象的:对象在一个场景中的实例就是对象的一个面,我们可以将这个面抽象成一个接口(???不理解),对象参与的场景越多,那么它具有的面越广,
么它就越有抽象价值。

5、对象具有层次性:抽象层次高,描述越粗略,适应能力强,抽象层次低,信息更详细,但是适应能力差。我们可以设定多个抽象层次来减少工作量。从需求到设计,我们已经分出了几个抽象层次,但是在我要说的是在其中一个阶段,比如需求阶段,仍然可以分为几个抽象层次。