1 面向对象与uml
1面向对象的基本特点
- 客观世界是由对象组成的,任何客观事物都是对象。复杂对象可由简单对象组成。
- 具有相同数据和行为方法的对象可以归并为一个类,对象是类的一个实例。一个类可以产生多个实例。例如, 上学的可归并为一个学校类,学校都有学校名吧,有地址吧,它们还都能招生、学生上课。这些都是它们所抽象出来共有的,所以可以将它们归为一个类。每个学校则是具体的对象,学校可以有多个。
- 类可以派生子类,子类继承父类的全部特性。还可以有自已的特性。子类与父类形成层次关系。学校可以再分类为大学,中学,小学。它们都有校名,地址,教育学生等学校都有特性与功能。大学有大学的课程,中学有中学的课程,这就体现了子类除了有继承父类的所有特征外还可以有自己的特性。
- 对象之间可以通过消息传递互相联系。类具有封闭性,它的数据与操作对外是不可见的。外界只能通过消息请求某些操作,获得需要的服务。我想就是样,我的父母把我送去那该死的学校,在我考得不好的时候学校通知家长来开会的原因吧:)
uml是一种建模语言,而所有的语言都是由语法和基本词汇两部分组成的,uml也不例外。uml定义了一些建模所需要的、表达某种特定含义的基本元素,这些元素称为元模型,相当于语言中基本词汇。例如用例、类等。另外uml还定义了这些元模型相互之间关系的规则,以及如何用这些元素和规则绘制图形以建立模型来映射现实世界,这些规则和图形称为表示法或视图,相当于语言中的语法。
2.1 使用uml的好处
1 语言统一( 建立一种标准,让人和机器都能读懂)
2 可视化 (使隐晦的含义可视化)
3 如何用uml描绘现实世界并解决面向对象的难题?
3.1从现实世界到业务模型
建立模型是人们解决现实世界问题一种常用方手段。建立模型是指通过对客观事物建立一抽象方法,用来表征事物并获得对事物的理解。再把这种理解概念化,并交这些逻辑概念组织起来,形成对所观察对象内部结构和工作原理的便于理解的表达。无论什么行业、做什么业务,其本质无非是人、事、物、和规则组成的。人是一切的中心,人要做事,做事就会使用一些事物并产生另一些事物,同时做事会遵循一些规则。人驱动系统,事体现过程,物记录结果,规则是控制。建立模型的关键是弄明白有什么人,做什么事,什么事产生什么物,中间有什么规则,再把人、事、物之间的关系定义出来,一个模型就基本成型了。
uml是不是也提供了这样的元素来为现实世界建立模型呢?
1 uml 采用称之为参与者的元模型作为信息来源提供者,也是第一驱动者。参与者代带现实世界的“人”。建立模型的意义完全由参与者决定,所建立的模型也是为参与者服务的
2 uml采用称之为用例的一种元模型来表示驱动者的业务目标。也就是参与者想要做什么并且获得什么。这个业务目标就是现实世界中的“事”,而这件事是怎么做的,依据什么规则,则通过称之为业务场景和用例场景的UML视图来描绘的。这些场景就是现实世界中的“规则”,最后,UML通过被称之为业务对象模型的视图来说明在达成这些业务目标的过程中涉及到的事物,用逻辑概念来表示它们,并定义它们之间的关系。业务对象代表现实世界中的“物”。
UML通过上面的元模型和视图体现现实世界中的人、事、物和规则,于是现实信息转化成了业务模型,这是面向对象方法的第一步。
3.2 从业务模型到概念模型
从现实世界到业务模型只是原始需求信息,还无法形成执行代码,需要把这些信息换成一种可以指导开发的表达方式。UML通过称之为概念化的过程来建立适合计算机理解和实现的模型,这个模型称为分析模型。分析模型介于原始需求和计算机实现之间,是一种过度模型。分析模型向上映射了原始需求,向下对可执行代码的设计进行指导和约束。
绘制分析模型常用的元模型有:
- 边界类(狭义上讲就是大家熟悉的界面,广义上讲外面的事物和里面的事物交互的边界。两个不同职责的簇之间的交互都需要一个边界,换句话说,边界决定外面能对里面做什么“事”)
- 实体类(UML采用实体类来重新表达业务实体【即现实世界中参与者完成业务目标所涉及的事物】)
- 控制类 (边界和实体都是静态的,本身不会动作。UML采用控制类来表述原始需求中的动态信,即业务或用例场景中的步骤和活动)
3.3 从概念模型到设计模型
在设计模型中,概念模型中的边界类可以转化为操作界面或系统接口;控制类可转化成计算程序或控制程序;例如:工作流、算法体等;实体类可以转化成数据表、XML文档或其它持久化特征的类。这个转化遵循一些规则。规则如下
- 软件驾构和框架。软件架构和框架规定了实现类必须实现的接口、必须继承的超类、必须遵守的编程规则等。
- 编程语言。
- 规范或中间件。如果决定采用某个规范或中间件时,实现类就要遵循规范或中间件规定的那些特性。