《大象UML》看书笔记2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

《大象UML》看书笔记2:的更多相关文章

  1. UML看书笔记1:主体思想

    对象设计需要解决的三大问题:      1.把“现实世界”映射到“对象世界”      2.从“对象世界”描述“现实世界”      3.验证“对象世界”是否反映了“现实世界” 现实世界与我们的对象世 ...

  2. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  3. spring笔记----看书笔记

    上周末看了一章以前javaee轻量级的书spring部分,简单做了一些笔记 // ApplicationContext ac=new ClassPathXmlApplicationContext(&q ...

  4. 数据结构看书笔记(二)--算法(Algorithm)简介

    算法:是解决问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 算法的特性:算法具有五个特性:输入.输出.有穷性.确定性.可行性 输入输出:算法具有零个或多个输入:至 ...

  5. 精通javascript(看书笔记)

    变量的类型检查 //检测类型 var str = "Hello World"; if (typeof str=="string") {//使用typeof来判断 ...

  6. 《深入理解 JVM 虚拟机》 --- 看书笔记

    1.JVM 内存溢出 1.堆溢出:堆要不断的创建对象,如果避免了垃圾回收来清除这些对象,就会产生JVM内存溢出.一般手段是通过内存映像分析工具对Dump出来的堆转储快照进行分析,分清楚到底是内存泄露还 ...

  7. python早期看书笔记

  8. 设计模式学习起点 UML类图笔记

    UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...

  9. 到底怎么样才叫看书?——Tony Zhao's

    到底怎么样才叫看书?——上篇 目录: 一.引入 二.经历了就能理解 三.读书要分级 四.只读经典 五.别吝惜你动笔的那点时间 一.引入 看到这个题目的时候你可能会感到有点好笑:“这还用问,看书就是把书 ...

随机推荐

  1. 配置分割Tomcat日志

    安装cronolog 官网下载:http://cronolog.org/usage.html ./configuremake;make install 或者 yum install cronolog ...

  2. Qt Installer Framework的学习

    Qt Installer Framework是Qt默认包的发布框架.它很方便,使用静态编译Qt制作而成.并且使用了压缩率很高的7z对组件进行压缩.之所以有这些好处,我才觉得值得花一点儿精力研究一下这个 ...

  3. Linux 中将用户添加到组的指令

    在 Linux 操作系统下,如何添加一个新用户到一个特定的组中?如何同时将用户添加到多个组中?又如何将一个已存在的用户移动到某个组或者给他增加一个组?对于不常用 Linux 的人来讲,记忆 Linux ...

  4. Mybatis 的Log4j日志输出问题 - 以及有关日志的所有问题

    使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志.有些时候就不能. 无法输出日志的时候,无论怎么配置log4j,不管是properties的还是xml的,都不起作用. 有些时 ...

  5. HDU 2227 Find the nondecreasing subsequences (线段树)

    Find the nondecreasing subsequences Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/3 ...

  6. IT第十天 - String和StringBuffer的比较、编程设计技巧整理、本周总结 ★★★

    IT第十天 上午 String 1.String在进行多次的+扩展时,会严重的降低处理效率,因为String长度是不可变的,在进行+运算改变字符串时,会自动创建很多临时字符串,并不是在原字符串上追加, ...

  7. Linux 终端部分重要快捷键

    tab  自动补全文件名,目录名或命令名ctrl+c  强行终止当前程序Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+z 将当前程序放到后台运行 ...

  8. 大Q品牌故事_大Q官网_腾讯旗下买卖宝公司倾力打造

    大Q品牌故事_大Q官网_腾讯旗下买卖宝公司倾力打造 走在大路上的改变者,有态度的互联网手机品牌

  9. CSS块元素与内联元素(转)

    为什么<a><span>这种标签定义width,height等CSS属性时会发现完全不生效? 因为它们不是容器,它们是内联元素,不是块元素 CSS 块元素与内联元素 关键字: ...

  10. Android:源码环境下移植第三方的apk内置到ROM(System Image)中

    1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...