面向对象编程技术
1.UML(unified Modeling Language)统一建模语言
UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业
人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划--就像建
筑工人多年来所使用的建筑设计图一样。
UML成为"标准"建模语言的原因之一在于,它与程序设计语言无关。UML符号集只是一种语言而不是一种方
法学。这点很重要,因为语言与方法学不同,它可以在不做任何更改的情况下很容易地适应任何公司的业务
运作方式。它还提供了多种类型的模型描述图(diagram),当在某种给定的方法学中使用这些图时,它使得
开发中的应用程序的更易理解。UML的内涵远不只是这些模型描述图,但是对于入门来说,这些图对这门语言
及其用法背后的基本原理提供了很好的介绍。通过把标准的UML图放进您的工作产品中,精通UML的人员就更
加容易加入您的项目并迅速进入角色。
常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。
(1) 用例图
用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统
的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例
之间的关系。用例图一般表示出用例的组织关系--要么是整个系统的全部用例,要么是完成具有功能(例如
,所有安全管理相关的用例)的一组用例。要在用例图上显示某个用例,可绘制一个椭圆,然后将用例的名
称放在椭圆的中心或椭圆下面的中间位置。要在用例图上绘制一个角色(表示一个系统用户),可绘制一个
人形符号。角色和用例之间的关系使用简单的线段来描述。
(2) 类图与对象图
类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。类图可用
于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类--摇滚乐队、CD、广播剧;或者贷款、住房抵押
、汽车信贷以及利率。类图还可用于表示实现类,实现类就是程序员所要编写的类。
类在类图上使用包含三个部分的矩形来描述,最上面的部分显示类的名称(实现类:直接显示类名,接口:在
上面注明《interface》,工具类:在上面注明《utlity》|如果类名用斜体或下面注明{abstract}说明该类是
一个抽象类),中间部分包含类的属性,最下面的部分包含类的方法。(属性和方法前面的"+"表示
public,"-"表示private,"#"表示protected 属性冒号后面的是属性的类型或方法后面括号里的是参数类型,
冒号后面的是方法的返回类型)。
对象图用来表述类的实例化对象,对象图用两层矩形来表示,上层标识对象名和类名,下层标识对象的实例化属性值。
类与类之间的关系:
继承:指一个类从其父类派生而来,继承了父类的方法和属性,基于类的继承叫做一般化,基于接口的继承叫做实现。
关联:类之间的关联大多用来表示变量实例持有对其他对象的引用,双向关联和单项关联。
依赖:是不同类的实例之间的暂时关系,双向依赖和单向依赖。
聚合是一种特殊的关联,组合是一种比聚合关联性更强的关联。
类与类的关联,聚合,组合可标识为 0...*表示该类可以和0个或多个类相关联,聚合,组合 1...*表示该类
可以和1个或多个类相关联,聚合,组合 1,2,3...表示该类只可以和1,2,3...个类相关联,聚合,组合
实线+三角:一般化 虚线+三角:实现 实线:双向关联 实线+箭头:单向关联 虚线:双向依赖 虚线+箭头:单向依赖 实线+空四边形:聚合 实线+实四边形:组合
2.面向对象的建模技术(Object-Oriented Modeling Technique OMT)
对象建模技术是由美国通用电气公司提出的一套系统开发技术。它以面向对象的思想为基础,通过对问题进
行抽象,构造出一组相关的模型,从而全面的描述问题。
OMT把分析时收集到的信息构造在三类模型中:功能模型(做什么)、对象模型(对谁做)、动态模型(怎样做)
(1) 功能模型
功能模型由多个数据流图构成,它们指明从外部输入,通过操作和内部存储,直到外部输出的整个数据流情况
。功能模型还包括了对象模型内部数据间的限制。数据流图形成一个层次结构,一个数据流图的过程可以由下
一层的数据流图进一步说明。UML用用例图和活动图描述功能模型。
建立功能模型的主要步骤:
1.确定输入和输出值
2.用数据流体来表示功能的依赖性
3.具体描述每个功能
4.确定限制
5.确定功能优化的准则
(2) 对象模型
对象模型描述系统的静态结构,包括类和对象,他们的属性和操作,以及他们之间的关系。对象模型用包含对象和对象之间关系的图来表示。
UML用关系图和对象图来描述对象模型。
建立对象模型的主要步骤:
1.确定对象类
2.定义数据词典,并用它来描述类的属性和类之间的关系。
3.用继承来组织和简化类的结构和类之间的关系。
4.测试访问路径。
5.根据对象之间的关系和对象的功能将对象分组建立模块。
(3) 动态模型
动态模型用状态图和事件跟踪图来描述。状态图是状态和事件以及他们之间的关系所形成的网络,侧重于每一类对象的动态行为。事件跟踪
图则侧重于说明系统执行过程中的一个特定场景,描述完成系统某个功能的一个事件序列。对象到对象的单个消息叫做一个事件。在系统的一
个特定环境下发生的一系列事件叫做一个场景。UML使用状态图和序列图来描述动态模型,序列图对应事件跟踪图。
建立动态模型的主要步骤:
1.准备典型的交互序列场景
2.确定对象之间的事件,为每个场景建立事件跟踪图。
3.为每个系统准备一个事件流图。
4.为具有重要动态行为的类建立状态图。
5.检验不同状态图中共享的事件的一致性和完整性。