Thinking in uml 01 为什么需要uml
一.面向过程面向对象
面向过程和面向对象是认识世界的两种方式。面向对象的目的从来不是为了复用,而是对象提供了一种处理复杂性问题的方式。
1.面向过程
面向过程认为世界是由一个个相互关联的小系统组成的,还认为每个小系统都有着明确的开始和明确的结束,开始和结束之间有着严谨的因果关系。只要将系统中的每一个步骤和影响该系统走向的所有因素都分析出来,就能完全定义该系统的行为。
这种认识论的前提是,过程是稳定的,或者我们需要枚举所有可能的信息的组合。那么,On-DemandBusiness的实现就非常困难。
另外,计算机通过数据来记录过程的变迁。过程中的每一步都会产生、修改或读取一部分数据。每一个环节完成后,数据将顺着过程传递到下一步,当达到预期状态的时候,我们认为过程结束。所以,数据非常重要,尤其是数据的正确性和完备性对系统的成功至关重要。
2.面向对象
面向对象将世界看作一个个相互独立的对象,相互之间并没有因果关系。只有在某个外力驱动下,对象之间才会依据某种规律相互传递信息。这些交互构成了一个过程,在没有外力的情况下,对象则保持着静止状态。
每个对象都只与有限的其他对象有关系,每个对象不再需要从整个系统的角度来分析。而且面向对象的一个重要特征是抽象层次。抽象层次的好处是不论在哪一个层次,都只需要面对有限的复杂度和有限的对象结构。
过程并非世界的本源,过程是由通过特定规则组织起来的一些对象表现出来的。这样,分析设计从过程分析变成了对象获取,从数据结构变成了对象结构。
二.UML
UML是一种建模语言,所有的语言都只包括基本词汇和语法。主要特点:统一语言和可视化。
1.从现实世界到业务模型
UML采用用例这一关键元素捕获现实世界的人要做的事,再通过用例场景、领域模型等视图将现实世界的人、事、物、规则描述出来。
2.从业务模型到概念模型
主要包括边界类(boundary)、实体类(entity)和控制类(control)。
3.从概念模型到设计模型
在设计模型中,边界类可以转化为操作界面或系统接口;控制类可以转化为计算程序或控制程序,比如工作流、算法体等;实体类可以转化为数据库表、XML文档或者其他带有持久化特征的类。
三.统一过程RUP
1.RUP与UML
RUP和UML是不同的两个领域:UML是一种语言,用来描述软件过程中产生的文档;RUP是指导如何产生这些文档以及这些文档讲述什么的方法。
要站在软件过程的角度,先了解一个软件项目是如何做的,再去UML中寻找需要的工具,用UML中适合的工具把软件过程要达到的要求记录下来。
2.RUP与XP
RUP和XP都是非常优秀的软件方法,有各自的适用范围。
XP追求在变化中用最快速的方法适应变更,用小的管理成本保证质量。
RUP是一种追求稳定的软件方法,它追求开发稳定架构,控制变更,立足于长期战略,适用于指导大中型软件产品的开发。
无论采用哪种软件方法都不妨碍使用UML来做软件的分析和设计。