软件工程习题附答案.docx
《软件工程习题附答案.docx》由会员分享,可在线阅读,更多相关《软件工程习题附答案.docx(29页珍藏版)》请在冰豆网上搜索。
软件工程习题附答案
、选择填空
1.在面向对象方法中,对象可看成是属性(数据)以及这些属性上的专用操作的封装体。
封装是一种A技术,封
装的目的是使对象的B分离。
类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个C。
类之间共享属性和
操作的机制成为D。
一个对象通过发送E来请求另一对象为其服务。
A:
①组装
②产品化
B:
①定义和实现
②设计和测试
C:
①例证(illustration)
②用例(use-case)
D:
①多态性
②动态绑定
E:
①调用语句
②消息
③固化
④信息隐蔽
③设计和实现
④分析和定义
③实例(instanee)
④例外(exeeption)
③静态绑定
④继承
③命令
④口令
2•面向对象型的程序设计语言具有数据抽象、信息隐蔽、A等特征。
作为运算单位的对象应具有下列特性:
B、C、D。
是面向对象的语言。
A:
①对象调用②对象变换③非过程性④信息继承⑤并发性
B〜D:
1对象把数据和处理数据的操作结合为一体
2在程序运行时对象处于活动状态
3接受消息的对象必须给消息发送者以回答
4对象在计算中可向其他对象发送消息
5对象的内部状态只根据外部送来的消息才操作
E:
①C++②③④
3.OMT是一种对象建模技术,它定义了三种模型,它们分别是A模型,B模型,和C模型。
其中,A
模型描述了系统中对象的静态结构,以及对象之间的联系;B模型描述系统中与时间和操作顺序有关的系统
特征,表示瞬时的行为上的系统的控制”特征,通常可用D来表示;C模型描述了与值的变换有关的系
统特征,
通常可用
E来表小。
A:
①
对象
②功能
③ER
④静态
B:
①
控制
②时序
③
动态
④实时
C:
①
对象
②功能
③变换
④计算
D:
①
类图
②状态图
③对象图
④数据流图
E:
①
类图
②状态图
③
对象图
④数据流图
4.在完成概要设计并编写出相关文档后,应当组织对概要设计工作的评审。
评审的内容包括:
分析该软件的系统结构、子系统结构,确定该软件设计是否已经覆盖了所有已确定的软件需求,软件的每一成分是否可A到某一项需求。
分析软件的各部分之间的联系,确认该软件的内部接口与外部接口是否已经
明确定义。
模块是否满足
B和
C
的要求。
模块
D
是否在其
E
之内。
A:
①
覆盖
②
演化
③
追溯
④
等同
⑤
连接
B:
①
多功能
②
咼内聚
③
高耦合
④
咼效率
⑤
可读性
C:
①
多入口
②
低内聚
③
低耦合
④
低复杂度
⑤
低强度
D〜E:
①
作用范围
②
咼内聚
③
低内聚
④
取值范围
⑤
控制范围
5•软件设计中划分程序模块通常遵循的原则是要使各模块间的耦合性尽可能」A
三种可能的模块耦合是:
1).B:
例如,一个模块直接引用另一模块中的数据。
2).C:
例如,一个模块把开关量作为参数传送给另一模块。
3).D:
例如,一个模块把一个数值量作为参数传送给另一模块。
其中,E5的耦合性最强。
A:
①强
②适中
③弱
④不考虑
B〜E:
①公共耦合
②数据耦合
③逻辑耦合
④外部耦合
⑤内容耦合
⑥控制耦合
6.软件设计中划分模块的一个准则是A。
两个模块之间的耦合方式中,B耦合的耦合度最高,C耦合
的耦合度最低。
一个模块内部的内聚种类中D内聚的内聚度最高,E内聚的内聚度最低。
A:
①低内聚低耦合②低内聚高耦合③高内聚低耦合④高内聚高耦合
B:
①
数据
②非直接
③控制
④
内容
C:
①
数据
②非直接
③控制
④
内容
D:
①
偶然
②逻辑
③功能
④
过程
E:
①
偶然
②逻辑
③功能
④
过程
10.国家标准《计算机软件产品开发文件编制指南GB8567-88》中规定,在一项软件开发过程中,一般的说应该产
生十四中文件,其中管理人员主要使用的有A2、B3、C4、开发进度月报表、项目开发结报告。
开发人员主要使用的有A、B、D1、数据要求说明书、概要设计说明书、详细说明书、数据库设
计说明书、测试计划和E5。
维护人员主要使用的有设计说明书、E、C。
A〜E:
1软件需求说明书②项目开发计划③可行性研究报告④模块开发卷宗
⑤测试分析报告⑥操作手册⑦用户手册
11•在众多的设计方法中,SD方法是受人注意的,也是最为广泛应用的一种,这种方法可以用分析阶段的A方
法及编程阶段的B方法前后衔接,SD方法是考虑如何建立一个结构良好的程序,它提出了评价模块结构
质量的两个标准一一块间联系和块内联系。
SD方法的最终目标是C,用于表示模块间调用关系的图被
称为D。
另一种比较著名的设计方法是以信息隐蔽为原则划分模块,这种方法叫做E方法。
12.软件工程强调了软件生命周期的各个阶段在进入下一个阶段时必须依据阶段结束标准经行严格的阶段评审。
请回答下列各个阶段的结束标准:
冋题定乂阶段的结束标准是的技术标准是:
C、
A:
可行性研究阶段的结束标准是:
B和C:
需求分析阶段
D和Eo
③用户手册
④操作手册
B:
①程序流程图
②IPO图
③成本/效益分析
④数据字典
C:
①程序流程图
②数据流图
③HIPO图
④算法描述
D:
①程序流程图
②HIPO图
③数据字典
④成本/效益分析
E:
①程序流程图
②算法描述
③IPO图
④HIPO图
13.软件工程强调了软件生命周期的各个阶段在进入下一个阶段时必须依据阶段结束标准经行严格的阶段评审。
请
回答下列各个阶段的结束标准:
总体设计阶段的结束标准是
A、B和
C;
详细设计阶段的结束标准是:
D或E
。
A:
①
系统流程图
②维护记录
③数据流图
④
操作手册
B:
①
程序流程图
②IPO图
③成本/效益分析
④
数据字典
C:
①
层次图或结构图
②数据流图
③HIPO图
④
算法描述
D:
①
维护记录
②HIPO图
③数据字典
④
成本/效益分析
E:
①
维护记录
②PDL
③IPO图
④HIPO图
14.软件工程强调了软件生命周期的各个阶段在进入下一个阶段时必须依据阶段结束标准经行严格的阶段评审。
请回答下列各个阶段的结束标准:
编码与单元测试阶段的结束标准是A、B;
综合测试阶段的结束标准是:
C、D;
维护阶段的结束标准是:
E。
A:
①源程序清单
②维护记录
③用户手册
④IPO图
B:
①综合测试结果
②IPO图
③单兀测试方案与结果
④数据字典
C:
①综合测试方案与结果
②数据流图
③HIPO图
④算法描述
D:
①软件配置
②HIPO图
③数据字典
④成本/效益分析
E:
①维护记录
②PDL
③IPO图
④HIPO图
15.软件设计的常用方法有SA方法、Jackson方法、Parnas方法等。
Jackson方法是一种面向数据结构的设计方法,一般在数据处理中,数据结构有A、B、C三类,并根据D来导出程序结构。
Parnas方法的主要
思想是E,这是提高可维护性的重要措施。
①
记录
②集合
③
指针
④树
⑤图
⑥
表
⑦顺序
⑧
选择
⑨重复
⑩线性表
(11)
键表
(12)列表
(13)
数组
⑭)栈
(15)队列
D:
①
数据结构
②数据间的控制结构
③
数据流图
④IPO图
E:
①
结构化
②模块化
③
信息隐藏
④信息继承
A
A〜C:
(共有下列15个可选择的答案供选择)
B系统的开发,其基本步骤依次是C1
、D3、E2。
A:
①对象
②数据流
③数据结构
④
控制结构
B:
①数据处理
②文字处理
③实时控制
④
科学计算
C〜E:
①建立数据结构
②列出基本操作
③建立程序结构
④
建立控制结构
的设计方法,主要适用于规模适
16.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向
中的
17.在软件工程的设计阶段中,有三种常用的设计方法:
结构化设计(SD)方法、Jackson方法和Parnas方法。
SD
方法侧重于A3,Jackson方法则是B2;Parnas方法的主要思想C4。
从70年代中期到90年代早期,
D_是最为常用的设计方法。
已方法只提供了重要的设计准则,没有规定出具体的工作步骤。
A〜C:
1使用对象、类和继承②由数据结构导出模块结构
3模块要相对独立,且功能单一,使块间联系弱,块内联系强
4将可能引起变化的因素隐藏在某有关模块内部,使这些因素变化时的影响范围受限制
5用数据流图表示系统的分解,且用数据词典和小说明分别表示数据和加工的含义
6自顶向下、逐步细化,采用顺序、选择和循环三种基本结构,以及限制GOTO语句的使用,设计出
可靠的和易维护的软件
D:
①SD②Jackson③Parnas④面向对象
E:
①SD②Jackson③Parnas④以上皆非
C、设计、编码、测试、维护等几个阶段,其中设计阶段通
程中描述生命周期的瀑布模型一般包括计划、常又可依次分成D和E两步。
④问题定义
③概要设计④数据库设计
19
•确定算法是解决问题的关键步骤之一。
算法的计算工作量大小和实现算法所需的存储单元多少,分别称为计算的A和B。
编写程序时,C和D是应采纳的原则之一。
E是调试程序的主要工作之一。
20•在设计测试用例时,A是用得最多的一种黑盒测试方法。
在黑盒测试方法中,等价类划分方法设计测试用
例的步骤是:
1据输入条件把数目极多的输入数据划分成若干个有效等价类和若干个无效等价类;
2设计一个测试用例,使其覆盖B5尚未被覆盖的有效等价类,重复这一步,直至所有的有效等价类均被
覆盖;
3设计一个测试用例,使其覆盖C1尚未被覆盖的无效无价类,重复这一步,直至所有的无效等价类均被
覆盖。
因果图方法是根据D之间的因果关系来设计测试用例的。
在实际应用中,一旦纠正了程序中的错误后,还应选择部分或全部原先已测试过的测试用例,对修改后的程序
重新测试,这种测试称为
E。
A:
①等价类划分
②边值分析
③因果图
④判定表
B〜C:
①1个
②7个左右
③一半
④尽可能少的
⑤尽可能多的
⑥全部
D:
①输入与输出
②设计与实现
③条件与结果
④主程序与子程序
E:
①验收测试
②强度测试
③系统测试
④回归测试
21•设计高质量的软件是软件设计追求的一个重要目标•可移植性、可维护性、可靠性、效率、可理解性和可使用性
等都是评价软件质量的重要方面。
可移植性是反映出把一个原先在某种硬件或软件环境下正常运行的软件移植到另一个硬件或软件环境下,使该软件也能正确地运行的难易程度。
为了提高软件的可移植性,应注意提高软件的A。
可维护性通常包括B。
通常认为,软件维护工作包括改正维护、C4维护和D6维护。
其中C维
护则是为了扩充软件的功能或提高原有软件的性能而进行的维护活动。
E是指当系统万一遇到未预料的情况时,能够按照预定的方式作合话的处理。
A:
①使用方便②简洁性③可靠性④设备不依赖性
B:
①可用性和可理解性②可修改性、数据独立性和数据一致性
3可测试性和稳定性④可理解性、可修改性和可测试性
C〜D:
1功能性②扩展性③合理性④完善性⑤合法性⑥适应性
E:
①可用性②正确性③稳定性④健壮性
22•在结构测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等,其中A4是最强的
覆盖准则。
为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试数据组。
若x,y是两个变量,可供选择的测试
数据组共有I、□、川、W四组(如表中给出),则实现判定覆盖至少应采用的测试数据组是B5,8;实现
A:
①语句覆盖
②条件覆盖
③判定覆盖
④路径覆盖
B〜E:
①
I组和n组
②n组和川组
③川组和w组
④I组和w组
⑤
I组、n组和川组
⑥n组、川组和闪组
⑦I组、川组和闪组
⑧I组、n组和w组
23.软件测试的目的是A。
为了提高测试的效率,应该B。
使用白盒测试方法时,确定测试数据应根据C
和指定的覆盖标准。
一般说来与设计测试数据无关的文档是D。
软件的集成测试工作最好由E承担,
以提高集成测试的效果。
A:
①评价软件的质量
③找出软件中的所有错误
B:
①随机地选取测试数据
③在完成编码以后制定软件的测试计划
C:
①程序的内部逻辑
③使用说明书
2发现软件的错误
4证明软件是正确的
2去一切可能的输入数据作为测试数据
4选择发现错误的可能性大的数据作为测试数据
2程序的复杂程度
4程序的功能
②设计说明书③源程序
②该软件开发组的负责人
④不属于该软件开发组的软件设计人员
24.A在实现阶段进行,它所依据的模块功能描述和内部细节以及测试方案应在B阶段完成,目的是发现编
程错误。
C^依据的模块说明书和测试方案应在D阶段完成,它能发现设计错误。
E_应在模拟的环境中进行强度测试的基础上进行,测试计划应在软件需求分析阶段完成。
A:
①
用户界面测试
②输入输出测试
③集成测试
④
单元测试
B:
①
需求分析
②概要设计
③详细设计
④
结构设计
C:
①
集成测试
②可靠性测试
③系统性能测试
④
强度测试
D:
①
编程
②概要设计
③维护
④
详细设计
E:
①
过程测试
②函数测试
③验收测试
④
逻辑路径测试
25•软件质量包含多方面的内容,A、B、可移植性、可复用性等是较为重要的质量特性。
在软件开发中,
必须采取有利的措施,以确保软件的质量,这些措施至少应包括C、D、E。
A〜B:
1稳定性②可靠性③数据一致性④可维护性
5可行性⑥数据独立性
C〜E:
1在开发初期制定质量保证计划,并在开发中坚持实行
2开发工作严格按阶段进行,文档工作应在开发完成后集中进行
3严格执行阶段评审
4要求用户参与全部开发过程,以监督开发质量
5开发前选定或制定开发标准或开发规范,并遵照实施
6争取足够的开发经费和开发人力的支持
26•软件维护工作越来越受到重视,因为它的花费常常要占软件生存周期全部花费的「%左右。
其工作内容为
B_,为减少维护工作的困难可以考虑采取的措施是C-。
而软件的可维护性包含D。
所谓维护管理主
要指的是E等。
27.软件测试是软件质量保证的主要手段之一,测试的费用已超过A的30%以上。
因此提高测试的有效性非常
重要。
高产”的测试是指B。
根据国家标准GB8566-88计算机软件开发规范的规定,软件的开发和维护分为
八个阶段,其中单元测试是在C5阶段完成的;组装测试的计划是在D3阶段制订的;确认测试的计划是在
E2阶段制订的。
B:
①用适量的测试用例,说明被测试程序正确无误
2用适量的测试用例,说明被测试程序符合相应的要求
3用少量的测试用例,发现被测试程序尽可能多的错误
4用少量的测试用例,纠正被测试程序尽可能多的错误
C〜E:
④详细设计
⑧使用和维护
①可行性研究和计划②需求分析③概要设计
5实现⑥组装测试⑦确认测试
28•软件测试的目的是A。
通常B是在代码编写阶段可进行的测试,它是整个测试工作的基础。
逻辑覆盖标
准主要用于_^。
它主要包括条件覆盖、条件组合(多重条件)覆盖、判定覆盖、条件及判定覆盖、语句覆盖、路径覆盖等几种覆盖,其中除路径覆盖外最弱的覆盖是D5,最强的覆盖标准是E2。
A:
①
表明软件的正确性
②
评价软件质量
③
尽可能发现软件中错误
④
判定软件是否合格
B:
①
系统测试
②
安装测试
③
验收测试
④
单元测试
C:
①
黑盒测试方法
②
白盒测试方法
③
灰盒测试方法
④
软件验证方法
D〜E:
①
条件覆盖②
条件组合覆盖③
判定覆盖④条件及判定覆盖
⑤语句覆盖
29.在软件开发过程中常用图作为描述工具。
如DFD就是面向A分析方法的描述工具。
在一套分层DFD中,
如果某一张图中有N个加工(process),则这张图允许有B张子图。
在一张DFD图中,任意两个加工之间
C_。
在画分层DFD时,应注意保持D之间的平衡。
DFD中从系统的输入流到系统的输出流的一连串连续变换形成一种信息流,这种信息流可分为E两类。
A:
①数据结构②数据流③对象④构件(component)
B:
①0②1③0〜N④1〜N
C:
①有且仅有一条数据流②可以有0或多条名字互不相同的数据流
③至少有一条数据流④可以有0或多条数据流,但允许有若干名字相同的数据流
D:
①父图与子图②同一父图的所有子图③不同父图的所有子图④同一子图的所有父图
E:
①控制流和变换流②变换流和事务流③事务流和事件流④事件流和控制流
30.软件的易维护性是指理解、改正、改进软件的难易程度。
通常影响软件易维护性的因素有易理解性、易修改性和A。
在软件的开发过程中往往采取各种措施来提高软件的易维护性。
如采用B有助于提高软件的易理
解性;C有助于提高软件的易修改性。
在软件质量特性中,D是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性:
E是防止对程序及数据的非授权访问的能力。
A:
①
易使用性
②易恢复性
③易替换性
④
易测试性
B:
①
增强健壮性
②信息隐蔽原则
③良好的编程风格
④
高效的算法
C:
①
咼效的算法
②信息隐蔽原则
③增强健壮性
④
身份认证
D:
①
正确性
②准确性
③可靠性
④
易使用性
E:
①
安全性
②适应性
③灵活性
④
容错性
、简要回答下列问题
1.简要叙述面向对象软件开发方法的基本过程,列出该方法的主要优点,并指出适用于该方法的几个软件开发模型。
2.简要叙述结构化软件开发方法的基本过程,列出该方法的主要缺点,并指出适用于该方法的几个软件开发模型。
3.简要叙述Jackson软件开发方法的基本过程,列出该方法的主要缺点,并指出适用于该方法的几个软件开发模型。
4.简要叙述七种内聚的具体含义,并分别举例加以说明。
5.简要叙述七种耦合的具体含义,并分别举例加以说明。
6.为什么说软件测试应该由专门的测试人员担当?
集成测试时,主要应该考虑软件系统的哪些因素?
7.在结构化开发方法中,测试计划的制订是在哪个阶段进行的?
其理由是什么?
单元测试、集成测试、确认测试的依据分别是什么?
分别在什么阶段进行?
8.简要叙述瀑布模型的主要过程及其特点。
9.简要叙述快速原型模型的主要过程及其特点。
10.简要叙述螺旋模型的主要过程及其特点。
11.简要叙述增量模型的主要过程及其特点。
12.简要叙述喷泉模型的主要过程及其特点。
13.简述软件工程的7条基本原理。
以上问题的答案,从略。
三、应用题
1.商店业务处理系统的业务描述及数据流图如下:
顾客到商店购物时,在经过挑选之后填写了一张订单,详细列出了想要购买的物品名称、规格和数量等。
商店接到订单后首先查商品库存,看是否有足够的存货。
若有,则出库且修改商品库存文件,然后给顾客开发货票,让顾客交款、给顾客开收据并取货,最后登记销售历史。
若存货不足,则暂存顾客订单并向采购部门发出订货通知。
采购部门根据商品库存和暂存订单信息向供应商订货。
待接到供应商发来的相应商品时,通知财务部门向供应商付款,并向销售部门发出到货通知,同时,采购部门要修改商品库存和暂存订单信息。
当销售部门接到到货通知时,应通知顾客来付款取货。
财务部门依据供应商送来的收据记账。
图1.商店业务处理系统的顶层DFD
试求解下列问题:
1).针对处理1,给出该处理的一级细化的DFD(要求给出合适的数据流与数据存储说明)
2).针对处理2,给出该处理的一级细化的DFD(要求给出合适的数据流与数据存储说明)
3).给出“发货单”的DD定义;
4).给出“订货单”的DD定义;
5).根据你对问题的理解,给出“商品库存”这个数据存储的数据结构描述。
6).根据你对问题的理解,给出“销售历史”这个数据存储的数据结构描述。
解答:
商品库存暂存订单
暂存订单
“发货单”的DD定义,满足基本要求即可。
发货单的DD定义如下:
名字:
发货单
别名:
发货清单
描述:
由供应商依据订货单填写的商品清单。
定义:
发货单=商品编号+商品名称+商品型号+商品等级+数量+单价+金额+生产厂家+生产日期+厂家联系方式+发货日期+经手人+供应商联系方式+备注。
来源:
供应商
去向:
输入到商店业务处理系统,由处理2采购模块作验货处理。
“订货单”的DD定义,满足基本要求即可。
发货单的DD定义如下:
名字:
订货单
别名:
订货清单
描述:
由采购部门根据暂存订单填写的商品清单。
定义:
订货单=商品编号+商品名称+商品型号+商品等级+数量+期望价格+生产厂家+参考生产厂家+生产日期+供应商+订货日期+期望到货日期+经手人+备注。
来源:
采购处理
去向:
由处理2采购模块根据暂存订单制作,并送给供应商。
2)商品库存数据存储的数据结构描述。
商品库存的数据结构可描述如下(基本信息满足即可)
商品编号
商品名称
商品型号
进货价格
零售价格
批发价格
入库数量
生产日期
入库日期
库存数量
生产厂家
厂家通讯地址
厂家联系电话
供应商
供应商联系电话
供应商通讯地址
备注
3)销售历史数据存储的数据结构