软件工程试题及答案34385
软件工程考试题及答案
软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。
答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。
答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。
答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。
它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。
2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。
通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。
3. 请简述软件开发生命周期中的各个阶段。
答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。
- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。
- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。
- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。
- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。
- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。
软件工程学试题及答案
软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。
A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。
A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。
A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。
A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。
A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。
A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。
A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。
A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。
答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。
2. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。
2024年上半年《软件工程》全国自考考题含解析
2024年上半年《软件工程》全国自考考题一、单项选择题1、在建模过程中,可用以描述加工的工具是______。
A.数据流B.判定树C.数据字典D.数据存储2、在教师科研方案中规定对教授、副教授和讲师分别计算分数,做相应的处理,则根据黑盒测试中的等价类划分技术,下列划分正确的是______。
A.3个有效等价类,3个无效等价类B.3个有效等价类,1个无效等价类C.1个有效等价类,1个无效等价类D.1个有效等价类,3个无效等价类3、软件工程在20世纪60年代末到80年代初获得的主要成果有______。
A.CASE产品B.面向对象语言C.瀑布模型D.软件生存周期过程4、在常见的软件开发模型中,主要用于支持面向对象技术软件开发的是______。
A.喷泉模型B.螺旋模型C.增量模型D.瀑布模型5、软件生存周期是指______。
A.开发软件的全部时间B.使用软件的全部时间C.开发和使用软件的全部时间D.从形成概念开始到最后淘汰让位于新的软件产品的时间6、RUP的分析类包括边界类、实体类和______。
A.子类B.控制类C.父类D.活动类7、下列可用于概念模型和软件模型的动态结构的是______。
A.类图B.对象图C.部署图D.用况图8、集成化能力成熟度模型(CMMI)针对每个过程域设定了能力等级,其中最高级为______。
A.3级B.4级C.5级D.6级9、RUP的迭代、增量式开发过程中,需要估算成本、进度,并能够减少次要的错误风险,至少需要完成______。
A.初始阶段B.精化阶段C.构造阶段D.移交阶段10、结构精细化设计过程中,为了提高模块的独立性,应遵循的原则是______。
A.低内聚高耦合B.低内聚低耦合C.高内聚低耦合D.高内聚高耦合11、《ISO/IEC软件生存周期过程12207-1995》标准按过程主体把软件生存周期过程分为基本过程、组织过程和______。
A.供应过程B.开发过程C.测试过程D.支持过程12、“与所规约的系统执行之间的偏差”是指______。
《软件工程》试题及参考答案(第1套)
《软件工程》试题及参考答案(第1套)《软件工程》试题及参考答案(第1套)一、单项选择题1. 软件工程的最终目标是:A. 提高软件开发效率B. 提高软件质量C. 提高软件维护效率D. 以上都是答案:D2. 下列哪项不属于软件需求分析的主要活动?A. 软件设计B. 需求获取和建模C. 需求验证和确认D. 需求管理答案:A3. 以下哪项不是构建阶段的主要活动?A. 编码B. 软件测试C. 软件集成D. 软件配置管理答案:D4. 下列哪个过程不属于软件项目管理过程?A. 需求管理B. 配置管理C. 软件测试D. 质量管理答案:C5. 下列哪个模型强调在系统开发的初期确定并冻结需求?A. 瀑布模型B. 快速原型模型C. V模型D. 增量模型答案:A二、多项选择题1. 软件过程模型的主要作用是:A. 规范软件开发的过程B. 定义软件开发的阶段C. 明确软件开发的任务分工D. 以上都是答案:D2. 软件生命周期是指:A. 软件的设计阶段B. 软件的测试阶段C. 软件的开发到维护的整个过程D. 软件的发布与用户反馈过程答案:C3. 软件测试的主要目标是:A. 寻找并修复软件中的错误B. 确保软件满足用户需求C. 提高软件的可靠性和质量D. 以上都是答案:D4. 下列哪个工具不属于软件配置管理工具?A. 版本控制工具B. 缺陷跟踪工具C. 自动化构建工具D. 可行性分析工具答案:D5. 下列哪个项目风险类型是与技术因素相关的?A. 市场竞争风险B. 技术风险C. 经济风险D. 法律风险答案:B三、简答题1. 请简要描述瀑布模型的开发流程。
瀑布模型的开发流程包括以下几个阶段:1) 需求分析阶段:收集用户需求,并进行详细的需求分析和建模。
2) 系统设计阶段:根据需求分析得到的系统需求,进行整体设计和详细设计。
3) 编码和单元测试阶段:将设计好的系统转化为可执行代码,并进行单元测试,验证代码的正确性。
4) 集成测试阶段:将各个模块进行集成,测试整个系统的功能和性能。
软件工程期末试卷(十套含答案)
软件工程期末试卷(十套含答案)一、选择题(每题1分,共5分)A. 方法论B. 工具C. 过程D. 人员2. 下列哪一项不是软件生命周期的阶段?A. 需求分析B. 设计C. 编码D. 销售与市场A. 瀑布模型B. 喷泉模型C. 增量模型D. 敏捷模型4. 下列哪种方法不是软件需求获取的方法?A. 问卷调查B. 访谈C. 观察D. 编码A. 单一职责原则B. 开放封闭原则C. 里氏替换原则D. 依赖倒置原则二、判断题(每题1分,共5分)1. 软件工程的目标是生产出高质量的软件产品。
(√/×)2. 在软件开发过程中,需求分析阶段是最重要的阶段。
(√/×)3. 软件开发模型只有瀑布模型和喷泉模型两种。
(√/×)4. 在面向对象方法中,类是现实世界中实体的抽象。
(√/×)5. 软件测试的目的是证明软件的正确性。
(√/×)三、填空题(每题1分,共5分)1. 软件工程的三要素包括方法论、工具和______。
2. 软件生命周期包括需求分析、设计、编码、测试和______。
3. 在面向对象方法中,对象是现实世界中实体的______。
4. 软件开发模型包括瀑布模型、喷泉模型、增量模型和______。
5. 软件测试的目的是发现软件中的______。
四、简答题(每题2分,共10分)1. 简述软件工程的目标。
2. 简述软件生命周期的阶段。
3. 简述面向对象方法的基本概念。
4. 简述软件开发模型的作用。
5. 简述软件测试的目的。
五、应用题(每题2分,共10分)1. 假设你是一个软件开发人员,你需要为一个图书馆开发一个图书管理系统。
请列出该系统的需求。
2. 请解释瀑布模型和喷泉模型的区别。
3. 请解释面向对象方法中的继承和多态的概念。
4. 请解释软件测试中的黑盒测试和白盒测试的区别。
5. 请解释软件维护的类型。
六、分析题(每题5分,共10分)1. 假设你是一个软件开发人员,你需要为一个在线购物网站开发一个支付系统。
软件工程基础考试题目和答案
软件工程基础考试题目和答案一、选择题(每题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分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性B.可重用性C.适应性D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率B.规模C.完整性D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象7.软件调试技术包括()A.边界值分析B.演绎法C.循环覆盖D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的()A.代码的规模B.运行速度C.质量D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么B.用户使用界面C.输入的信息D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程试卷及参考答案
试卷(一)一、单项选择题1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是( )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、软件规格说明B、用户操作手册C、软件问题报告D、软件测试分析报告9、不适合作为科学工程计算的语言是( )A、PascalB、CC、FortranD、 Prolog10、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。
A. 技术可行性B. 经济可行性C. 社会可行性D. 法律可行性11、中级结构性成本模型COCOMO是一个( )A、静态单变量模型B、动态单变量模型C、静态多变量模型D、动态多变量模型12、PAD图为()提供了有力的工具。
A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件13、下列关于JSP方法不正确的说法是( )A、JSP方法主要用于规模不大的数据处理系统B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D、JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段14、在详细设计阶段,经常采用的工具有()A、PADB、SAC、SCD、DFD15、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()A、集成测试B、恢复测试C、验收测试D、单元测试16、盒图(N-S图)为()提供了有力的工具。
软件工程试卷(附答案)
软件工程试卷(附答案)软件工程试卷(附答案)一、选择题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. 软件应该按时交付,而不考虑质量问题二、简答题1. 请简要介绍软件需求分析的主要任务和方法。
需求分析是软件开发过程中的重要环节,主要任务有以下几点:- 确定软件的功能需求:通过与用户、项目管理人员和领域专家的沟通,了解用户对软件的需求和期望,并将其转化为明确的功能需求。
- 确定软件的非功能需求:包括性能、安全性、可靠性等方面的要求,以确保软件具备所需的质量属性。
- 对需求进行分析和建模:通过使用UML等工具,将需求转化为可视化的模型,以便更好地理解和沟通需求。
- 验证和确认需求:与用户和其他相关利益相关者一起,验证和确认所定义的需求,以确保其准确和完整。
需求分析的方法主要包括:- 采访和观察:与用户和利益相关者进行面对面的交流,收集需求信息。
软件工程考试试题及答案
软件工程考试试题及答案一、单选题1. 软件需求分析是软件工程的哪个阶段?a. 需求分析与定义b. 软件设计c. 软件测试d. 软件维护答案:a. 需求分析与定义2. 下列哪项不是软件工程的基本原则?a. 可复用性b. 高效性c. 可维护性d. 可理解性答案:b. 高效性3. 下列哪项不是软件质量保证的措施?a. 程序员的自我质量保证b. 审计c. 代码复用d. 测试答案:c. 代码复用4. 下列哪个是软件生命周期模型?a. 瀑布模型b. 程序开发模型c. 螺旋模型d. 增量模型答案:a. 瀑布模型5. 在软件工程中,什么是软件配置管理?a. 设计和开发软件的过程b. 管理软件的版本和更改c. 测试软件的过程d. 分配和调度任务的过程答案:b. 管理软件的版本和更改二、多选题1. 下列哪些是软件需求规格说明的内容?(多选)a. 需求的功能描述b. 系统性能要求c. 用户界面设计d. 软件的安装要求答案:a. 需求的功能描述、b. 系统性能要求、d. 软件的安装要求2. 软件测试的目的是什么?(多选)a. 发现软件中的错误b. 确保软件满足需求c. 评估软件的质量d. 提高软件的可维护性答案:a. 发现软件中的错误、b. 确保软件满足需求、c. 评估软件的质量3. 下列哪些是软件维护的类型?(多选)a. 纠错性维护b. 适应性维护c. 完善性维护d. 增量性维护答案:a. 纠错性维护、b. 适应性维护、c. 完善性维护、d. 增量性维护三、判断题1. 软件工程是一门工程学科,它包括对软件进行开发、测试、维护和管理等方面的知识。
(正确/错误)答案:正确2. 软件需求分析是软件开发的最后一步。
(正确/错误)答案:错误3. 软件测试的目的是为了证明软件是没有错误的。
(正确/错误)答案:错误四、简答题1. 简述软件生命周期模型中的瀑布模型。
答案:瀑布模型是软件生命周期模型中最早的模型之一。
它将软件开发过程分为需求分析、系统设计、详细设计、编码、测试和维护等阶段,并按照顺序执行。
软件工程试题及答案
软件工程试题及答案一、选择题1. 下列哪项不是软件工程的目标?A. 提高软件质量B. 减少开发成本C. 缩短开发周期D. 增加硬件依赖答案:D2. 软件生命周期模型是用来描述软件开发过程中的不同阶段和活动。
下列哪个不是常见的软件生命周期模型?A. 瀑布模型B. 原型模型C. 敏捷模型D. 瀑布-原型混合模型答案:D3. 如果一个软件开发项目处于需求分析阶段,以下哪项工作不应该进行?A. 进行用户需求调研B. 评估项目的风险C. 设计软件架构D. 编写需求规格说明书答案:C4. 软件测试的目的是什么?A. 发现软件中的缺陷B. 测试软件的性能C. 测试软件的安全性D. 评估软件的可用性答案:A5. 下列哪项不是软件维护的类型?A. 纠错性维护B. 改进性维护C. 适应性维护D. 构造性维护答案:D二、填空题1. 软件工程的核心活动是________________。
答案:软件开发2. 软件需求定义了软件要做什么,________________定义了如何构建软件。
答案:软件设计3. 软件开发中的一项常见风险是________________。
答案:进度延迟4. 软件测试可以分为________________、系统测试和验收测试。
答案:单元测试5. 软件维护的目标是________________软件的可靠性和可用性。
答案:提高三、简答题1. 请解释什么是软件需求工程?答:软件需求工程是软件工程中的一个关键过程,旨在识别、分析和定义系统或产品的用户需求。
它涉及与利益相关者合作,了解他们对软件的期望和需求,然后将这些需求转化为明确、一致和可验证的规格说明。
软件需求工程包括需求获取、需求分析、需求规格说明等活动。
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、下面()不是数据字典的内容。
软件工程题库(含答案)
软件工程题库(含答案)一、单选题(共60题,每题1分,共60分)1、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A、可用性B、正确性C、完整性D、可靠性正确答案:D2、软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( ).A、可移植性B、可理解性C、可重用性D、可修改性正确答案:A3、在软件质量要素的评价准则中,操作该软件的难易程度指的是( )。
A、容错性B、检测性C、可操作性D、安全性正确答案:C4、下列属于维护阶段的文档是( )A、软件问题报告B、用户操作手册C、软件测试分析报告D、软件规格说明正确答案:B5、快速原型模型的主要特点之一是( )A、及早提供工作软件B、开发完毕才见到产品C、及早提供全部完整的软件产品D、开发完毕后才见到工作软件正确答案:C6、可维护性通常包括( )。
A、可用性和可理解性B、可修改性、数据独立性和数据一致性C、可理解性、可修改性和可测试性D、可测试性和稳定性正确答案:C7、软件的可修改性支持软件的( )。
A、可互操作性B、可维护性C、可追踪性D、有效性正确答案:B8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )A、数据通信B、数据定义C、数据维护D、数据库设计正确答案:B9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( )。
A、可追踪性B、可理解性C、可互操作性D、可维护性正确答案:C10、可维护性的特性中相互促进的是( )A、效率和可移植性B、可理解性和可测试性C、效率和结构好D、效率和可修改性正确答案:B11、在软件质量特性中,( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
A、可靠性B、易使用性C、正确性D、准确性正确答案:A12、设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )A、信息隐藏和局部化的根据B、逐步求精的根据C、抽象的根据D、模块化的根据正确答案:D13、下列说法中,不正确的是( )。
软件工程考试题及答案
软件工程考试题及答案一、单项选择题(每题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、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件.(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法.3、什么叫软件工程?1968年在第一届NATO会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993年IEEE的定义: “①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径” .我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类:1。
管理过程模型。
2.瀑布模型(又称为生命周期模型)。
3。
增量过程模型:包括增量模型,,RAD模型。
软件工程考试题及答案
软件工程考试题及答案一、选择题(每题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. 解释什么是软件的可维护性,并说明其重要性。
软件工程考试试题与答案
专业:移动通信科目:软件工程一、单项选择题1.好(de)软件结构应该是()A.低耦合、低内聚B.高耦合、高内聚C.高耦合、低内聚D.低耦合、高内聚答案:D2.需求分析中开发人员要从用户那里了解()A.软件(de)规模B.软件做什么C.用户使用界面D.输入(de)信息答案:B3.软件调试技术包括()A.演绎法B.循环覆盖C.边界值分析D.集成测试答案:A4.软件需求规格说明书(de)内容不应包括对()(de)描述.A.用户界面及运行环境B.主要功能C.算法(de)详细过程D.软件(de)性能答案:C5.常用动词或动词词组来表示()A.属性B.关联C.类D.对象答案:B6.软件可行性研究实质上是要进行一次()需求分析、设计过程.A.详细(de)B.深入(de)C.彻底(de)D.简化、压缩(de)答案:D7.软件部分(de)内部实现与外部可访问性分离,这是指软件(de)()A.继承性B.共享性C.抽象性D.封装性答案:D8.软件部分(de)内部实现与外部可访问性分离,这是指软件(de)()A.共享性B.继承性C.抽象性D.封装性答案:D9.在详细设计阶段,经常采用(de)工具有()A.PDLB. DFDC.SCD.SA答案:A10.数据字典是对数据定义信息(de)集合,它所定义(de)对象都包含于()A.软件结构B.程序框图C.方框图D.数据流图答案:D11.软件工程结构化生命周期方法,提出将软件生命周期划分为计划、开发和运行三个时期,下述()工作应属于软件开发期(de)内容.A.问题定义B.可行性研究C.都不是D.总体设计答案:D12.应用执行对象(de)操作可以改变该对象(de)()A.功能B.数据C.属性D.行为答案:C13.软件质量因素不包括()A.可理解性B.可测试性C.正确性D.高性能答案:D14.软件可行性研究实质上是要进行一次()需求分析、设计过程.A.详细(de)B.彻底(de)C.深入(de)D.简化、压缩(de)答案:D15.结构化设计是一种面向()(de)设计方法.A.数据结构B.数据流C..程序D.数据库答案:B16.结构分析法就是面向()自顶向下逐步求精进行需求分析(de)方法.A.对象B.目标C.功能D.数据流答案:D17.进行需求分析可使用多种工具,但()是不适用(de) A.PAD图B.数据字典C.判定表D.数据流图答案:A18.面向对象(de)主要特征除唯一性、继承性、多态性外,还具有()A.兼容性B.完整性C.移植性D.封装性答案:D19.数据存储和数据流都是(),仅仅所处(de)状态不同.A.动作B.数据C.分析结果D.事件答案:B20.模块()定义为受该模块内一个判定影响(de)所有模块集合.A.作用域B.宽度C.控制域D.接口答案:A21.详细设计(de)任务是确定每个模块(de)()A.内部特性B.外部特性C.算法和使用(de)数据D.功能和输入输出数据答案:C22.结构化程序设计,主要强调(de)是()A.程序(de)可理解性B.模块大小C.程序(de)执行效率D.模块关系答案:A23.在软件结构设计完成后,对于下列说法,正确(de)是()A.非单一功能模块(de)扇入数大比较好,说明本模块重用率高B.一个模块(de)扇出太多,说明该模块过分复杂,缺少中间层C.单一功能(de)模块扇入高时应重新分解,以消除控制耦合(de)情况D.一个模块(de)扇入太多,说明该模块过分复杂,缺少中间层答案:B24.软件危机产生(de)主要原因是()A.开发人员编写程序能力差B.软件日益庞大C.不能与用户良好地沟通D.没有适应(de)开发模型答案:B25.下述四个能力成熟度等级,级别最高(de)是()A.已定义级B.已管理级C.可重复级D.优化级答案:D26.以下说法正确(de)是()A.功能模型不包括对象模型中值(de)约束条件B.功能模型说明对象模型中动作(de)含义C.功能模型说明对象模型中操作(de)含义D.功能模型说明对象模型中约束(de)含义答案:C27.关于软件维护(de)说法错误(de)是()A.软件维护不只是修改软件中(de)错误B.软件维护对于开发商来说是无利可图(de)C.在编码过程中添加适当(de)注释,可以降低软件维护(de)难度D.软件维护是软件生命周期中占用时间最长(de)一个阶段答案:B28.可行性分析中,系统流程图用于描述()A.新系统B.当前逻辑模型C.目标系统D.当前运行系统答案:D29.结构化分析建立功能模型(de)工具是()A.DFDB.判定树/判定表C.结构化语言D.SC答案:A30.快速原型模型(de)主要特点之一是()A.及早提供全部完整软件B.及早提供工作软件C.开发完毕才见到工作软件D.开发完毕才见到产品答案:B31.下述四个能力成熟度等级,级别最高(de)是()A.已定义级B.初始级C.已管理级D.可重复级答案:C32.检查软件产品是否符合需求定义(de)过程称为()A.单元测试B.系统测试C.确认测试D.集成测试答案:C33.软件工程学(de)一个重要目标是()A.定义各种软件开发过程模型B.降低程序对存储空间(de)要求C.提高程序(de)执行效率D.提高软件(de)可维护性答案:D34.软件质量因素不包括()A.正确性B.可测试性C.高性能D.可理解性答案:C35.以下哪个软件生存周期模型是一种风险驱动(de)模型()A.增量模型B.喷泉模型C.瀑布模型D.螺旋模型答案:D36.结构化分析方法使用(de)描述工具()定义了数据流图中每一个图形元素.A.判定树B.数据字典C.判定表D.数据流图答案:B37.关于软件维护(de)说法错误(de)是()A.软件维护是软件生命周期中占用时间最长(de)一个阶段B.软件维护对于开发商来说是无利可图(de)C.在编码过程中添加适当(de)注释,可以降低软件维护(de)难度D.软件维护不只是修改软件中(de)错误答案:B38.在整个软件维护阶段所花费(de)全部工作中,所占比例最大(de)是()A.校正性维护B.完善性维护C.适应性维护D.预防性维护答案:B39.以下不属于序言性注释(de)有()A.程序(de)整体说明B.语句功能C.模块设计者D.修改日期答案:B40.集成测试是为了发现()A.性能、质量不合要求B.编码错误C.功能错误D.接口错误答案:D41.应用执行对象(de)操作可以改变该对象(de)()A.数据B.行为C.功能D.属性答案:D42.需求分析最终结果是产生()A.设计说明书B.项目开发计划C.需求规格说明书D.可行性分析报告答案:C43.一个只有顺序结构(de)程序,其环形复杂度是()A.1B.3C.5D.0答案:A44.通信内聚是指()A.各处理使用相同(de)输入数据或者产生相同(de)输出数据B.把需要同时执行(de)动作组合在一起形成(de)模块C.模块内所有元素共同完成一个功能,缺一不可D.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行答案:A45.常用动词或动词词组来表示()A.属性B.类C.对象D.关联答案:D二、填空题1.结构化设计是一种面向(________________)(de)设计方法.答案:数据流2.软件质量因素不包括(________________).答案:高性能3.选择(________________)命令,可以看到Rose中对应图形(de)分类.答案:Browse4.快速原型模型(de)主要特点之一是(________________)答案:及早提供工作软件5.应用执行对象(de)操作可以改变对象(de)(________________).答案:属性6.UML中(de)(________________)关系就是通常所说(de)继承关系.7.目前在集成测试时普遍采用(________________)测试方法答案:渐增式8.在前期需求明确、资料完整(de)情况下尽量采用(________________)模型.答案:瀑布模型9.UML中用一端为空心三角形(de)连接表示(________________)关系.答案:泛化10.通常使用(________________)模型简洁地描述软件过程.答案:生命周期11.从软件工程观点看,(________________)是软件最重要(de)质量标准之一.答案:可理解性12.软件工程(de)三要素包括方法、(________________)和过程.答案:工具13.一个模块直接使用另一个模块(de)内部数据是(________________)耦合.答案:内容14.逆向工程是(________________)过程答案:代码到模型15.目前在集成测试时普遍采用(________________)测试方法答案:渐增式16.需求分析最终结果是产生(________________).答案:需求规格说明书17.HIPO图是由一组IPO图和一张(________________)图组成.18.部署图用(________________)关系表示各节点之间(de)通信路径.答案:关联19.检查软件产品是否符合需求定义(de)过程称为(________________)测认.答案:确认20.度量软件规模(de)常用技术主要有(________________)和功能点技术.答案:代码行技术21.软件工程(de)三要素包括方法、(________________)和过程.答案:工具22.度量软件规模(de)常用技术主要有代码行技术和(________________).答案:功能点技术23.面向对象方法用(________________)分解取代了传统方法(de)功能分解.答案:对象24.技术是能从根本上提高软件可维护性(de)重要技术(________________).答案:软件重用25.复杂问题(de)对象模型通常由主题层、类与对象层、(________________)、属性层和服务层5个层次组成.答案:对象模型26.黑盒测试着着重测试(________________).答案:软件功能27.数据存储和数据流都是处于不同状态(de)(________________)答案:数据28.类是类图(de)主要(de)主要部件,由类名、(________________)、操作3部分组成.答案:属性29.面向对象方法用(________________)分解取代了传统方法(de)功能分解.答案:对象30.软件总体设计时应该遵循模块化、抽象、逐步求精、(________________)、局部化和模块独立等6条基本原理.答案:信息隐藏31.面向对象方法用(________________)分解取代了传统方法(de)功能分解.答案:对象32.Rose模型文件(de)扩展名为(________________).答案:mdl33.软件部分(de)内部实现与外部可访问性分离,这是指软件(de)(________________).答案:封装性34.复杂问题(de)对象模型通常由(________________)、类与对象层、结构层、属性层和服务层5个层次组成.答案:主题层35.选择(________________)命令,可以看到Rose中对应图形(de)分类答案:Browse36.度量软件规模(de)常用技术主要有代码行技术和(________________).答案:功能点技术37.通常把编码和测试统称为(________________).答案:实现38.好(de)软件结构应该(________________)答案:低耦合、高内聚39.详细设计(de)任务是确定每个模块(de)(________________).答案:算法和使用(de)数据40.面向对象方法用(________________)分解取代了传统方法(de)功能分解.答案:对象41.(________________)是软件生命周期(de)最后一个阶段,也是持续时间最长、代价最大(de)一个阶段.答案:维护42.数据字典是对数据定义信息(de)集合,它所定义(de)对象都包含于(________________)图中.答案:数据流图43.UML中(de)泛化关系就是通常所说(de)(________________)关系.答案:继承44.软件工程学(de)一个重要目标是(________________).答案:提高软件(de)可维护性45.用例图中,如果在完成某个功能时,偶而会执行另一个功能,则用(________________)关系来表示.答案:扩展三、判断题1.( )测试计划、测试用例、出错统计和有关(de)分析报告一般不用长期保存.答案:N2.( )CMM 是指导软件开发(de)一种面向对象(de)新技术.答案:N3.( )基本路径测试是基本路径测试是黑盒技术设计测试用例(de)方法之一.测试用例(de)方法之一.答案:N4.( )SA方法(de)基本思想是自顶向下逐步分解.答案:Y5.( )类是对具有共同特征(de)对象(de)进一步抽象.答案:Y6.( )一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物.答案:Y7.( )完成测试后,为缩短源程序长度而删去程序中(de)注解,对软件(de)维护不会产生影响.答案:N8.( )类是对具有共同特征(de)对象(de)进一步抽象.答案:Y9.( )软件项目管理始于项目计划,而第一项计划活动就是估算.答案:Y10.( )尽可能在软件开发过程中保证各阶段文档(de)正确性.答案:Y11.( )随着软件技术(de)发展,人们逐渐认识到阅读程序(de)重要性,编码不仅要强调效率还要强调清晰.答案:Y12.( )重用是提高软件生产率和目标系统质量(de)重要途径,它基本上始于设计.答案:Y13.( )软件也会磨损和老化.答案:N14.( )如果测试过程没有发现任何错误,则说明软件没有错误.答案:N15.( )设计阶段(de)输出是编码阶段(de)输入.答案:Y16.( )类图用来表示系统中类和类与类之间(de)关系,它是对系统动态结构(de)描述.答案:N17.( )在可行性研究中最难决断和最关键(de)问题是经济可行性.答案:N18.( )基于情景(de)测试是面向对象系统确认测试(de)主要方法.答案:N19.( )耦合是指一个模块内各个元素彼此结合(de)紧密程度.答案:N20.( )白盒法是一种静态测试方法,主要用于模块测试.答案:N21.( )软件结构图中,模块框之间若有直线连接,表示它们之间存在顺序执行关系.答案:N22.( )在进行需求分析时同时考虑维护问题.答案:Y23.( )Jackson方法是面向数据结构(de)设计方法.答案:Y24.( )软件工程过程应该以软件设计为中心,关键是编写程序.答案:N25.( )项目应用领域是选择语言(de)关键因素.答案:Y26.( )模块耦合越强,则说明模块(de)独立性越强.答案:N27.( )在面向对象(de)需求分析方法中,建立动态模型是最主要(de)任务.答案:N28.( )软件结构图中,模块框之间若有直线连接,表示它们之间存在顺序执行关系.答案:N29.( )如果把软件开发所需(de)资源画成一个金字塔,人是最基本(de)资源.答案:Y30.( )软件即程序.答案:N四、简答题1.提高软件可重要性(de)主要准则有哪些答案:(1)提高方法(de)内聚(2)减小方法(de)规模(3)保持方法(de)一致性(4)把策略与实现分开(5)全面覆盖(6)尽量不使用全局信息(7)利用继承机制2.面向对象(de)集成测试主要有哪几种不同(de)测试策略答案:传统(de)集成测试策略没有意义.面向对象软件(de)集成测试主要有下述两种不同(de)测试策略:基于线程(de)测试基于(de)测试使用3.模块独立性与信息隐蔽有何关系答案:“模块独立性”是指软件系统中每个模块只涉及软件要求(de)具体(de)子功能,而和软件系统中其它(de)模块(de)接口是简单(de).所谓(de)“信息隐蔽”是指每个模块(de)实现细节对于其它模块来说是隐蔽(de).也就是说,模块中所包含(de)信息(包括数据和过程)不允许其它不需要这些信息(de)模块使用.衡量模块独立性(de)一个准则就是模块内聚,达到信息隐蔽(de)模块是信息内聚模块,它是高内聚(de)情形,因此模块独立性当然就很强了4.为什么说现代牌汽车是小汽车类(de)特化,而车轮不是小汽车(de)特化答案:现代牌汽车是具有小汽车(de)全部属性和行为,它只不过是一种特定品牌(de)小汽车,因此现代牌汽车可以从基类派生出来,也就是说,现代牌汽车是小汽车类(de)特化.车轮是组成小汽车(de)一种零件.小汽车还有车身,发动机等许多种其他(de)零件,小汽车所具有(de)许多属性和行为车轮都不具有,因此车轮不能从小汽车类派生出来,它不是小汽车类(de)特化5.软件生存周期都包括哪些活动答案:软件生命期(de)活动包括:可行性研究与计划;需求分析;概要设计、详细设计;编码、测试;维护等活动.(这些活动将以适当(de)方式分配到不同阶段去完成)6.目前常用(de)面向过程(de)方法,面向对象(de)方法,面向结构(de)方法,形式化方法等软件开发方法各有什么特点答案:(1)面向过程(de)程序=算法+数据结构;(2)面向对象(de)程序=对象+类+继承+消息通信;(3)面向构件(de)程序=构件+架构;(4)形式化方法是建立在严格(de)数学基础上,以逻辑推理为出发点;(5)它们有各自(de)方法、工具和过程;7.面向对象方法(de)启发规则有哪些答案:(1)设计结构应该清晰易懂(2)一般-特殊结构(de)深度应适当(3)设计结构(de)类(4)使用简单(de)协议(5)使用简单(de)服务(6)把设计变动减至最小8.在面向对象(de)系统开发过程中,每个阶段需要建造(de)模型各有什么作用答案:1)在面向对象(de)系统开发过程中,每个阶段要建造不同(de)模型.(2)需求分析阶段建造(de)模型用来捕获系统需求分析(3)设计阶段(de)模型是分析模型(de)扩充,为实现阶段作指导性和技术性(de)解决方案(4)实现阶段(de)模型是真正(de)源代码及编译后(de)组件.(5)发布阶段是描述系统物理上(de)架构.9.快速原型技术(de)基本思想是什么答案:在软件开发(de)早期,快速开发一个目标软件系统(de)原型;让用户对其进行评价并提出修改意见;然后开发人员根据用户(de)意见对原型进行改进.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程期末试卷(A)说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟一、选择题:(每题1分,共20分)(将答案写在题号前的()中)( C )1. 软件是()。
A. 处理对象和处理规则的描述B. 程序C. 程序及其文档D. 计算机系统( B )2. 软件需求规格说明的内容不应包括()。
A. 主要功能B. 算法的详细描述C. 用户界面及运行环境D. 软件的性能( B )3. 程序的三种基本控制结构是()。
A. 过程、子程序和分程序B. 顺序、选择和重复C. 递归、迭代和回溯D. 调用、返回和转移( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。
A) 系统模型、ER模型、应用模型B) 对象模型、动态模型、应用模型C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型( C ) 5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、操作( A ) 6. 各种软件维护的类型中最重要的是( )。
A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护( B ) 7.软件测试的目标是()。
A. 证明软件是正确的B. 发现错误、降低错误带来的风险C. 排除软件中所有的错误D. 与软件调试相同( D )8.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试 D.软件维护( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法( D )10、详细设计的基本任务是确定每个模块的( )设计A.功能 B.调用关系 C.输入输出数据 D.算法( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:()A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则()A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖( A )13.面向数据流的设计方法把()映射成软件结构。
A.数据流B.系统结构C.控制结构D.信息流( A )14.内聚程度最低的是( )内聚A.偶然B.过程C.顺序D.时间( A )15.确定测试计划是在( )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试(D )16.需求分析的产品是()A.数据流程图案B.数据字典C.判定表D.需求规格说明书(C )17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()A.数据库设计B.数据通信C.数据定义D.数据维护( D )18.( )引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型B.喷泉模型C.原型模型D.螺旋模型( D )19.模块的内聚性最高的是()A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚( D )20.提高测试的有效性非常重要,成功的测试是指( )A.证明了被测试程序正确无误B. 说明了被测试程序符合相应的要求C.未发现被测程序的错误D.发现了至今为止尚未发现的错误二.判断题(每题1分,共10分)将答案写在题号前的()中,正确用√,错误用χ。
(×)1、开发软件就是编写程序。
(×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。
(×)3、编程序时应尽可能利用硬件特点以提高程序效率.(×)4、软件需求分析的任务是建立软件模块结构图。
(√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。
(×)7、进行总体设计时加强模块间的联系。
(×)8、编码时尽量多用全局变量.(√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。
三、填空题(每题1分,共5分):将结果填在()1、将下面的关系按继承关系、聚集关系或普通关联进行分类。
小汽车---------红旗轿车(继承)小汽车---------驾驶员(普通关联)班级------------学生(聚集)2、将下列各项分为类或类的实例我的汽车(实例)交通工具(类)三、简答题:(每题5分,共25分)1. 软件生命期各阶段的任务是什么?答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。
2、软件重用的效益是什么?答:1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
缺点:需要存根程序,底层错误发现较晚。
②自底而上渐增测试优点与缺点和自顶而下渐增测试相反。
4 、提高可维护性的方法有哪些?答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。
在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。
在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。
在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。
在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。
在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。
为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。
简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。
【解答】测试过程按4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。
单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
与其相关的文档是集成测试计划和软件需求说明书。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
与其相关的文档是确认测试计划和软件需求说明书。
平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。
与其相关的文档:用户指南、使用手册等。
四、应用题(每题8分,共40分)1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。
零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
要求:画出系统的数据流图。
答:2、将下面给出的伪码转换为N-S图和PAD图。
void root ( float root1, float root2 ) {i = 1;j = 0;while ( i <= 10 ) {输入一元二次方程的系数a, b, c;p = b*b – 4*a*c;if ( p < 0 ) 输出“方程i无实数根”;else if ( p > 0 ) 求出根并输出;if ( p == 0 ) {求出重根并输出;j = j + 1;}i = i +1;}输出重根的方程的个数j;}【解答】(1)N-S 图(2)PAD 图3、:输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出”不能构成三角形”. 要求:1.用程序流程图表示该问题的算法;2.计算程序复杂度; 3.设计路径覆盖的测试用例。
答:i = 1; j = 0; while ( i <= 10 ) 输入a, b, c; 计算 p = b 2 - 4ac ;p < 0 ? 输出“方程i ”无实根求出根并输出↓ p > 0 ? p == 0 ? 求出重根并输出; j = j + 1; ↓ i = i + 1;输出重根的方程个数i T T T F F Fi = 1; j = 0; 输出重根的方程个数iwhile ( i <= 10 ) 输入a,b,c; 计算 p = b 2–4ac; 求出根并输出p > 0 ? p < 0 ? 输出方程i 无实根 p = 0 ? 求出重根并输出; j = j+1;i = i + 1;路径:1.①—②—③—④—⑥—⑦2.①—②—⑤—⑥—⑦3.①—⑤—⑥—⑦ 4.①—②—③—⑤—⑥—⑦程序复杂度=3+1=4测试用例① ②③ ④⑤⑥ ⑦ⅠⅡ ⅢⅣ4、某航空公司规定,乘客可以免费托运重量不超过30kg的行李。
当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示与上述每种条件组合相对应的计算行李费的算法.答案:5、一个软件公司有许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品,每个部门由部门名字唯一确定。
该公司有许多员工,员工分为经理,工作人员和开发人员。
开发部门有经理和开发人员,管理部门有经理和工作人员。
每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,每位经理可主持多个开发项目,建立该公司的对象模型。
答案:软件公司部门名部门开发部门管理部门软件产品开发人员经理开发项目工作人员员工是是有有有有开发参加1+1+1+1+1+1+1+▼▼▼▼▼有。