软工题第六章.docx
《软工题第六章.docx》由会员分享,可在线阅读,更多相关《软工题第六章.docx(13页珍藏版)》请在冰豆网上搜索。
软工题第六章
第六章习题
一、选择题
1.对象是面向对象范型的(A)。
每个对象可用它自己的一组(B)和它可以执行的一组(C)来表征。
应用执行对象的(C)可以改变该对象的(B)。
它的应用必须通过(D)的传递。
可以认为,这种(D)的传递大致等价于过程性范型中的函数调用。
某些语言提供了特殊功能,允许对象引用自己。
若一个对象没有显式
地被引用,则可让该对象(供选择的答案:
A.①基本单位
E)。
②最小单位③最大单位
②功能③操作
④语法单位
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.④
分析:
在面向对象软件开发过程中特别重视复用。
软件构件应独立于当初开发它们的应用而存在。
构件的开发瞄准某些局部的设计和实现,它们可用于当前问题的解决,但为了在
以后的项目中使用,它们还应当足够通用。
在以后的应用开发中,可以调整这些独立构件以适应新问题的需要。
为使得类成为一个可复用的单元,有一个类生存期的问题。
Si
类生存期与应用生存期交叉。
在应用生存期的每一个阶段都可做类的标识。
类生存期有自己的步骤,与任一特定应用的开发无关。
按照这些步骤,可以完整地描述一个基本实体。
而不仅仅考虑当前正在开发的系统。
系统开发的各个阶段都可能会标识新的类。
随着各个新类的标识,类生存期引导开发工作逐个阶段循序渐进。
在设计与实现类的时候,有三种利用既存类的途径:
§原封不动地复用既存类。
§对既存类进行演化以得到满足要求的类。
§重新开始进行开发。
3.答案:
A.①,B.④,C.⑤,D.②,E.④
分析:
从分析到设计的过程流如图所示。
一旦已经开发完成一个合理完整的分析模型后,
就要着手子系统的设计。
这需要描述子系统的特征,以准确表达待实现的用户需求,以及实
现需求所必须的支持环境。
在定义子系统时,需要在用户需求的整个上下文环境中互相协调:
各个用户需求分配给
哪个子系统在00A中定义的对象驻留在哪个子系统内哪些子系统并发运行负责协调和控制它们的系统构件是谁全局资源在子系统中如何管理等。
在设计子系统的过程中,需要定义4种重要的设计构件:
§问题论域:
负责实现用户需求的子系统。
§人机交互:
实现用户界面的子系统(包括可复用的GUI子系统)。
§任务管理:
负责控制和协调各种事件驱动、时钟驱动、并发执行任务的子系统。
§数据管理:
负责对象存储和检索的子系统。
每一个构件都可以用一些类、必须的关系和行为来定义。
构件之间的关系可以通过建立
每个构件的消息模型来建立。
一旦定义了各个子系统,包括上述的各个设计构件,就开始对象(类)设计,这时,可利
用CRC卡片,将类转换为设计实现,转换工作如图所示。
二、简答题
1.答:
用结构化范型开发软件时,软件的生命周期如下:
(1)陈述需求阶段;
(2)规格说明(分析)阶段;
(3)设计阶段;
(4)实现阶段;
(5)维护阶段。
用面向对象范型开发软件时,软件的生命周期为:
(1)陈述需求阶段;
(2)面向对象分析阶段;
(3)面向对象设计阶段;
(4)面向对象实现阶段;
(5)维护阶段。
粗看起来,用这两种不同的范型开发软件时软件生命周期基本相同。
但是,仔细分析起来就会发现两者之间有本质差别。
用结构化范型开发软件时,规格说明(分析)阶段的主要任务是,确定软件产品应该“做什么”;而设计阶段通常划分成结构设计(即概要设计)和详细设计这样两个子阶段。
在结构设计子阶段,软件工程师把产品分解成若干个模块,在详细设计子阶段再依此设计每个模块的数据结构和实现算法。
如果使用面向对象范型开发软件,则面向对象分析阶段的主要工作是确定对象。
因为对象就是面向对象软件的模块,因此,在面向对象分析阶段就开始了结构设计的工作。
由此可
见,面向对象分析阶段比它在结构化范型中的对应阶段规格说明(分析)阶段走
得更远,工作更深入。
这两种范型的上述差异带来了重要的结果。
使用结构化范型开发软件时,在分析阶段和设计阶段之间有一个很大的转变:
分析阶段的目的是确定产品应该“做什么”,而设计阶段的目的是确定“怎么做”,这两个阶段的工作性质明显不同。
相反,使用面向对象范型开发软件时,“对象”从一开始就进入了软件生命周期,软件工程师在分析阶段把对象提取出来,在设计阶段对其进行设计,在实现阶段对其进行编码和测试。
由此可见,使用面向对象范型开发软件时,在整个开发过程中都使用统一的概念“对象”,围绕对象进行工作,因此,阶段与阶段之间的转变比较平缓,从而减少了在开发软件过程中所犯的错误。
2.答:
结构化技术要么面向怎么处理(例如,面向数据流的设计方法),要么面向数据(例如,面向数据结构的设计方法),但却没有既面向处理又面向数据的结构化技术。
用结构化技术开发出的软件产品的基本成分,是产品的行为(即处理)和这些行为所操作的数据。
由于数据和对数据的处理是分离的,尽管开发者把程序划分成了许多模块,但是这些模块之间的联系却是比较紧密的,因此,使用结构化范型开发出的软件产品本质上是一个完整的单元。
由此带来的后果是,软件规模越大,用结构化范型开发软件的技术难度和管理难度就越大。
与结构化技术相反,面向对象技术是一种以数据为主线,把数据和处理相结合的方法。
面向对象范型把对象作为由数据及可以施加在这些数据上的操作所构成的统一体。
用面向对象范型开发软件时,构成软件系统的每个对象就好像一个微型程序,有自己的数据、操作、功能和用途,因此,可以把一个大型软件产品分解成本质上相互独立的小产品来处理,这就不仅降低了软件开发的技术难度,而且也使得对软件开发工作的管理变得相对容易了。
3.答:
夏利牌汽车具有小汽车的全部属性和行为,它只不过是一种特定品牌的小汽车,因此,夏利牌汽车可以从基类“小汽车”派生出来,也就是说,夏利牌汽车是小汽车类的特化。
发动机是组成小汽车的一种零件,小汽车还有车身、车灯、轮子等许多种其他零件,小汽车所具有的许多属性和行为发动机都不具有,因此,发动机不能从小汽车类派生出来,它
不是小汽车类的特化。
4.答:
对象是对客观世界实体的抽象,它是描述实体静态属性的数据和代表实体动态行为的操作结合在一起所构成的统一体。
属性只