软件工程期末考试复习(八)
面向对象方法学引论
面向对象方法学的优点
- 与人类习惯的思维方法一致
- 稳定性好
- 可重用性好
- 较易开发大型软件产品
- 可维护性好
面向对象的概念
1、对象的概念:在应用领域中有意义的,与所需要解决的问题有关系的任何事物都可以作为对象。对象是对问题领域中某个实体的抽象。
2、对象的特点:
- 以数据为中心
- 对象是主动的
- 实现了数据封装
- 本质上具有并行性
- 模块独立性好
3、其他概念:
1、类(class)
在面向对象的软件技术中,“类”就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。
2、实例(instance)
实例就是由某个特定的类所描述的一个具体的对象。“对象” 既可以指一个具体的对象,也可以泛指一般的对象,但是,“实例”必然是指一个具体的对象。
3、消息(massage)
消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由接收消息的对象、消息选择符(也称为消息名) 、 零个或多个变元3部分组成。
4、方法(method)
方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。在C++语言中把方法称为成员函数。
5、属性(attribute)
属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。在C++语言中把属性称为数据成员。
6、封装(encapsulation)
在面向对象的程序中,封装是指把数据和实现操作的代码集中起来放在对象内部。
对象具有封装性的条件如下:
(1) 有一个清晰的边界。所有私有数据和实现操作的代码都被封装在这个边界内,从外面看不见更不能直接访问。
(2) 有确定的接口(即协议)。这些接口就是对象可以接受的消息,只能通过向对象发送消息来使用它。
(3) 受保护的内部实现。实现对象功能的细节(私有数据和代码)不能在定义该对象的类的范围外访问。
封装就是信息隐藏,通过封装对外界隐藏对象的实现细节。
7、继承(inheritance)
在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。面向对象软件技术把类组成一个层次结构的系统(类等级):一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是继承性,一个类直接继承其父类的全部描述(数据和操作)。
8、多态性(polymorphism)
在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。即,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著提高了软件的可重用性和可扩充性。
9.重载(overloading)
有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。重载进一步提高了面向对象系统的灵活性和可读性。
4、面向对象具有以下四个要点:
对象模型
1、类图的基本符号
2、表示关系的符号
1.关联:关联表示两个类的对象之间存在某种语义上的联系。
(1) 普通关联
只要在类与类之间存在连接关系就可以用普通关联表示。普通关联的图示符号是连接两个类之间的直线,如下图所示。
2.聚集
聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系。使用的“包含”、“组成”、“分为……部分”等字句,意味着存在聚集关系。有共享聚集和组合聚集两种特殊的聚集关系。
(1) 共享聚集
如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。下图中,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是共享聚集关系。一般聚集和共享聚集的关联关系用空心菱形表示。
2.聚集
(2) 组合聚集
如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值了),则该聚集称为组合聚集(简称为组成)。
3.泛化
UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。
在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。
泛化关系指出在类与类之间存在“一般--特殊”关系。泛化可进一步划分成普通泛化和受限泛化。
用例图
1、一幅用例图包含的模型元素有系统、行为者、用例及用例之间的关系。右图是自动售货机系统的用例图。图中的方框代表系统,椭圆代表用例(售货、供货和取货款是自动售货机系统的典型用例),线条人代表行为者,它们之间的连线表示关系。
2、一个用例是可以被行为者感受到的、系统的一个完整的功能。
3、用例具有下述特征