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