更多相关资料可以到我的github上看看:https://github.com/Kemoduoaaa/Software_Engineering
一、选择填空
1.【单选题】下面关于面向数据流的设计方法的描述中,不正确的是( )。
A、任何一个信息处理系统的信息流都可以看作是一个变换流,只有当其具有明显的“事务”特征(即有一个明显的事务中心)时,才按照事务分析的映射规则进行转换。
B、面向数据流的设计方法可以利用前面需求阶段得到的数据流图,按照一定的映射规则生成相应的软件结构图。
C、数据流图有可能全局特征是变换流,而局部区域属于事务流,反之易可,所以在进行向软件结构图的转换过程中要区分全局特征和局部特征。
D、按照变换分析或事务分析从数据流图出发转换得到的软件结构图就是最终的软件总体设计结果,不需要再进行任何的调整和优化。
解析:【考点】面向数据流的设计方法
D.任何设计过程都不是机械的一成不变的。
2.【单选题】模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是( )的。
A、逻辑内聚
B、偶然内聚
C、功能内聚
D、信息内聚
解析:【考点】软件设计的原理—模块独立性—内聚
一些没有任何联系的语句可能在许多模块中重复出现多次,程序员为节省存储,把它们抽出来组成一个新的模块,这样的就是偶然内聚模块。
内聚从强到弱:功能、顺序、通信、过程、时间、逻辑、偶然
3.【单选题】为了提高模块的独立性,模块之间应该选择下列( )耦合度?
A、标记耦合
B、数据耦合
C、功能耦合
D、控制耦合
解析:【考点】软件设计的原理—模块独立性—耦合
耦合从强到弱:内容、公共、外部、控制、标记、数据、非直接
4.【单选题】关于软件设计规约,以下说法错误的是( )。
A、概要设计规约对应于系统的确认测试
B、详细设计规约主要作为软件设计人员与编程人员之间交流的媒体
C、概要设计规约主要作为软件项目管理人员、系统分析人员与设计人员之间交流的媒体
D、详细设计规约对应于系统的单元测试
解析:【考点】软件设计规约
没找到A为什么错
5.【单选题】( )着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。
A、实体关系图
B、系统结构图
C、程序流程图
D、数据流图
解析:【考点】系统结构图
- 实体关系图(E-R图):提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型;
- 系统结构图:是结构化设计方法使用的描述方式,也称结构图或控制结构图。它表示了一个系统(或功能模块)的层次分解关系,模块之间的调用关系,以及模块之间数据流和控制流信息的传递关系,它是描述系统物理结构的主要图表工具;
- 程序流程图:又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示;
- 数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法;
6.【单选题】如果一个模块调用下层模块时传递一个数据结构,而被调用的模块只使用其中一部分数据,这种耦合属于( )。
A、数据耦合
B、控制耦合
C、内容耦合
D、标记耦合
考点:耦合—标记耦合(见题3)
7.【单选题】软件体系结构风格代表了软件体系结构设计中的惯用模式,在下面几种体系结构风格中,( )支持基于抽象程度递增的系统设计。
A、隐式调用风格
B、黑板风格
C、管道-过滤器风格
D、层次系统风格
解析:【考点】软件体系结构风格(SA Styles)
8.【单选题】( )是数据说明、可执行语句等程序对象的集合,它是单独命名的并可通过名字访问。
A、模块
B、数据块
C、程序块
D、复合语句
解析:【考点】软件设计的原理:模块化
9.【单选题】( )把已确定的软件需求转换成特定形式的软件表示,使其得以实现。
A、详细设计
B、系统设计
C、逻辑设计
D、软件设计
解析:【考点】软件设计的本质
10.【单选题】内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求( )。
A、高内聚,高耦合
B、高内聚,低耦合
C、低内聚,高耦合
D、低内聚,低耦合
解析:【考点】耦合和内聚的关系
11.【单选题】模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。模块中所有成分引用共同的数据,该模块的内聚性是( )的。
A、过程内聚
B、通信内聚
C、功能内聚
D、顺序内聚
解析:【考点】内聚—通信内聚(见题2)
12.【单选题】以下( )不是总体设计环节的工作。
A、结构设计,即确定系统由哪些模块组成,以及这些模块之间的关系
B、过程设计,即确定每个模块的具体实现算法和使用的局部数据结构
C、确定系统的最佳实现方案
D、制定测试计划,在软件开发的早期阶段考虑测试问题,可以促使软件设计人员在设计时注意提高软件的可测试性
答案:B
解析:【考点】软件设计过程--总体设计过程步骤
B.从下图可以看到总体设计和过程设计并列
典型的总体设计过程包括以下9个步骤:
- 设想供选择的方案
- 选取合理的方案
- 推荐最佳方案
- 功能分解
- 设计软件结构
- 设计数据库
- 制定测试计划
- 书写文档
- 审查和复审
13.【单选题】软件体系结构风格代表了软件体系结构设计中的惯用模式,在下面几种体系结构风格中,( )适合构造批处理的系统。
A、管道/过滤器风格
B、数据抽象与面向对象风格
C、黑板风格
D、客户机-服务器风格
解析:【考点】软件体系结构风格(SA Styles)(见题7)
14.【单选题】管道过滤器风格的特点不包括( )。
A、适合处理与用户有交互的应用
B、该风格使得软构件具有良好的隐蔽性和高内聚、低耦合的特点
C、支持软件重用和构件的并行执行
D、允许对吞吐量和死锁等系统性质的分析
解析:【考点】软件体系结构风格(SA Styles)(见题7)
A.管道/过滤器风格不适合处理交互的应用
15.【单选题】下面关于控制耦合的描述中,不正确的是( )
A、控制耦合意味着不良的模块结构,必须将其转换为数据耦合。
B、如果两个模块间传递的信息是控制信息,即模块A通过向模块B发送一个控制变量,模块B根据该控制变量的值决定在多个功能中执行哪一个,这种情况下模块A和B之间存在控制耦合。
C、在控制耦合下,被调用模块B其实是一个单入口多功能模块,对模块B的任何改动都会影响其调用模块A。
D、在控制耦合下,被调用模块B本身是一个逻辑内聚模块。
解析:【考点】耦合—控制耦合(见题3)
16.【单选题】关于程序模块化的启发规则有若干条,以下规则中不符合模块化原则的是( )。
A、将模块的作用范围限制在模块的控制范围之内
B、降低上层模块的扇出, 提高中层模块的扇出
C、通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性
D、降低模块之间接口的复杂性,避免“病态连接”
解析:【考点】启发规则
- 启发规则有:
- 改进软件结构提高模块独立性
- 模块规模应适中
- 深度、宽度、扇出扇入都应适当
- 设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇入。其结构图像清真寺的塔,上面尖、中间宽、下面小。
- 模块的作用域应该在控制域内
- 力争降低模块接口的复程度
- 设计单入口单出口的模块
- 模块功能应该可以预测,避免过多限制
17.【单选题】下列对软件体系结构的描述错误的是( )。
A、软件体系结构是对子系统、系统构件以及它们之间相互关系的描述。
B、子系统和构件一般定义在不同的视图内,以显示软件系统的相关功能属性和非功能属性。
C、软件体系结构是软件系统的一组关键设计决策。
D、软件体系结构是软件需求活动的一种工作产品。
答案:D
解析:【考点】软件体系结构
D.软件体系结构是软件总体设计活动的一种工作产品?
18.【单选题】下面的()不是模块化设计的目的。
A、提高模块的可靠性和复用性
B、清楚地描述系统的功能和性能
C、易于维护和功能扩展
D、降低程序设计的复杂性
答案:B
解析:【考点】模块化设计的目的
模块化设计的目的:为了降低程序复杂度,使程序设计、调试和维护等操作简单化。
19.【单选题】下面不属于软件设计原则的是()。
A、抽象
B、模块化
C、自底向下
D、信息隐藏
解析:【考点】软件设计原理(准则)
软件设计原理(准则)有:
- 模块化与模块独立
- 抽象
- 逐步求精
- 信息隐藏
- 局部化
二、判断
1.【判断题】模块的控制域必须在模块的作用域内。否则,必须将判定上移或将受影响的模块下移。
答案:×
解析:【考点】启发规则(见16题)
模块的作用域应该在控制域内
2.【判断题】内聚标志一个模块内各个元素彼此结合的紧密程度,模块独立性由弱到强的同时模块内聚性由低到高的顺序是:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。
答案:×
解析:【考点】模块独立性:内聚(见题2)
内聚与独立性成正比,内聚度越高,模块独立性越强;
内聚性由高到低的排序为:(同时也是独立性由高到低的排序)
功能内聚>顺序内聚>通信内聚>过程内聚>时间内聚>逻辑内聚>偶然内聚
3.【判断题】基于事件/隐式调用风格增加了构件之间进行数据交换的难度。
答案:√
解析:【考点】软件体系结构风格(SA Styles)--基于事件/隐式调用风格(见题7)
4.【判断题】概要设计通过对系统的结构表示进行细化,得到软件的数据结构和算法。
答案:×
解析:【考点】软件设计过程—概要设计和详细设计
- 概要设计:将软件需求转化为数据结构和软件的系统结构,即系统的模块划分。
- 详细设计:通过对系统的结构表示进行细化,得到软件的详细的数据结构和算法。
5.【判断题】信息隐藏是指把一些关系密切的元素物理地放得彼此靠近。
答案:×
解析:【考点】信息隐藏
信息隐藏是指在设计软件模块时应该使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。
6.【判断题】错误处理类模块是典型的逻辑内聚模块。
答案:√
解析:【考点】内聚—逻辑内聚
7.【判断题】变换分析得到的结构图是一个三分支结构,即包括输入部分、变换中心部分和输出部分;而事务分析得到的结构图是一个二分支结构,即一个接收分支和一个发送分支。
答案:√
解析:【考点】变换分析和事务分析的结构图