软件工程基础考核题
- 格式:docx
- 大小:16.92 KB
- 文档页数:2
软件工程测试题+参考答案一、单选题(共40题,每题1分,共40分)1、窃听是一种()攻击,攻击者()将自己的系统插入到发送站和接收站之间。
截获是一种()攻击,攻击者()将自己的系统插入到发送站和接受站之间。
A、被动,无须,主动,必须B、被动,必须,主动,无须C、主动,无须,被动,必须D、主动,必须,被动,无须正确答案:A2、如果一名攻击者截获了一个公钥,然后他将这个公钥替换为自己的公钥并发送给接收者,这种情况属于哪一种攻击?A、重放攻击B、Smurf 攻击C、中间人攻击D、字典攻击正确答案:C3、黑客攻击服务器以后,习惯建立隐藏用户,下列哪一个用户在DOS命令net user下是不会显示的。
A、fg#B、fg%C、fg_D、fg$正确答案:D4、下列哪一种方法在支持向量机中有应用A、拉格朗日乘子法B、二分法C、最小二乘法D、极大似然估计正确答案:A5、设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为A、6B、6.5C、11D、5正确答案:B6、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为A、NB、N/2C、(N+1)/2D、[(1+N)*N ]/2正确答案:C7、信息安全中PDR模型的关键因素是()。
A、人B、客体C、技术D、模型正确答案:A8、某业务系统具有上传功能,页面上传的文件只能上传到UPLOAD目录,由于上传页面没有过滤特殊文件后缀,存在上传漏洞,而短时间厂家无法修改上传页面源码,现采取如下措施,哪种措施可以暂时防止上传漏洞危害又不影响业务系统正常功能。
A、禁止UPLOAD目录访问权限B、删除上传页面C、禁止UPLOAD目录执行脚本文件D、以上措施都不正确正确答案:C9、在各种作业调度算法中 , 若所有作业同时到达 , 则平均周转时间最短的算法是()。
A、多级反馈队列调度算法B、先来先服务调度算法C、高优先级优先调度算法D、短作业优先调度算法正确答案:D10、下面()不是数据字典的内容。
软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。
A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。
A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。
A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。
A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。
A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。
A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。
A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。
《软件工程基础》考核题该门课程不用现场笔试考试(网上预约考试时间为虚设),请预约该门课程考试的学生将答案手写A4答题纸上,于规定时间内交到学习中心,哈站交到班主任处。
未预约的学生提交的内容作废处理,预约后不按规定时间提交按旷考处理。
(答题纸附在第二页,所有答案必须写在答题纸上,标清题号)一、选择题(每小题3分,共30 分)1、准确地解决“软件系统必须做什么”是()阶段的任务。
A.可行性研究 B. 需求分析C. 软件设计D. 程序编码2、软件生存期中时间最长的是()阶段。
A. 需求分析B. 软件设计C. 软件测试D. 软件运行/维护3、在结构化分析方法中用状态―迁移图表达系统或对象的行为。
在状态―迁移图中,由一个状态和一个事件所决定的下一状态可能会有( )个。
供选择的答案:A. 1B. 2C. 多个D. 不确定4、软件需求分析阶段的工作,可以分为以下4个方面: 对问题的识别、分析与综合、编写需求分析文档以及()。
A.总结B.阶段性报告C.需求分析评审D.以上答案都不正确5、在软件生存周期的瀑布模型中一般包括计划、()、设计、编码、测试、维护等阶段。
A 可行性分析B 需求采集C 需求分析D 问题定义6、软件工程包括三个要素:方法、工具和()。
A 过程B 软件系统C 硬件环境D 人员7、需求分析最终结果是产生( )。
A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书8、数据字典中,一般不出现的条目是( )。
A.数据流B.数据存储C.加工D.源点与终点11、9、在软件测试中,下面说法中错误的是( )。
A. 测试是为了发现程序中的错误而执行程序的过程B. 测试是为了表明程序是正确的C. 好的测试方案是极可能发现迄今为止尚未发现的错误的方案D. 成功的测试是发现了至今为止尚未发现的错误的测试10、用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别对象模型、()、功能模型。
A.动态模型 B. 状态模型C. 系统模型D. 用户模型二、选择填空题(每小题10分,共20分)1、在面向对象软件设计过程中,应按如下要求进行类的设计:只有类的共有界面的成员才能成为使用类的操作,这就是软件设计的( A )原则。
软件工程基础知识考试(答案见尾页)一、选择题1. 软件工程的基本原理是什么?A. 线性顺序开发B.迭代和增量开发C. 自顶向下,逐步求精D. 需求驱动和变更管理2. 软件开发过程中,需求分析的目的是什么?A. 确定软件开发的具体功能需求B. 编写需求规格说明书C. 评估项目可行性D. 规划如何构建和维护软件3. 软件设计的主要阶段有哪些?A. 概念设计B. 详细设计C. 结构设计D. 过程设计4. 在敏捷开发方法中,迭代周期通常有多长?A. 1-2周B. 4-6周C. 3-4个月D. 2-4周5. 软件测试的目的是什么?A. 保证软件质量B. 提高软件效率C. 降低维护成本D. 提高用户满意度6. 数据库设计通常遵循哪些基本原则?A. 数据完整性B. 数据安全性C. 数据一致性D. 数据及时性7. 在软件开发中,版本控制工具的主要作用是什么?A. 整理源代码文件B. 跟踪代码变更历史C. 版本控制项目管理D. 提供协作开发环境8. 软件维护主要包括哪些活动?A. 修复缺陷B. 更新文档C. 性能优化D. 安全性增强9. 面向对象编程(OOP)的四个基本特性是什么?A. 封装B. 多态C. 继承D. 抽象10. 什么是敏捷开发,它与其他开发方法的区别是什么?A. 敏捷开发是一种软件开发方法,它强调团队合作和快速响应变化。
B. 敏捷开发与其他开发方法的区别在于它采用了迭代和增量的开发方式,而不是瀑布模型。
C. 敏捷开发强调的是文档的重要性。
D. 敏捷开发是一种运动,而不是一种软件开发方法。
11. 软件工程的基本概念是什么?A. 软件工程是一门技术学科,它涉及到软件的开发、维护和管理。
B. 软件工程是应用计算机科学、数学及管理科学等原理来开发软件的学科。
C. 软件工程注重软件的可靠性、可用性和可维护性。
D. 软件工程的目标是生产高质量的软件产品。
12. 软件开发过程中通常遇到的三种风险是什么?A. 技术风险B. 经济风险C. 过程风险D. 人员风险13. 软件生命周期通常包括哪几个阶段?A. 需求分析B. 设计C. 编码D. 测试E. 部署和维护14. 在软件开发中,需求分析的目的是什么?A. 确定软件系统的功能和性能要求。
软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。
答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。
答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。
答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。
它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。
2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。
通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。
3. 请简述软件开发生命周期中的各个阶段。
答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。
- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。
- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。
- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。
- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。
- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。
软件工程基础考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 计算机科学D. 需求分析2. 软件开发过程中,需求分析和系统设计的关系是什么?A. 需求分析是系统设计的依据B. 需求分析和系统设计同时进行C. 需求分析在系统设计之后进行D. 需求分析和系统设计没有必然联系3. 软件工程的三个层次及其在软件开发过程中的作用是什么?A. 应用层、系统层、理论层B. 物理层、数据层、逻辑层C. 需求层、设计层、实施层D. 开发层、测试层、维护层4. 软件开发生命周期(SDLC)的概念是什么?它包括哪几个阶段?A. 软件开发生命周期是指软件的开发过程B. SDLC包括需求分析、设计、编码、测试和维护C. SDLC是一个线性的过程D. SDLC各阶段按顺序进行,不具备迭代性5. 什么是敏捷开发方法?它与其他开发方法的区别是什么?A. 敏捷开发是一种快速开发的软件开发方法B. 敏捷开发强调团队合作和客户参与C. 敏捷开发适合大规模软件项目D. 敏捷开发与其他开发方法的区别在于流程管理6. 什么是面向对象编程(OOP)?请列举OOP的三个基本特征。
A. 封装、继承、多态B. 封装、继承、抽象C. 封装、多态、接口D. 继承、多态、接口7. 数据库管理系统(DBMS)在软件开发中的作用是什么?A. 存储和管理数据B. 提供数据查询和修改功能C. 数据库管理员(DBA)负责DBMS的管理和维护D. 所有选项都正确8. 什么是版本控制?请简述版本控制的两种主要策略。
A. 版本控制是一种软件配置管理技术B. 版本控制可以跟踪软件项目的变更C. 版本控制的主要策略有Git和SVND. 版本控制确保软件代码的安全性9. 什么是软件测试?它的目的和基本原则是什么?A. 软件测试是在软件投入运行后进行的活动B. 软件测试是为了发现软件中的错误和缺陷C. 软件测试的原则包括早期测试、缺陷倾向分布等D. 软件测试的目的是提高软件的质量和可靠性10. 什么是配置管理?它在软件开发中的作用是什么?A. 配置管理是指对软件配置项进行管理和控制的过程B. 配置管理可以确保软件配置的一致性和可追溯性C. 配置管理的主要活动包括配置标识、配置控制、配置审核等D. 配置管理有助于解决软件生命周期中的版本冲突问题11. 软件开发过程中,需求分析的主要任务是?A. 确定软件开发的功能B. 编写需求规格说明书C. 进行系统设计D. 进行程序设计12. 在软件开发中,迭代过程是为了更好地适应变化,它主要包括哪几个阶段?A. 需求分析B. 设计C. 编码D. 测试13. 软件工程中的“软件”指的是什么?A. 程序和数据B. 程序、数据和文档C. 程序和数据,可运行D. 程序、数据和用户手册14. 软件工程的发展历程中,第一个正式发布的软件开发标准是?A. ISO 9000B. CMMIC. PMBOKD.软件开发生命周期(SDLC)15. 在软件工程中,测试的目的是什么?A. 证明软件的正确性B. 找出软件中的错误C. 提高软件的质量D. 规范软件的开发过程16. 软件工程中的“软件生命周期”通常包括哪几个阶段?A. 开发B. 运行C. 维护17. 软件工程中,版本控制的主要作用是什么?A. 监控软件的修改历史B. 管理软件的版本C. 确保软件的一致性D. 保证软件的可靠性18. 软件工程中,敏捷开发方法是一种以人为核心、迭代、循序渐进的开发方法,它的核心价值包括:A. 个体和互动跨功能团队B. 可用的软件客户合作C. 响应变化随时间进化D. 面向结果19. 在软件工程中,UML(统一建模语言)是一种用于描述、构造和编写软件系统的图形化语言,它通常用于以下哪个阶段?A. 需求分析B. 设计C. 编码D. 测试20. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
软件⼯程基础习题习题11. 简述计算机系统的开发流程。
2. 系统分析和定义是计算机系统开发过程中的关键步骤,这⼀步应该做哪些⼯作?3. 系统规格说明书主要应包含哪些内容?为什么要进⾏系统复审?4. 如何理解软件概念?简述软件有哪些分类⽅法?5. 软件的发展经历了哪⼏个阶段?简述各阶段名称及特点。
6. 查阅⽂献写⼀篇1000字的短⽂,综述软件⼯程的发展。
7. 什么是软件危机?主要有哪些表现?8. 查阅最新⽂献写⼀篇2000字的短⽂,综述软件危机在当今的表现以及造成的危害。
9. 什么是软件的⽣命周期?10. 软件⽣存期模型主要有哪些?给出名称及特点。
习题21. 软件计划的任务主要有哪些?2. 在软件计划阶段应该考虑哪三类资源?对软件开发中的每⼀类资源可以⽤哪些特征来描述?什么是时间窗⼝?可再⽤软件资源主要有⼏种?给出名称及简单解释。
3. 软件⽣命周期中各阶段⼈⼒资源如何安排才合理?4. 简述代码⾏技术的基本思想。
5. 指出下列公式中每个量的含义。
∑=-±=ni d a b L 12)6(6. 什么是40-20-40规则?7. 当采⽤敏捷开发过程时,如何进⾏项⽬估算? 8. 如何对Web ⼯程项⽬进⾏估算? 9. 简述任务分解技术的基本思想。
10. Halstead 理论模型的主要依据有哪些?给出⽤Halstead 理论模型估算成本的公式以及公式的推导过程,说出各个量的取值依据。
11. 估计某PASCAL 程序中n1=70,n2=60,N1=14300,N2=400,取S=12,W=20000,估算开发该软件的总成本。
12. 估计⼀个C 语⾔程序系统⼤约⼀万⾏,W 取30000元,估算开发该系统的成本。
13. 开发⼀个Organic 类型的软件,经分析有45000⾏源代码,试⽤基本COCOMO 模型估算所需⼯作量、⽣产率、开发时间及投⼊该项⽬的最佳⼈员数。
14. 利⽤题13得出的⼯作量E ,根据Esterling 模型估算当团队⼈数n 为8时的软件成本,若n 为12时,成本⼜当如何?15. ⽤2年的时间开发⼀个应⽤软件系统,估计代码⾏数为5万⾏,Ck 取10000,试计算所需⼯作量。
软件工程基础考试试题一、单选题(每题2分,共20分)1. 软件工程的主要目标是:A. 开发高质量的软件产品B. 提供解决复杂问题的工具和技术C. 改善软件开发过程的效率和质量D. 以上答案都正确2. 在软件生命周期中,软件需求分析阶段的主要任务是:A. 定义软件的功能和性能需求B. 设计软件的架构和模块C. 编写软件代码和进行调试D. 运行和维护软件系统3. 下列哪个不是软件测试的目标:A. 测试软件系统的正确性和健壮性B. 发现软件中的错误和缺陷C. 评估软件系统的可靠性和可用性D. 增加软件的功能和性能4. 软件配置管理的主要任务是:A. 维护软件系统的版本和变更历史B. 管理软件系统的开发团队C. 评估软件系统的质量和性能D. 设计软件系统的架构和模块5. 软件开发生命周期模型中,以下哪个模型强调迭代和循序渐进的特点:A. 瀑布模型B. 原型模型C. 增量模型D. 螺旋模型6. 下列哪个不是软件项目管理的主要任务之一:A. 制定项目计划和进度安排B. 管理项目团队的人力资源C. 编写软件系统的详细设计文档D. 控制项目的成本和质量7. 软件工程中常用的项目管理工具不包括:A. 甘特图B. PERT/CPMC. UMLD. 敏捷开发8. 在软件测试中,下列哪种测试方法是通过测试人员的随机操作来检验软件系统的可靠性:A. 黑盒测试B. 白盒测试C. 灰盒测试D. 增量测试9. 软件工程的核心原则包括:A. 模块化B. 重用C. 抽象D. 以上答案都正确10. 软件工程的关键技术包括:A. 需求分析和规格说明B. 概要设计和详细设计C. 编码和调试D. 以上答案都正确二、填空题(每题2分,共20分)1. 软件开发生命周期包括需求分析、设计、编码、测试、____和维护。
2. 软件需求分析的目标是明确软件的功能、性能和____。
3. 软件测试的基本原则之一是:测试应该完全独立于____。
4. 软件工程中常用的项目管理方法之一是____,用于确定最短的完成项目所需时间。
软件工程基础期末试题及答案一、选择题 (每题2分,共20分)1. 软件工程的主要目标是( )。
A. 提高软件的质量B. 降低软件的开发成本C. 提高软件的开发效率D. 以上都对答案:D2. 下列哪个不是软件工程的基本活动?A. 软件规格B. 软件设计和实现C. 软件验证D. 软件评估答案:D3. 下列哪个不是软件工程的关键过程?A. 需求分析B. 软件设计C. 软件测试D. 代码审查答案:D4. 下列哪个不是软件工程的核心思想?A. 规范性B. 可维护性C. 可靠性D. 高效性答案:D5. 在软件开发过程中,需求分析的目的是( )。
A. 确定软件的功能和性能要求B. 确定软件的架构和设计C. 确定软件的开发方法和工具D. 确定软件的测试策略答案:A6. 下列哪个不是需求分析的主要任务?A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的开发需求答案:D7. 下列哪个不是软件设计的主要任务?A. 确定软件的架构B. 确定软件的模块划分C. 确定软件的数据结构D. 确定软件的开发计划答案:D8. 下列哪个不是软件设计的重要考虑因素?A. 软件的可扩展性B. 软件的可维护性C. 软件的可靠性D. 软件的性能答案:D9. 下列哪个不是软件测试的主要目的?A. 发现和修复软件缺陷B. 验证软件的功能和性能是否符合需求C. 评估软件的质量和可靠性D. 提高软件的开发效率答案:D10. 下列哪个不是软件测试的主要方法?A. 黑盒测试B. 白盒测试C. 静态测试D. 代码审查答案:D二、填空题 (每题2分,共20分)1. 软件工程是一种应用系统工程的方法和工具,以规范化的、可量化的和可控制的方式开发和维护软件的工程学科,其基本目标是以$$______$$的方式开发和维护软件,以提高软件的质量、降低软件的开发成本和提高软件的开发效率。
答案:工程化2. 软件工程的核心思想可以概括为规范化、$$______$$、可维护性和可靠性,其中规范化是软件工程的基础,可维护性是软件工程的重要目标,可扩展性是软件工程的关键。
软件工程基础考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 硬件D. 需求分析2. 软件开发过程中,需求分析的目的是什么?A. 确定软件开发的功能需求B. 规划软件的架构设计C. 编写代码D. 进行系统测试3. 在敏捷开发中,迭代周期通常是什么?A. 一周B. 一个月C. 一个季度D. 六个月4. 软件工程的五大基本质量特性包括:功能性、可靠性、易用性、效率、可维护性。
其中,易用性是指软件易于理解和使用的能力。
这一特性是由哪个因素决定的?A. 用户的经验B. 开发者的技术水平C. 用户的技能水平D. 软件的设计和实现5. 在软件开发中,版本控制是一种有效的管理手段,它可以跟踪文件的变更历史并协助开发者协作。
以下关于版本控制的描述,不正确的是:A. Git是一种广泛使用的版本控制系统B. 版本控制可以防止软件被非法复制C. 版本控制可以帮助开发者回滚到以前的版本D. 版本控制可以确保不同开发者的工作同步6. 在软件工程中,测试是为了发现错误而执行程序的过程。
以下关于软件测试的描述,不正确的是:A. 测试应该尽早开始,贯穿整个软件开发过程B. 回归测试是在软件修改后进行的,目的是验证之前的错误已经修复C. 集成测试是在软件的各个模块组装在一起后进行的测试D. 功能测试和性能测试是软件测试的两种类型7. 软件工程师在编写代码时需要遵循一些命名约定,以便其他开发者能够更容易地理解和维护代码。
以下关于软件工程师命名约定的描述,不正确的是:A. 变量名应该使用小写字母和下划线(例如:user_name)B. 常量名应该使用全大写字母和下划线(例如:MAX_VALUE)C. 函数名应该使用动词开头的小写字母(例如:get_data)D. 类名应该使用大驼峰命名法(例如:UserInformation)8. 在软件开发中,配置管理是一种用于控制软件开发和维护过程中的变更的过程。
软件工程基础考试题目和答案一、选择题(每题5分,共25分)1. 软件工程的主要目标是什么?A. 提高软件开发效率B. 确保软件质量C. 降低软件开发成本D. 提高软件的可维护性答案:B2. 下列哪个阶段不属于软件开发生命周期?A. 需求分析B. 设计C. 测试D. 需求变更答案:D3. 下列哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 面向过程编程答案:A4. 下列哪个工具主要用于软件项目进度监控?A. Gantt图B. 思维导图C. 帕累托图D. 直方图答案:A5. 下列哪种方法主要用于风险管理?A. 风险识别B. 风险评估C. 风险应对D. 风险监控答案:A二、填空题(每题5分,共25分)1. 软件工程的核心思想是______,通过规范的开发过程和严格的质量控制,提高软件的质量和可靠性。
答案:工程化2. 软件需求分析的主要目的是______,明确软件的功能和性能要求。
答案:理解用户需求3. 结构化分析方法主要包括______、数据流图、实体关系图等。
答案:数据字典4. 软件测试的主要目的是______,发现并修复软件中的缺陷。
答案:保证软件质量5. 敏捷开发方法的核心价值观是______,强调快速响应变化和客户合作。
答案:个体和互动三、简答题(每题10分,共30分)1. 请简要描述软件开发生命周期的主要阶段及其作用。
答案:软件开发生命周期主要包括需求分析、设计、编码、测试和维护等阶段。
需求分析阶段用于理解用户需求,设计阶段用于制定软件架构和详细设计,编码阶段用于实现软件功能,测试阶段用于发现并修复软件缺陷,维护阶段用于提供软件支持和更新。
2. 请简要介绍敏捷开发方法的主要特点和实践原则。
答案:敏捷开发方法主要包括个体和互动、工作软件、客户合作、响应变化等价值观。
实践原则包括短迭代周期、持续反馈、自我组织和协作等。
敏捷开发方法强调快速响应变化,提高软件质量和开发效率。
软件工程基础知识试题及答案解析软件工程基础知识试题及答案解析第一节:单项选择题1. 以下哪个不是软件工程的关键活动?A. 需求分析与规格说明B. 设计与实现C. 维护与更新D. 市场分析与调研答案:D解析:软件工程的关键活动包括需求分析与规格说明、设计与实现、维护与更新等,市场分析与调研是软件工程的前期准备活动,不属于关键活动。
2. 下列哪个不是软件测试的基本原则?A. 测试应该尽可能早地开始B. 测试应该尽可能晚地结束C. 测试应该覆盖尽可能多的场景D. 测试应该定期进行答案:B解析:软件测试的基本原则包括测试应该尽可能早地开始、测试应该覆盖尽可能多的场景、测试应该定期进行等,测试应该尽可能晚地结束不符合软件测试的基本原则。
3. 下面哪个不是软件需求的特点?A. 可变性B. 不精确性C. 差异性D. 一致性答案:D解析:软件需求的特点包括可变性、不精确性、差异性等,一致性不属于软件需求的特点。
4. 下列哪个不是软件开发生命周期模型?A. 瀑布模型B. 增量模型C. 敏捷模型D. 螺旋模型答案:C解析:软件开发生命周期模型包括瀑布模型、增量模型、螺旋模型等,敏捷模型不属于软件开发生命周期模型。
5. 下列哪个不是软件缺陷的分类?A. 语法错误B. 逻辑错误C. 界面错误D. 运行时错误答案:C解析:软件缺陷的分类包括语法错误、逻辑错误、运行时错误等,界面错误不属于软件缺陷的分类。
第二节:简答题1. 简要说明软件工程的定义和特点。
答:软件工程是研究和应用一种用工程化的方法开发和维护软件的学科。
软件工程的特点包括:复杂性、可变性、不可见性、不可测性等。
复杂性指的是软件系统往往由多个模块组成、包含大量的代码和数据,并且相互之间存在复杂的关系;可变性指的是软件系统的需求和规格常常会发生变化;不可见性指的是软件系统是不存在于物理空间中的,只能通过人机交互的方式来感知;不可测性指的是软件系统的行为和性能往往难以预测和估计。
《软件工程基础》考核题该门课程不用现场笔试考试(网上预约考试时间为虚设),请预约该门课程考试的学生将答案手写A4答题纸上,于规定时间内交到学习中心,哈站交到班主任处。
未预约的学生提交的内容作废处理,预约后不按规定时间提交按旷考处理。
(答题纸附在第二页,所有答案必须写在答题纸上,标清题号)一、选择题(每小题3分,共30 分)1、准确地解决“软件系统必须做什么”是()阶段的任务。
A.可行性研究 B. 需求分析C. 软件设计D. 程序编码2、软件生存期中时间最长的是()阶段。
A. 需求分析B. 软件设计C. 软件测试D. 软件运行/维护3、在结构化分析方法中用状态―迁移图表达系统或对象的行为。
在状态―迁移图中,由一个状态和一个事件所决定的下一状态可能会有( )个。
供选择的答案:A. 1B. 2C. 多个D. 不确定4、软件需求分析阶段的工作,可以分为以下4个方面: 对问题的识别、分析与综合、编写需求分析文档以及()。
A.总结B.阶段性报告C.需求分析评审D.以上答案都不正确5、在软件生存周期的瀑布模型中一般包括计划、()、设计、编码、测试、维护等阶段。
A 可行性分析B 需求采集C 需求分析D 问题定义6、软件工程包括三个要素:方法、工具和()。
A 过程B 软件系统C 硬件环境D 人员7、需求分析最终结果是产生( )。
A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书8、数据字典中,一般不出现的条目是( )。
A.数据流B.数据存储C.加工D.源点与终点11、9、在软件测试中,下面说法中错误的是( )。
A. 测试是为了发现程序中的错误而执行程序的过程B. 测试是为了表明程序是正确的C. 好的测试方案是极可能发现迄今为止尚未发现的错误的方案D. 成功的测试是发现了至今为止尚未发现的错误的测试10、用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别对象模型、()、功能模型。
A.动态模型 B. 状态模型C. 系统模型D. 用户模型二、选择填空题(每小题10分,共20分)1、在面向对象软件设计过程中,应按如下要求进行类的设计:只有类的共有界面的成员才能成为使用类的操作,这就是软件设计的( A )原则。
软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 软件工程的三要素包括()。
A. 方法、工具和过程B. 方法、工具和人员C. 方法、过程和人员D. 工具、过程和人员答案:C3. 软件需求分析阶段的主要任务是()。
A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:A4. 软件设计阶段的主要任务是()。
A. 制定软件开发计划B. 确定软件的体系结构C. 编写软件详细设计文档D. 进行软件测试答案:B5. 软件测试的目的是()。
A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件是可维护的答案:B6. 软件维护不包括以下哪项活动()。
A. 改正性维护B. 适应性维护C. 完善性维护D. 软件设计答案:D7. 软件项目管理的主要任务不包括()。
A. 进度管理B. 质量管理C. 风险管理D. 软件编码答案:D8. 面向对象方法中,对象的基本特性不包括()。
A. 抽象B. 封装C. 继承D. 多态答案:D9. UML(统一建模语言)是一种()。
A. 程序设计语言B. 数据库查询语言C. 建模语言D. 脚本语言答案:C10. 在软件开发过程中,需求变更是不可避免的,以下哪项不是需求变更的原因()。
A. 客户的需求不明确B. 项目范围的扩大C. 技术实现的困难D. 软件已经完成答案:D二、多项选择题(每题3分,共15分)11. 软件工程的基本原理包括()。
A. 抽象B. 模块化C. 逐步求精D. 迭代开发答案:ABC12. 软件需求分析阶段的输出包括()。
A. 需求规格说明书B. 用户手册C. 系统架构图D. 测试计划答案:A13. 软件设计阶段的主要文档包括()。
A. 架构设计文档B. 详细设计文档C. 用户手册D. 测试计划答案:AB14. 软件测试的类型包括()。
软件工程基础知识考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 硬件D. 需求分析2. 软件开发过程中,需求分析和系统设计阶段的主要任务是什么?A. 编写代码B. 确定软件系统的功能需求C. 编写用户手册D. 进行系统测试3. 软件工程的生命周期通常包括哪些阶段?A. 开发B. 测试C. 部署D. 维护4. 在软件开发中,常用的软件开发方法有哪些?A. 敏捷开发B. 瀑布模型C. 结构化方法D. 面向对象方法5. 需求分析的目的是什么?A. 详细描述软件的功能和性能要求B. 确定软件开发的总成本C. 规划软件开发过程D. 评估项目风险6. 在软件工程中,什么是版本控制?A. 一种文件管理技术,用于跟踪软件的变更历史B. 一种软件开发方法论C. 一种编程语言D. 一种数据库管理技术7. 软件测试的目的是什么?A. 发现软件中的错误和缺陷B. 评估软件的性能C. 确保软件符合用户需求D. 提高软件的质量8. 在敏捷开发中,迭代周期通常有多长?A. 1周B. 2周C. 3周D. 4周9. 在软件工程中,什么是配置管理?A. 管理软件配置项的过程B. 软件开发过程中的一个活动C. 与软件开发和维护相关的所有活动的集合D. 软件开发完成后进行的活动10. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
B. 软件工程关注软件的开发、测试、维护和项目管理。
C. 软件工程的目标是实现软件的自动化开发。
D. 软件工程是一种实践性知识,不依赖于特定的工具或技术。
11. 软件开发过程中通常使用的模型有哪些?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 面向服务的模型12. 什么是需求分析?它在软件开发过程中的作用是什么?A. 需求分析是识别和分析软件系统需要满足的条件或功能的过程。
B. 需求分析在软件开发过程中确保最终产品满足用户需求。
软件工程考试题及答案一、选择题(每题2分,共20分)1. 软件工程中的需求分析阶段的主要任务是什么?A. 确定软件的功能需求B. 设计软件的架构C. 编写软件的详细设计文档D. 进行软件的编码实现答案:A2. 在软件开发过程中,哪个阶段是进行风险评估的?A. 需求分析B. 设计C. 编码D. 测试答案:B3. 软件测试中的黑盒测试通常是基于什么进行的?A. 程序源代码B. 程序的内部逻辑C. 程序的功能需求D. 程序的运行环境答案:C4. 敏捷开发方法论中,哪个活动是迭代的核心?A. 需求收集B. 编码实现C. 测试D. 回顾会议答案:B5. 在软件维护中,哪种类型的维护是最常见的?A. 纠错性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:A二、填空题(每空1分,共10分)6. 软件工程的生命周期包括需求分析、________、编码、测试和维护等阶段。
答案:设计7. 软件工程中的_______原则指的是高内聚低耦合。
答案:模块化8. 在软件开发中,_______ 是指软件在特定条件下使用时,能够达到预期功能、性能要求的能力。
答案:可靠性9. 软件项目管理中的_______ 是指在项目开发过程中,对项目进行监控和控制,确保项目按计划进行。
答案:监控10. 在软件测试中,_______ 是指测试用例设计得尽可能覆盖所有可能的执行路径。
答案:穷尽测试三、简答题(每题10分,共30分)11. 简述软件工程中的模块化设计原则及其优点。
答案:模块化设计原则是指将软件系统划分为多个模块,每个模块具有特定的功能,并且模块之间通过定义良好的接口进行交互。
其优点包括:- 易于管理:模块化使得软件更容易理解和维护。
- 可重用性:模块可以在不同的项目中重复使用。
- 并行开发:模块化允许多个团队并行开发不同的模块。
- 灵活性:模块化提高了软件的灵活性,便于扩展和修改。
12. 解释什么是软件的可维护性,并说明其重要性。
软件工程基础练习试卷3(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.在图7-2所示的流程图中,如果标记为b的运算执行了m次(m>1),那么标记为a的运算的执行次数为______。
A.1B.m-1C.mD.m+1正确答案:D解析:根据题目所给的流程图,只有当标记为a的运算返回Y(真)时,b运算才会得以执行,而后继续返回到a运算。
而当a运算返回N(假)时,整个流程执行完毕。
由此可见,如果b运算执行了m次,则a运算必定执行并返回了m 次Y。
而在第m+1次执行a运算时,返回了N,执行完毕。
故a运算执行次数为m+l。
知识模块:软件工程基础2.软件的复杂性与许多因素有关。
______不属于软件的复杂性参数。
A.源程序的代码行数B.程序的结构C.算法的难易程度D.程序中注释的多少正确答案:D解析:注释是程序员对程序某部分的功能和作用所做的说明,对编译和运行不起作用。
所以,注释跟软件的复杂性无关。
所以选项D为正确答案。
知识模块:软件工程基础3.______不是良好的编程风格。
A.变量名采用单字母符号或单字母加数字串B.程序代码采用缩进格式C.为变量设置初始值D.程序中包含必要的注释正确答案:A解析:程序的设计风格,指编写程序时源程序的格式。
良好的编程风格,可以帮助人们理解程序,查找错误。
在编程过程中,要注意养成良好的习惯,比如:选择含义明确的名字,使它能正确提示标识符所代表的实体,而且,名字中应当避免使用易混淆的数字。
显然,选项A的说法是错误的,为本题答案。
在程序要添加空格、空行和缩进,帮助人们在视觉上看清程序结构。
选项B符合这个要求。
显式说明一切变量。
选项C的为变量设置初始值,也是良好的编程习惯。
程序中包含必要的注释,可以帮助人们理解程序。
选项D符合这个要求。
知识模块:软件工程基础4.下列叙述中,良好编程风格的正确叙述,是______。
一、单项选择题(10分)1.为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
A.纠错性维护B.适应性维护C.改善性维护D.预防性维护2.技术可行性是可行性研究的关键,其主要内容一般不包括(C)。
A.风险分析B.资源分析C.人员分析D.技术分析3.判定表由四部分组成:左上部列出(B)。
A.条件组合与动作之间的对应关系B.所有条件C.所有可能的动作D.可能的条件组合4.根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为(C)。
A.纠错性维护B.适应性维护C.改善性维护D.预防性维护5.一个模块的(B)是指能直接控制该模块的模块数。
A.扇出数B.扇入数C宽度D.深度二、判断题(共20分,错误打X、正确打√)1.一个好的开发人员应具备的素质和能力包括善于分析和综合问题,具有严密的逻辑思维能力。
(√)2.计算机系统工程是一种从系统层面上的问题求解活动。
(√)3.软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。
(√)4.数据流图就是用来刻画数据流和转换的信息系统建模技术。
(√)5.软件过程设计不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。
(√)6.PDL经常表现为一种“混杂”的形式,他不允许自然语言和英语的词汇与某种结构化程序设计语言(如Pascal、C、Ada等)的语法结构交织在一起。
(X)7.通过软件测试,可以发现软件中所有潜伏的错误。
(X)8.非结构化维护用于软件的配置中,只有源代码维护。
(√)9.系统规格说明是系统分析和定义阶段生成的一种文档。
(√)10.内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度可分为七级,内聚度越低越好。
(√)三、论述题(30分)1、人机界面设计过程可分为创建系统功能的外部模型;确定为完成此系统功能,人和计算机应分别完成的任务及另外哪几个步骤?答:1创建系统功能的外部模型。
2确定为完成此系统功能的人和计算机应分别完成的任务。
软件工程考核题
一、单项选择题(10分)
1. 下列关于功能性注释不正确的说法是( B )。
A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B. 注
释用来说明程序段,需要在每一行都要加注释 C. 可使用空行或缩进,以便很容易区分注释和程序 D. 修改程序也应修改注释
2. 下列关于效率的说法不正确的是( D )。
A. 效率是一个性能要求,其目标应该在需求分析时给出
B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C. 效率主
要指处理机时间和存储器容量两个方面 D. 程序的效率与程序的简单性无关
3. 测试的关键问题是( D )。
A. 如何组织对软件的评审
B. 如何验证程序的正确性
C. 如何采用综合策略
D. 如何
选择测试用例
4. 可维护性的特性中,相互矛盾的是( B )。
A. 可理解性与可测试性
B. 效率与可修改性
C. 可修改性和可理解性
D. 可理解性与可读性
5. 从目前情况来看,增量模型存在的主要问题是( C )。
A. 用户很难适应这种系统开发方
法 B. 该方法的成功率很低
C. 缺乏丰富而强有力的软件工具和开发环境
D. 缺乏对开发过程中的问题和错误具有应付变化的机制
二、填空题(共20分)
1. 作为计算机科学技术领域中的一门新兴学科,软件工程主要是为了解决_如何建立一个软件系统_如何建立一个软件系统_问题。
2. 投资回收期就是使_ 积累的经济效益积累的经济效益__等于最初的投资费用所需时
间。
3. 在IDEF0方法的一个活动图形中控制活动是指__所受到的约束条件。
4. 划分模块时尽量做到_高内聚低耦合,保持模块的独立性。
5. PAD图是一种__有左往右展开的二维树形结构。
6. 对校正性维护应该从评价错误的严重性开始。
7. 类的实例化是_对象。
8. 人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可靠性的两个指标是_ MTTF和_ MTBF 。
9. 将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,将得到软件的总开发量。
这种成本估算方法称为自底向上估算方法
三、论述题(30分)
1. 简述演绎法调试的具体步骤?
答:.演绎法调试步骤:列出所有可能的错误原因的假设;排除不适当的假设;精化余于的假设;证明余于的假设。
2. 简述增量模型和瀑布模型的本质区别?
答:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。
而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。
3. 简述设计一个容错系统的步骤?
答:(1)按设计任务要求进行常会设计,尽量保证设计的正确(2)对可能出现的错误分类,确定实现容错的范围
(3)按照“成本—效率”最优原则,选用某种冗余手段(结构,信息,时间)来
实现对各类错误的屏蔽
(4)分析或验证上述冗余结构的容错效果
4. 简述在项目开发时,选择程序设计语言应考虑因素? 4.(1)项目的应用领域;(2)软件开发的方法(3)软件执行的环境(4)算法和数据结构的复杂性(5)软件开发人员的知识
5. 软件质量保证应做好哪几方面的工作?
答:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:(1)采用技术手段和工具。
-2- (2)组织正式技术评审。
(3)加强软件测试。
(4)推行软件工程规范(标准)。
(4)对软件的变更进行控制。
(6)对软件质量进行度量。
四、综合题(共40分)
1. 已知一个软件项目的记录,开发人员M=3人,其代码行数=1
2.1KLOC,工作量E=24PM,
成本S=168000美元,错误数N=29,文档页数Pd=365页。
试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。
答:1.软件开发的生产率P为: P = L / E = 12.1×103LOC / 24PM = 504 LOC/PM 2.开发每行代码的平均成本C为: C = S / L = 168000美元 / 12100LOC=13.9美元/LOC 3.代码出错率EQR为: EQR = N / L = 29个/12.1KLOC=2.4个/KLOC 4.软件的文档率D为: D = Pd / L = 365页 / 12.1KLOC = 30页/ KLOC
2. 为以下程序流程图分别设计语句覆盖和判定覆盖测试用例并标明程序执行路径。
答:1)条件覆盖——条件覆盖是指设计足够的测试用例,使每个判定表达式中的每个条件的每种可能值都至少出现一次。
设计如下两组测试用例,可以满足条件覆盖的标准: x=2,y=0,z=3
(覆盖x>1,y=0,x=2,z>1,通过路径abcde); x=1,y=1,z=1
(覆盖x≤1,y≠0,x≠2,z≤1,通过路径ace)。