2018年新疆大学软件学院838数据结构与软件工程之软件工程导论考研核心题库
● 摘要
一、选择题
1. 软件工程与计算机科学性质不同,软件工程着重于( )。
A. 原理探讨
B. 理论研究
C. 建造软件系统
D. 原理的理论
【答案】C
【解析】计算机科学中的研究成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统。
2. 详细设计的任务是确定每个模块的( )。
A. 算法
B. 功能
C. 调用关系
D. 输入输出数据
【答案】A
【解析】从软件开发的工程化观点来看,在使用程序设计语言编制程序之前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是决定各个模块的实现算法,并精确地表达这些算法。
3. —个模块把开关量作为参数传送给另一模块,这两个模块之间的耦合是( )。
A. 外部耦合
B. 数据耦合
C. 控制耦合
D. 内容耦合
【答案】C
【解析】控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调用模块通过该控制变量的值有选择地执行模块内某一功能。
4. 好的软件结构应该是( )。
A. 高耦合、高内聚
B. 低耦合、高内聚
C. 高耦合、低内聚
D. 低稱合、低内聚
【答案】B
【解析】耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
5. 结构化维护与非结构化维护的主要区别在于( )。
A. 软件是否结构化
B. 软件配置是否完整
C. 程序的完整性
D. 文档的完整性
【答案】B
【解析】非结构化维护需要付出很大代价,这种维护方式是没有使用良好定义的方法学开发出来的软件的必然结果;结构化维护是在软件开发的早期应用软件工程方法学的结果。因此,结构化维护与非结构化维护的主要区别是软件配置的完整性,有了软件的完整配置能减少精力的浪费并且能提高维护的总体质量。
6. 软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )。
A. 可理解性
B. 可维护性
C. 可扩展性
D. 可移植性
【答案】B
【解析】程序文档是对程序功能、程序各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充,是影响软件可维护性的关键因素。
7. 在McCall 质量度量模型中,对于以下软件质量概念的正确解释是( )。
A. 可维护性。修改或改进一个已投入运行的软件所需工作量的程度
B. 可测试性。找到并改正程序中的一个错误所需代价的程度
C. 适应性。将一个系统耦合到另一个系统所需的工作量
D. 可重用性。一个软件(或软件的部件)能再次用于其他相关应用的程度
【答案】D
【解析】McCall 质量度量模型针对面向软件产品的运行、修正、转移,软件质量概念,其定义如下:
①可维护性,找到并改正程序中的一个错误所需代价。
②可测试性,测试软件以确保其能够执行预定功能所需工作量。
③适用性,修改可运行程序所需要付出的努力。
④可重用性,一个软件(或软件的部件)能再次用于其他相关应用的程度。
8. 软件复杂性度量的参数包括( )。
A. 效率
B. 规模
C. 完整性
D. 容错性
【答案】B
【解析】软件复杂性度量的方法是把程序的复杂程度乘以适当参数即可估算出软件中错误的数量以及软件开发需要用的工作量。定量度量的结果,可以用来比较两个不同设计或两个不同算法的优劣,程序的定量的复杂程度可作为模块规模的精确限度,因此,规模可作为软件复杂性度量的参数。
9. 对象之间的动态联系用( )表示。
A. —般-特殊结构
B. 整体-部分结构
C. 实例连接
D. 消息连接
【答案】D
【解析】一般一特殊结构使特殊类通过继承而拥有一般类的特征;整体一部分结构可以清晰地表达事物之间的组成情况;实例关系可以表示对象之间的静态联系;消息连接可以表示对象之间的动态联系。
10.( )对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板。
A. 状态转换图
B. 顺序图
C. 活动图
D. 对象图
【答案】A
【解析】状态装换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外状态转换图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。