软工题第六章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章习题

一、选择题

1. 对象是面向对象范型的( A )。每个对象可用它自己的一组( B )和它可以执行的一组( C )来表征。应用执行对象的( C )可以改变该对象的( B )。它的应用必须通过( D )的传递。可以认为,这种( D )的传递大致等价于过程性范型中的函数调用。某些语言提供了特殊功能,允许对象引用自己。若一个对象没有显式地被引用,则可让该对象( E )。

供选择的答案:

A. ①基本单位②最小单位③最大单位④语法单位

B ~ C. ①行为②功能③操作④数据⑤属性

D. ①接口②消息③信息④操作⑤过程

E. ①撤消②歇着③缺省④隐式引用⑤引用自己

2.在面向对象软件开发过程中特别重视复用。软件构件应独立于当初开发它们的应用而存在。在以后的应用开发中,可以调整这些独立构件以适应新问题的需要。因此,应使得类成为一个( A )的单元。这样就有一个( B )生存期问题。( B )生存期有自己的步骤,与任一特定应用的开发( C )。按照这些步骤,可以完整地描述一个基本( D )。而不仅仅考虑当前正在开发的系统。系统开发的各个阶段都可能会标识新的类。随着各个新类的标识,( B )生存期引导开发工作逐个阶段循序渐进。

在设计与实现类时,应尽可能利用既存类提供为当前应用所需要的功能,利用既存类的三个可能途径是:( E )复用既存类;对既存类进行( F )以得到满足要求的类;重新开始进行开发。

供选择的答案:

A. ①可复用②可测试③可适用④可靠

B. ①应用②寿命③类④软件

C. ①相关②密切相关③负相关④无关

D. ①概念②实体③事件④事情

E, F. ①修改②更新③照原样④演化

3 从分析到设计的过程流如图所示。一旦已经开发完成一个合理完整的( A )模型后,就要着手( B )的设计。这需要描述( B )的特征,以准确表达待实现的用户需求,以及实现需求所必须的支持环境。一旦定义了各个( B ),就开始( C )设计,这时,可利用CRC卡片,将属性转换为( D ),将关系转换为( E )。

供选择的答案:

A ~ C. ①分析②系统设计③模块设计④子系统设计

⑤对象设计⑥数据设计⑦操作设计⑧行为设计 D ~ E. ①对象②数据结构③算法④消息传递

⑤控制⑥并发处理⑦进程⑧过程

二、简答题

1. 用面向对象范型开发软件时与用结构化范型开发软件时相比较,软件的生命周期有何不同?这种差异带来了什么后果?

2. 为什么在开发大型软件时,采用面向对象范型比采用结构化范型较易取得成功?

3. 为什么说夏利牌汽车是小汽车类的特化,而发动机不是小汽车类的特化?

4. 对象和属性之间有何区别?

5. 什么是对象?它与传统的数据有何异同?

6. 什么是模型?开发软件时为什么要建立模型?

7. 试用面向对象方法分析设计下述程序:

在显示器屏幕上圆心坐标为(100,100)的位置有一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,弧的起始角度为30度,结束角度为120度,半径为50.

8. 用面向对象方法解决下述问题时需要哪些对象类?类与类之间有何关系?

在显示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”。

9. 试建立下述订货系统的用例模型。

假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下列数据:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。

10. 为什么说面向对象方法与人类习惯的思维解题方法比较一致?

第六章习题习题

一、选择题

1. 答案: A. ①, B. ⑤, C. ③, D. ② E. ③

分析:对象是面向对象范型的基本单位。每个对象可用它自己的一组属性和它可以执行的一组操作来表征。应用执行对象的操作可以改变该对象的属性,属性一般只能通过操作来改变。它的应用必须通过消息的传递。发送给一个对象的消息定义了一个方法名和一个参数表(可能是空的),并指定某一个对象。而由一个对象接收的消息则引用消息中指定的方法的代码,并将实际参数与参数表中相应的形式参数结合起来。接收对象对消息的处理可能会改变对象中的状态,即改变接收对象的属性,并发送一个消息给自己或另一个对象。可以认为,这种消息的传递大致等价于过程性范型中的函数调用。然而,执行方法得到消息结果的目的是想修改相关对象的内部状态,而不只是修改变元并返回它们。某些语言提供了特殊功能,像smalltalk提供了self,允许对象引用自己。若一个对象没有显式地被引用,则可让该对象缺省。

2. 答案:A. ①, B. ③, C. ④, D. ②, E. ③, F. ④

分析:在面向对象软件开发过程中特别重视复用。软件构件应独立于当初开发它们的应用而存在。构件的开发瞄准某些局部的设计和实现,它们可用于当前问题的解决,但为了在以后的项目中使用,它们还应当足够通用。在以后的应用开发中,可以调整这些独立构件以适应新问题的需要。为使得类成为一个可复用的单元,有一个类生存期的问题。

类生存期与应用生存期交叉。在应用生存期的每一个阶段都可做类的标识。类生存期有自己的步骤,与任一特定应用的开发无关。按照这些步骤,可以完整地描述一个基本实体。而不仅仅考虑当前正在开发的系统。系统开发的各个阶段都可能会标识新的类。随着各个新类的标识,类生存期引导开发工作逐个阶段循序渐进。

在设计与实现类的时候,有三种利用既存类的途径:

相关文档
最新文档