《大象 Thinking in UML》学习笔记【第一章】——为什么需要UML

808 阅读4分钟

一、UML的定义

UML,即Unified Modeling Language又称统一建模语言标准建模语言,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。UML是一种是面向对象软件的标准化建模语言,要弄清UML,首先得搞清楚面向对象和面向过程。

二、面向过程和面向对象

对程序员来说,这两个概念通俗易懂的解释为:

面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

三、面向过程的困难

面向过程的困难,本质上是因为面向过程方法将世界看作是过程化的,一个个紧密相连的小系统,构成这个系统的各个部分之间有密不可分的因果关系。需求复杂度低的时候很管用,系统因素一多,过程就很难模拟,因此提出了面向对象。

四、面向对象的困难

面向对象是把世界看作是由许多对象组成的,然而现实世界和对象世界之间存在着一道沟壑,如何抽象出对象。

要跨越这道沟壑,我们需要:

  • 一种把现实世界映射到对象世界的方法;
  • 一种从对象世界描述现实世界的方法;
  • 一种验证对象世界行为是否正确反映了现实世界的方法。

而UML就是跨越这道沟壑的方法。

五、UML的特点

UML是一种建模用的语言,就是一种建模用的语言,包含模型和关系,类似于语言中的基本词汇和语法。

UML的特点是统一,形成一种标准让人和机器都能读懂。

UML的优点是可视化,通过原模型和表示法,更加准确直观表达出文字难以表达的内容。

六、从现实世界到业务模型

建模是对客观事物建立一种抽象方法,用来表征事物以及对事物本身的理解。

如果我们站在很高的抽象层次,以高度归纳的视角来看这个世界的运作,就会发现现实世界无论多复杂,本质都是由人、事、物、规则组成。人驱动系统,事体现过程,物记录结果,规则是控制。

建模的关键就是弄明白有什么人,什么人做什么事,什么事产生什么物,中间有什么规则,再把人、事、物之间的关系定义出来,一个模型也就基本成型了。

# UML提供的为现实世界建模的元素:

(1)UML采用 参与者(actor)作为信息来源提供者,代表了现实世界的“人”。建立的模型的意义完全由参与者决定,所建立的模型也是完全为参与者服务,参与者是整个建模过程的中心。

(2)UML采用 用例(use case)代表驱动者的 业务目标,即参与者想要做什么、获得什么。业务目标就是现实中的“事”。

(3)UML采用 业务场景(business scenario)代表 规则。事是怎么做的,依据什么规则,均通过场景和用例场景的UML视图来描绘。

七、从业务模型到概念模型

UML通过称之为概念化的过程(Conceptual)来建立适合计算器理解和实现的模型,这个模型称为分析模型(Analysis Mode)。

绘制分析模型最主要的元模型有:

① 边界类(boundary)

② 实体类(entity):实体类映射了现实世界中参与者完成业务目标时所涉及的事务。

③控制类(control):边界和实体都是静态的,本身并不会动作,因此采用控制类来表示动态信息,即业务或用例场景中的步骤和活动。

我们再来总结一下:

  • 边界类类似于系统中的界面,决定操作能不能做,代表了事
  • 实体类由领域模型转化而来,重新表达了业务实体,代表了物
  • 控制类表达了需求中的动态信息,体现了规则

八、从概念模型到设计模型(程序实现)

边界类可以被转化为操作界面或者系统接口;

控制类可以被转化为计算程序或者控制程序,例如工作流、算法题等。

实体类可以转化为数据库表、XML文档等。

九、统一过程(RUP)

RUP是对UML使用最为全面、最为复杂的建模方法。

严格说UML并不是一种方法,只是一种语言,用来描述软件生产过程中要产生的文档,统一过程则是指导产生这些文档的方法。