面向对象技术引论练习题 1、给出下列概念的定义,并说明它们在软件开发中的作用: (1)对象 (2)类 (3)属性 (4)服务 (5)继承 (6)封装 (7) 关联 (8)聚合 (9) 消息 (10)抽象 2、介绍面向对象方法的主要思想,论述该方法为什么有利于改进软件开发。 3、以你所学习的OOA方法为背景,阐述OOA的主要过程与策略。 4、介绍在OOA和OOD模型中对下述概念(建模元素)的表示法。分别画出一般的图形表示,加以必要的解释,并给出一个例子。 类极其属性与服务 一般-特殊结构(包括多态性的表示) 整体-部分结构(包括多重性的表示) 实例连接(包括多重性的表示) 消息连接 5、(选做)用一幅图表示OOA的主要活动以及它们之间的关系。 6、针对建立类图的活动回答下述问题(从5个小题中选做一个): 为了发现候选的对象,应考虑问题域中哪些事物?如何判断一个候选的对象是否有用? 如何决定在各类对象中应定义哪些属性服务? 考虑哪些问题有助于建立一般-特殊结构?审查中应对哪些不合适的情况进行调整? 考虑哪些问题有助于建立整体-部分结构?审查中应对哪些不合适的情况进行修改? 如何决定在各个对象类之间应建立哪些实例连接和消息连接? 7、(选做)在一个商品订货系统中有供货商和购货商两类对象。一个供货商或购货商都可能与多方签订供需合同。 (1)画出这两种类及对象以及它们之间的实例连接。 (2)讨论这样的实例连接将给实现带来什么困难。 (3)给出一种解决办法,画出修改后的结果。 8、在OOD中用一些相对独立的组成部分隔离实现条件对整个模型的影响,这种设计方法可带来什么好处?简要介绍按此方法建立的OOD模型的每个组成部分及其作用。 (9—13题选做一个) 9、在OOD中要对OOA模型做哪些方面的调整使之成为OOD模型的问题域部分? 10、在OOD中为何有时要把多继承化为单继承?通过一个具体例子说明如何使用整体-部分结构把多继承化为单继承,分别画出转化前后的结构。 11、在人机交互部分的设计中如何运用类及对象、属性、服务、一般-特殊结构、整体-部分结构等概念表达图形用户界面中的有关成分? 12、进行任务管理部分的设计时需要识别哪几类任务?如何用主动对象表示任务? 13、在进行数据数据管理部分的OOD时,假如已选定用关系型数据管理系统进行数据存储,试回答:(1)怎样进行数据存放设计?(2)怎样设计数据管理部分的类及对象?(3)问题域部分应做哪些修改? 14、以你所知的一种编程语言为背景,对整体-部分结构给出两种不同的实现方式。讨论,用这两种方式实现的整体-部分结构有何差异?各自适合于何种不同情况? 15、针对表中列出的OOA/OOD模型成分,填写C++语言、Smalltalk和Eiffel语言中可实现这些成分的元素。 模型成分 C++ Smalltalk Eiffel  对象 Object Object Object  类 Class Class Class  属性 成员变量 实例变量 变量  服务 成员函数 Method 例程  一般-特殊结构 基类和派生类 超类子类 祖先和子孙  整体-部分结构 嵌套对象或嵌入指针 嵌套对象 嵌套对象  实例连接 对象指针 对象标识集合 例程调用  消息连接 函数调用 消息 嵌入对象指针