读书笔记のThinking in UML
2018-01-21 本文已影响31人
046ef6b0df68
以下内容不一定全符合文章直译,有些仅个人理解,仅供参考!
愿大家软件构建过程中,沟通不再困难,思路也更清晰。
一、 为什么需要UML
- 所有技术都是人们在采用不同的方法来认识和描述这个世界时所采用的工具,它们都只是表征而不是本征。
- 面向对象编程的目的从来就不是复用,而是提供一种处理复杂问题的方式。
- 面向过程的困难:面向过程将世界看作是过程化的,一个个紧密相连的系统,构成这个系统的各个部分之间有着密不可分的因果关系。所以说,并不是面向过程的方法不正确,而是因果关系太多。
- 面向对象方法将世界看作一个个相互独立的对象,相互之间并无因果关系。由大及小(自顶向下)来抽象。而面向对象的困难在于How抽象。
- 需求分析比设计更为重要,如果不符合客户需求,再好的设计也是等于零。
- 面向对象的设计方法(OOD)实现职责分工,但相互之间的沟通需要解决,且不能丝毫的偏差,所以UML起到很大的作用(统一语言)。
- 可视化语言带来的信息量大,特别是相互直接的关系,也很明确,不会像文字朦胧和费力。
可视化语言解决面向对象的困难步骤:
- 从现实到业务模型
actor元模型作为信息来源提供者,用例表示驱动者的目标
- 从业务模型到概念模型
分析模型介于原始需求和计算机实现之间,是一种过渡模型。
绘制分析模型的最主要元模型为:边界类,实体类,控制类。
从UML观点来讲,边界类和实体类不能相互访问,需要通过控制类代理访问。
- 从概念模型到设计模型
-
RUP与UML的关系类似于音乐理论和五线谱的关系,而软件项目真正的灵魂是软件过程,UML只是工具。
-
RUP和XP(极限编程)各有自己应用的场景,RUP适合长期,开发稳定的软件产品,XP适合变化快,成本低的软件产品。
-
软件产品最佳实践来自两个方面:设计模式、过程类。
二、建模基础
- 抽象角度的不同决定了建模方向的不同。
- 不要决定去通盘考虑,而是找出问题领域内包含的抽象角度。
- 人们所认识的事物概念都是抽象的,具象只是一个相对的概念。同时,由于人脑对信息的处理能力是由限度的,如果信息量超过了人脑的处理能力,人就会失去对这个事物的理解能力。
- 自底向上的方法适用于在实践中改进和提高认识。
- 人们了解一件事物,需要了解这个事物的很多方面,才能到达真正的了解,所以,要我们经常需要分析很多个改对象的实例所参与的场景,以获得对象的多个侧面,再通过归纳整理这些对象的多个实例抽象出对象的一般特性。
- 要明确的是对象是离散的,它不是因为该场景而存在的。
- 我们要防止也不应该去打破对象的边界,去窥探对象的内部。就好像打破鸡蛋,会有一滩黏糊糊的蛋清弄脏了手。
- 对象分析方法原则:独立性、原子性、抽象性、层次性。