软件工程师考试题.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
### 软件工程师考试题知识点解析 #### 单项选择题知识点解析 **1. 计算机系统** - **选项分析**: - A) 提到了硬件组件,但未涵盖软件部分。 - B) 强调了硬件的核心组成部分,忽略了软件系统。 - C) 正确,全面描述了计算机系统的组成——硬件系统和软件系统。 - D) 描述了计算机及其应用系统,但不够具体。 - **知识点总结**:计算机系统包括硬件系统和软件系统两大部分。硬件系统由中央处理器(CPU)、存储器(内存和外存)、输入输出设备等组成;软件系统则包括系统软件和应用软件。 **2. 软件危机原因** - **选项分析**: - A) 和 D) 描述了软件难以理解和硬件复杂的问题,但未触及根本原因。 - B) 提到了软件设计对人员和技术的要求,仅部分正确。 - C) 正确,指出了软件产品本身的特性与其他工业产品不同,并强调了开发和维护过程中的方法问题。 - **知识点总结**:软件危机主要源于软件产品的特殊性和开发维护过程中的不当方法。软件具有无形性、复杂性、依赖性强等特点,且开发过程中若缺乏良好的管理与规范,则易导致质量问题和成本超支。 **3. 软件开发瀑布模型** - **选项分析**: - A) 按照实际流程排序,但顺序错误。 - B) 正确,问题定义→可行性研究→需求分析。 - C) 将需求分析和问题定义顺序颠倒。 - D) 明确指出其他选项都不正确。 - **知识点总结**:瀑布模型是一种典型的线性开发方法,按顺序分为问题定义、可行性研究、需求分析等阶段。其中,问题定义旨在明确项目目标和范围;可行性研究评估项目的可行性和预期效益;需求分析则是收集并分析用户需求的过程。 **4. 软件维护类型** - **选项分析**: - A) 正确,列举了常见的四种维护类型。 - B) 包含了“抢救性维护”和“辅助性维护”,不符合常规分类。 - C) “辅助性维护”不属于标准分类。 - D) “抢救性维护”和“预防性维护”混为一谈。 - **知识点总结**:软件维护主要包括四种类型:改正性维护(修复已发现的错误)、适应性维护(适应新的运行环境)、完善性维护(增加新功能或改进现有功能)、预防性维护(提高软件未来的可维护性和可靠性)。 **5. 可行性研究** - **选项分析**: - A) 正确,包括技术可行性、经济可行性、操作可行性三个主要方面。 - B) “系统可行性”通常不是单独的分类。 - C) 同样,“系统可行性”不是常规分类之一。 - D) “时间可行性”并非主要考虑因素。 - **知识点总结**:可行性研究需从技术可行性(技术限制)、经济可行性(成本效益分析)、操作可行性(组织结构、人员培训等)三个方面进行综合考量。 **6. 系统逻辑模型** - **选项分析**: - A) 正确,数据流程图、数据字典和简要算法描述是构建系统逻辑模型的主要内容。 - B) 程序流程图、Jackson图等属于详细设计阶段使用的工具。 - C) ER图用于数据库设计而非系统逻辑模型构建。 - D) Jackson图、ER图等同样用于更具体的阶段。 - **知识点总结**:系统逻辑模型主要通过数据流程图来描述系统的数据流动和处理逻辑,数据字典则详细记录了数据流程图中的各个元素,而简要算法描述用于说明关键业务规则和计算方法。 **7. 耦合度** - **选项分析**: - A) 排列顺序错误。 - B) 正确,从强到弱依次为:内容耦合、控制耦合、公共环境耦合、数据耦合。 - C) 内容耦合最强,但公共环境耦合较控制耦合更强。 - D) 控制耦合应排在内容耦合之后。 - **知识点总结**:耦合度反映了模块间的关联程度,常见耦合类型按从强到弱排序依次为:内容耦合(最紧密,一个模块直接访问另一个模块内部数据)、控制耦合(通过传递控制信息进行连接)、公共环境耦合(多个模块共享一个全局数据区)、数据耦合(通过参数传递简单数据值)。 **8. 详细设计阶段设计工具** - **选项分析**: - A) 正确,包含了详细设计阶段常用的设计工具。 - B) 缺少判定表、判定树等重要工具。 - C) 系统流程图用于宏观展示系统结构,而非详细设计。 - D) 层次图用于描述软件架构层次,非详细设计阶段工具。 - **知识点总结**:详细设计阶段常用的工具包括程序流程图(PFD)、问题分析图(PAD)、N-S图、HIPO图、判定表和判定树等。这些工具有助于清晰表达模块内部的控制流和数据流,便于后续编码实施。 **9. 模块作用域与控制域** - **选项分析**: - A) 正确,模块的作用域不应超出其控制域。 - B) 模块的控制域应覆盖作用域。 - C) 两者并非完全独立。 - D) 错误选项。 - **知识点总结**:模块的作用域指的是受该模块内部决策影响的所有模块集合,而控制域则为该模块及其所有下属子模块的集合。通常情况下,一个模块的作用域应当在其控制域之内,以减少模块间的耦合度,提高软件的整体结构质量。 **10. 穷尽测试** - **选项分析**: - A) 对于小型系统或特定功能测试可行,但对于大型复杂系统难以实现。 - B) 正确,黑盒测试难以进行穷尽测试。 - C) 白盒测试同样难以实现穷尽测试。 - D) 黑盒测试和白盒测试都无法完全穷尽测试。 - **知识点总结**:穷尽测试意味着对所有可能情况进行测试。在实践中,无论是黑盒测试还是白盒测试,由于测试空间庞大且复杂,穷尽测试几乎不可能实现。因此,通常采用等价类划分、边界值分析等技术来有效缩小测试范围。 #### 填空题知识点解析 1. **软件危机**:指的是在软件开发和维护过程中遇到的一系列严重问题,如进度延误、成本超支、质量低下等。 2. **配置项**:在软件开发的各个阶段,经过阶段评审后的文档和程序代码成为配置项,是软件配置管理的重要组成部分。 3. **结构化程序设计**:基本思想是使用顺序、选择和循环三种基本控制结构来构造任何程序,强调程序结构的清晰性和逻辑性。 4. **软件结构设计**:第二项任务是设计软件的结构,即确定模块的组成以及模块间的调用关系,是总体设计的关键步骤。 5. **系统流程图**:描绘物理系统的传统工具,用于描述系统的物理组成和数据在各个部分之间的流动情况。 6. **通信内聚**:如果模块内的所有元素都使用同一个输入数据和产生同一个输出,则称该模块为通信内聚。 7. **数据流程图类型**:根据信息流的类型,数据流程图主要分为变换型和事务型两种。 8. **三种基本控制结构**:1971年,Boehm和Jacopini证明了SISO程序只需三种基本控制结构:顺序结构、选择结构和循环结构即可完成所有计算任务。 9. **高级语言分类**:从应用特点分类,高级语言主要分为通用型、面向过程和面向对象三大类。 10. **测试方法**:黑盒测试又称为功能测试,侧重于验证软件功能是否符合需求规格说明书;白盒测试也称为结构测试,关注程序的内部逻辑结构。 #### 多项选择题知识点解析 **1. 软件开发阶段工作量** - **正确选项**:A)、D) - **知识点总结**:软件开发各个阶段的工作量分布较为均匀,可行性研究约占总工作量的5%,综合测试约占40%,设计阶段的工作量通常较大但并非最大,编码和单元测试占比约20%。 **2. 软件开发与维护的观点** - **正确选项**:B)、C) - **知识点总结**: - 软件开发中程序和文档同等重要,不应偏废。 - 分阶段开发是为了降低复杂性。 - 面向对象方法提高了开发效率,但并不能确保更容易。 **3. 图形工具的应用** - **正确选项**:A)、D) - **知识点总结**: - 数据流程图和数据字典构成软件的高层数据模型。 - 层次图描述软件结构。 - IPO图用于描述模块输入输出和处理逻辑,非微软发明。 - ER图描述实体间关系,与系统实现无关。 - Yourdon图用于软件结构描述。
- 粉丝: 2
- 资源: 4万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助