版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程习题附答案2一、选择题1.以下哪个阶段不属于软件生命周期的基本阶段()A.可行性研究B.编码C.市场推广D.维护答案:C解析:软件生命周期的基本阶段包括可行性研究、需求分析、设计、编码、测试和维护等。市场推广不属于软件生命周期的基本阶段,它是软件产品推向市场的商业活动。2.结构化分析方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。A.DFD图B.PAD图C.IPO图D.数据字典答案:D解析:结构化分析方法的主要描述工具有数据流图(DFD)、数据字典和加工说明等。DFD图即数据流图;PAD图是一种程序详细设计的图形工具;IPO图主要用于描述模块的输入、处理和输出。数据字典是对数据流图中各个元素的详细定义和解释。3.软件详细设计的主要任务是确定每个模块的()A.算法和使用的数据结构B.外部接口C.功能D.编程风格答案:A解析:软件详细设计的主要任务是为每个模块确定算法和使用的数据结构,详细描述模块内部的实现细节。外部接口在概要设计阶段就已经确定;功能在需求分析阶段就明确了;编程风格是编程过程中需要遵循的规范,不是详细设计的主要任务。4.软件测试的目的是()A.证明软件的正确性B.发现软件中的错误C.改善软件的性能D.挖掘软件的潜在功能答案:B解析:软件测试的目的是发现软件中的错误。由于软件的复杂性,很难证明软件的绝对正确性;改善软件性能主要是在软件优化阶段进行;挖掘软件潜在功能不是测试的主要目的。5.以下哪种耦合度最高()A.数据耦合B.控制耦合C.公共耦合D.内容耦合答案:D解析:耦合度是衡量模块之间相互依赖程度的指标。内容耦合是指一个模块直接访问另一个模块的内部数据或控制信息,这种耦合度最高,会使软件的可维护性和可扩展性变差。数据耦合是通过参数传递数据,耦合度最低;控制耦合是传递控制信息;公共耦合是多个模块访问同一个公共数据区。6.软件项目的可行性研究主要从三个方面进行分析,不包括以下哪一项()A.技术可行性B.经济可行性C.操作可行性D.法律可行性答案:D解析:软件项目的可行性研究主要从技术可行性、经济可行性和操作可行性三个方面进行分析。技术可行性评估是否有足够的技术能力来实现项目;经济可行性分析项目的成本和收益;操作可行性考虑系统的操作是否方便、用户是否能够接受。法律可行性通常包含在更广泛的合规性考虑中,不是可行性研究的主要三个方面。7.在面向对象方法中,()是对象的抽象,对象是()的实例。A.类,类B.接口,接口C.消息,消息D.方法,方法答案:A解析:在面向对象方法中,类是对象的抽象,它定义了对象的属性和方法。对象是类的实例,通过类可以创建多个具有相同属性和行为的对象。接口是一种特殊的抽象类型,定义了一组方法的签名;消息是对象之间通信的方式;方法是对象的行为实现。8.以下不属于软件维护类型的是()A.改正性维护B.适应性维护C.完善性维护D.预防性维护E.创新性维护答案:E解析:软件维护主要包括改正性维护(修复软件中的错误)、适应性维护(使软件适应新的环境)、完善性维护(增加新的功能或改进现有功能)和预防性维护(为了提高软件的可维护性和可靠性而进行的维护)。创新性维护不是常见的软件维护类型。9.以下哪种软件过程模型适用于需求不明确、需要快速构建可运行系统的项目()A.瀑布模型B.快速原型模型C.增量模型D.螺旋模型答案:B解析:快速原型模型适用于需求不明确的项目,它通过快速构建一个可运行的原型系统,让用户尽早参与到项目中,从而明确需求。瀑布模型要求需求明确,按照线性顺序依次进行各个阶段;增量模型是将软件项目分成多个增量,逐步开发和交付;螺旋模型结合了风险分析,适用于大型、复杂的项目。10.软件配置管理的主要任务不包括()A.版本控制B.变更控制C.配置审计D.软件测试答案:D解析:软件配置管理的主要任务包括版本控制(管理软件的不同版本)、变更控制(控制软件的变更过程)和配置审计(检查软件配置项的完整性和一致性)。软件测试是为了发现软件中的错误,不属于软件配置管理的主要任务。二、填空题1.软件生存周期一般可划分为问题定义、(可行性研究)、需求分析、(总体设计)、详细设计、编码、测试、运行与维护等阶段。解析:软件生存周期是软件从提出开发要求开始直到软件报废为止的整个时期,这些阶段是按照软件开发的一般流程划分的,每个阶段都有其特定的任务和目标。2.数据流图的基本成分有(数据源或终点)、(数据流)、(加工)和(数据存储)。解析:数据源或终点表示数据的来源和去向;数据流表示数据的流动方向;加工是对数据进行的处理;数据存储是保存数据的地方。3.模块的内聚性有多种类型,其中内聚性最高的是(功能内聚),内聚性最低的是(偶然内聚)。解析:功能内聚是指模块内所有元素共同完成一个功能,联系紧密,内聚性最高;偶然内聚是指模块内的各个元素之间没有明显的联系,只是偶然地组合在一起,内聚性最低。4.软件测试的方法可分为(黑盒测试)和(白盒测试)两大类。解析:黑盒测试是基于功能的测试,不考虑软件的内部结构;白盒测试是基于代码结构的测试,需要了解软件的内部实现细节。5.面向对象的主要特征包括(封装)、(继承)和(多态)。解析:封装是将数据和操作数据的方法绑定在一起,对外提供统一的接口;继承是子类继承父类的属性和方法,提高代码的复用性;多态是指同一个方法可以根据对象的不同类型表现出不同的行为。三、简答题1.简述瀑布模型的特点和优缺点。答案:-特点:-阶段间具有顺序性和依赖性,前一个阶段完成后才进入下一个阶段。-推迟实现,在需求分析和设计阶段投入大量精力,确保软件的正确性和完整性。-质量保证强调每个阶段都要进行评审,只有评审通过才能进入下一阶段。-优点:-强调阶段的顺序性和严格性,便于项目的管理和控制。-为软件开发提供了一个系统化、规范化的流程,有助于提高软件质量。-适合需求明确、稳定的项目。-缺点:-缺乏灵活性,难以适应需求的变化。如果在后期发现前期阶段的错误,修改成本较高。-开发周期长,用户需要等待较长时间才能看到可运行的系统。-风险往往在项目后期才暴露出来,增加了项目失败的可能性。2.什么是软件的可维护性?提高软件可维护性有哪些措施?答案:-软件的可维护性:是指软件能够被理解、改正、适应及扩展的难易程度。它是衡量软件质量的重要指标之一,直接影响软件的生命周期成本和使用效率。-提高软件可维护性的措施:-采用良好的软件开发方法:如结构化方法、面向对象方法等,这些方法可以使软件结构清晰,模块之间的耦合度低,内聚性高,便于理解和修改。-进行文档化:编写详细的文档,包括需求文档、设计文档、用户手册等。文档是软件维护的重要依据,能够帮助维护人员快速了解软件的功能、结构和实现细节。-严格的测试:在软件开发过程中进行充分的测试,包括单元测试、集成测试、系统测试等,及时发现和修复软件中的错误,减少维护阶段的工作量。-代码优化:编写高质量的代码,遵循编程规范,提高代码的可读性和可维护性。例如,使用有意义的变量名和函数名,避免使用复杂的嵌套结构等。-进行配置管理:对软件的版本进行控制,记录软件的变更历史,便于追溯和管理软件的修改。3.简述黑盒测试和白盒测试的区别。答案:-测试依据不同:-黑盒测试是基于软件的功能规格说明书进行的测试,不考虑软件的内部实现结构。测试人员只关注软件的输入和输出,通过输入不同的数据来检查软件的输出是否符合预期。-白盒测试是基于软件的源代码进行的测试,需要了解软件的内部结构和算法。测试人员根据代码的逻辑结构设计测试用例,检查代码的执行路径和内部状态。-测试目的不同:-黑盒测试的主要目的是发现软件功能上的错误,验证软件是否满足用户的需求。-白盒测试的主要目的是检查代码的逻辑正确性,发现代码中的隐藏错误,如未执行的代码、逻辑错误等。-测试方法不同:-黑盒测试常用的方法有等价类划分、边界值分析、因果图、决策表等。这些方法通过对输入数据进行分类和分析,设计出具有代表性的测试用例。-白盒测试常用的方法有语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖等。这些方法根据代码的逻辑结构,设计测试用例来覆盖不同的代码路径。-适用场景不同:-黑盒测试适用于软件的功能测试、验收测试等,尤其是在需求明确的情况下,可以快速有效地发现软件功能方面的问题。-白盒测试适用于软件开发的早期阶段,如单元测试,帮助开发人员发现代码中的错误,提高代码的质量。四、应用题1.某图书管理系统需要实现以下功能:-读者可以进行图书的借阅和归还操作。-管理员可以添加、删除和修改图书信息。-系统可以查询图书的借阅状态和读者的借阅记录。请画出该图书管理系统的数据流图(DFD)。答案:-顶层数据流图:-数据源和终点:读者、管理员-加工:图书管理系统-数据流:读者的借阅和归还请求、管理员的图书信息管理请求、系统的查询结果反馈-一层数据流图:-数据源和终点:读者、管理员-加工:借阅归还处理、图书信息管理、查询处理-数据流:-读者->借阅归还处理:借阅请求、归还请求-借阅归还处理->读者:借阅结果、归还结果-管理员->图书信息管理:添加图书信息、删除图书信息、修改图书信息-图书信息管理->管理员:操作结果-读者/管理员->查询处理:图书借阅状态查询请求、读者借阅记录查询请求-查询处理->读者/管理员:查询结果-数据存储:-图书信息表:存储图书的基本信息,如书名、作者、ISBN等。-借阅记录表:记录读者的借阅和归还信息,包括借阅时间、归还时间等。在绘制数据流图时,要注意数据流的方向和名称,加工的功能要明确,数据存储要合理。2.以下是一段简单的Python代码,使用白盒测试方法中的语句覆盖和判定覆盖设计测试用例。```pythondefcheck_number(num):ifnum>0:ifnum%2==0:return"Positiveevennumber"else:return"Positiveoddnumber"elifnum<0:return"Negativenumber"else:return"Zero"```答案:-语句覆盖:语句覆盖要求每个语句至少执行一次。为了达到语句覆盖,我们需要设计测试用例覆盖代码中的所有语句。-测试用例1:输入`num=2`-执行路径:`num>0`为真,`num%2==0`为真,返回"Positiveevennumber"-测试用例2:输入`num=1`-执行路径:`num>0`为真,`num%2==0`为假,返回"Positiveoddnumber"-测试用例3:输入`num=-1`-执行路径:`num>0`为假,`num<0`为真,返回"Negativenumber"-测试用例4:输入`num=0`-执行路径:`num>0`为假,`num<0`为假,返回"Zero"-判定覆盖:判定覆盖要求每个判定的取真分支和取假分支至少执行一次。-测试用例1:输入`num=2`-执行路径:`num>0`为真,`num%2==0`为真,返回"Positiveevennumber"-测试用例2:输入`num=1`-执行路径:`num>0`为真,`num%2==0`为假,返回"Positiveo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桥梁测量放线技术方案
- 植物生长发育调控实验试题冲刺卷
- 报关单证填制与审核强化训练试题及答案
- 2025年数学空间想象能力问卷试题及真题
- 2026年基金从业私募行业合规性测试试题冲刺卷
- 幼儿教育师资培训课程体系设计考试及答案
- 2026年南充文化旅游职业学院单招职业技能测试题库及参考答案详解(新)
- 2026年信阳艺术职业学院单招综合素质考试题库及答案详解(易错题)
- 2026年厦门华厦学院单招综合素质考试题库及参考答案详解(新)
- 2026年六盘水幼儿师范高等专科学校单招职业适应性测试题库及答案详解(有一套)
- 断绝父女协议书模板
- 基于微信小程序的失物招领系统设计与实现
- (2025年)山东省临沂市事业单位面试真题及参考答案
- 2025年一级注册结构考试试题及答案(下午卷)
- 台球器材买卖合同范本
- 2025年浙江省纪委监委公开遴选公务员笔试试题及答案解析
- bz-高标准农田建设项目勘察设计技术投标方案210
- 高三物理一轮复习力学试卷及答案
- 幼儿园营养餐制作标准及流程
- 种子管理课件
- 通信光缆运维管理办法
评论
0/150
提交评论