一、概述
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。
(2)把所有对象都划分成各种对象类(简称为类,Class),每个对象类都定义了一组数据和一组方法。
(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。
(4)对象彼此之间仅能通过传递消息互相联系。
面向对象=对象+类+继承+用消息通信
面向对象方法就是,既使用对象又使用类和继承等机制,而且对象彼此之间只能通过传递消息互相联系的方法。
二、概念
1、类Class:
具有相同数据和相同操作的一组对象;
2、实例Instance:
某个class描述的具体对象;
3、消息Message:
= object_ID. method_ID (parameter(s));
4、方法Method:
object能做的操作,亦称为service 、responsibility, 在 class 中须定义相应的代码;
5、属性Attribute :
object 的固有数据;
6、封装encapsulation:
是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。
7、继承Inheritance:
子类自动共享父类的attributes 和methods ,而不必重复定义。
8、多态性Polymorphism:
不同层次的 classes 可共享一个method名,但按各自的方式来实现这种 method。
9、 重载(Overloading):
有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同或被操作数的类型不同时,实现函数的算法或运算符的语义是不相同的。
三、面向对象建模
建模
- 为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。
- 模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。
三种形式的模型:
- 描述系统数据结构的对象模型
- 描述系统控制结构的动态模型
- 描述系统功能的功能模型
模型是一个系统的完整的抽象。
四、对象模型
UML?
统一:一种通用的标准。
建模:建立软件系统的模型。
语言:表明它是一套按照特定规则和模式组成的符号系统,它用半形式化方法定义,即用图形符号、自然语言和形式语言相结合的方法来描述定义的。
UML九种图:
用例图(Use Case Diagram)
类图(Class Diagram)
对象图(Object Diagram)
顺序图(Sequence Diagram)
协作图(Collaboration Diagram)
状态图(Statechart Diagram)
活动图(Activity Diagram)
组件图(Component Diagram)
部署图(Deployment Diagram)
类图:
- 定义类
表示类的图形符号为一个长方形,它分成上、中、下三个区域,上面区域中写类名,中部区域为类的属性,下部区域为类的操作(即服务)。
2. 命名
类名是一类对象的名字。
具体说来,为类命名时应该遵守以下几条准则:
(1)使用标准术语
(2)使用具有确切含义的名词
(3)必要时用名词短语作名字
- 描述类的属性
选取属性:
● 类的属性应该能够描述并区分该类的每个对象;
● 只有系统需要使用的那些特征才抽取出来作为类的属性;
● 选取属性时应该充分考虑系统建模的目的。
描述属性:
- UML描述属性的语法格式如下:
可见性 属性名:类型名=初值{性质串} - 属性名和类型名必须有。
- 属性的可见性(即可访问性)通常分为公有的、私有的和保护的三种,分别用加号(+)、减号(-)和井号(#)表示。
- 如果在属性名前面没有任何符号,则表示该属性的可见性尚未定义。
- UML没有缺省的可见性。
- 描述类的操作
选取操作:
操作用于检索、修改类的属性或执行某些动作。
● 操作围绕对类的属性数据所需要做的处理来设置,不设置与这些数据无关的操作;
● 只有系统需要使用的那些操作才抽取出来作为类的操作;
● 选取操作时应该充分考虑用户的需求。
描述操作:
- UML描述操作的语法格式为:
可见性 操作名(参数表):返回值类型{性质串}
-
其中,可见性和操作名是不可缺少的。
-
操作的可见性其含义与属性可见性的含义相同。
-
参数表由若干个彼此间用逗号(,)隔开的参数构成。书写参数的语法格式如下:
参数名:参数类型名=缺省值
表示关系的图形符号
1、关联关系(最常见)
关联关系表示两类对象之间存在着某种语义上的联系,也就是对象之间有相互作用、相互依靠的关系。
通常把两类对象之间的关联关系再细分为一对一(1∶1)、一对多(1∶M)和多对多(M∶N)等三种基本类型,类型的划分依据参与关联的对象的数目。
2、聚集
- 共享聚集
- 组合聚集
3、泛化(继承)关系
4、依赖和细化
五、动态模型
动态模型描述系统支持的对象间相互作用的关系,包括顺序图、协作图、状态图和活动图。
六、功能模型
功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。
功能模型由一组数据流图组成。
UML提供的用例图是进行需求分析和建立功能模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型。
用例是由系统所执行的一串操作顺序,其结果会对特定的操作者产生可观察的结果值。
用例是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列。
用例模型包括四个部分:操作者、用例、关系和系统边界。
- 操作者:人所扮演的角色或使用系统的事物
- 用例:操作者与系统交互的描述
- 关系:操作者与用例及用例与用例之间的有意义的联系
- 系统边界:包围用例的方框,说明正在建模的系统的边界