软件工程开发方法学试卷.doc
软件工程开发方法学试卷
姓名_________________________地址_______________________________学号______________________
-------------------------------密-------------------------封----------------------------线--------------------------
1.请首先在试卷的标封处填写您的姓名,身份证号和地址名称。
2.请仔细阅读各种题目,在规定的位置填写您的答案。
一、选择题
1.软件工程开发方法学的起源可以追溯到以下哪一年的“软件危机”?
a.1970年
b.1972年
c.1975年
d.1978年
2.软件生命周期模型中的第一个阶段是:
a.设计阶段
b.需求分析阶段
c.开发阶段
d.测试阶段
3.以下哪一项不属于软件需求分析的主要任务?
a.确定系统需求
b.定义软件功能
c.确定系统边界
d.编写测试用例
4.结构化分析方法中最常用的图形表示方法是:
a.状态转换图
b.流程图
c.顺序图
d.类图
5.在面向对象设计方法中,以下哪个原则是最基础的?
a.单一职责原则
b.开闭原则
c.Liskov替换原则
d.依赖倒置原则
6.以下哪种技术不属于敏捷开发方法?
a.Scrum
b.Kanban
c.水晶
d.模块化
7.以下哪项不属于软件测试的类型?
a.单元测试
b.集成测试
c.系统测试
d.用户验收测试
8.软件开发中的变更管理主要包括以下几个阶段:
a.变更请求、变更评估、变更实现、变更部署
b.变更请求、变更设计、变更实现、变更测试
c.变更评估、变更实现、变更测试、变更部署
d.变更请求、变更评估、变更设计、变更测试
答案及解题思路:
1.答案:a.1970年
解题思路:软件工程作为一门学科,起源于20世纪70年代初的“软件危机”。1970年被认为是软件危机的开始。
2.答案:b.需求分析阶段
解题思路:软件生命周期模型通常包括需求分析、设计、开发、测试和部署等阶段。需求分析是整个生命周期中第一个阶段。
3.答案:d.编写测试用例
解题思路:软件需求分析的主要任务是确定系统需求、定义软件功能、确定系统边界等,而编写测试用例是测试阶段的任务。
4.答案:b.流程图
解题思路:结构化分析方法使用流程图来表示系统流程,这是一种最常用的图形表示方法。
5.答案:a.单一职责原则
解题思路:单一职责原则是面向对象设计中的一个基础原则,强调一个类应该一个引起变化的原因。
6.答案:d.模块化
解题思路:Scrum、Kanban和水晶都是敏捷开发方法,而模块化不是一种特定的敏捷开发方法。
7.答案:d.用户验收测试
解题思路:软件测试通常包括单元测试、集成测试、系统测试等,用户验收测试通常在部署后进行。
8.答案:a.变更请求、变更评估、变更实现、变更部署
解题思路:变更管理是一个连续的过程,包括从提出变更请求到最终部署变更的各个阶段。
二、填空题
1.软件生命周期模型分为________阶段,其中需求分析是________阶段的重要任务。
答案:瀑布模型、需求分析
解题思路:软件生命周期模型描述了从软件概念到废弃的整个开发过程。瀑布模型是其中一种常见的模型,分为需求分析、设计、编码、测试、部署和维护等阶段。需求分析阶段是确定软件需求的阶段,是软件开发的基础。
2.结构化分析方法主要包括________、________、________等。
答案:数据流图(DFD)、实体关系图(ERD)、状态转换图
解题思路:结构化分析方法是一种以数据为中心的分析方法,它通过创建数据流图(DFD)、实体关系图(ERD)和状态转换图来描述系统的功能、数据结构和行为。
3.面向对象设计方法的基本原则有________、________、________、________等。
答案:封装、继承、多态、模块化
解题思路:面向对象设计方法强调通过封装、继承和多态来组织代码,同时保持模块化设计,以实现可重用、可维护和可扩展的软件系统。
4.敏捷开发方法的核心价值主张包括________、________、________、________等。
答案:个体和交互胜过过程和工具、可工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划
解题思路:敏捷开发方法强调快速响应变化和客户需求,重视团队合作和个人能力,认为实际可工作的软件比详尽的文档更重要。
5.软件测试的基本步骤包括________、________、________、_______