软件工程复习题1_第1页
软件工程复习题1_第2页
软件工程复习题1_第3页
软件工程复习题1_第4页
软件工程复习题1_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程复习题[1]一、选择题

1.软件危机的主要表现是()A.软件需求增长难以满足B.软件开发成本提高C.软件质量难以保证D.以上都是

答案:D

解析:软件危机主要表现在软件需求增长难以满足,软件开发成本提高,软件质量难以保证,软件维护困难等方面。

2.软件工程的三要素是()A.方法、工具和过程B.方法、工具和平台C.方法、过程和平台D.工具、过程和平台

答案:A

解析:软件工程的三要素包括方法、工具和过程。方法是完成软件开发的各项任务的技术方法;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量软件所需要完成的一系列任务的框架。

3.瀑布模型的主要特点是()A.阶段间具有顺序性和依赖性B.推迟实现C.严格的阶段评审D.以上都是

答案:D

解析:瀑布模型的特点包括阶段间具有顺序性和依赖性,前一个阶段完成后才开始后一个阶段;推迟实现,即严格按照线性顺序进行软件开发;严格的阶段评审,以确保每个阶段的成果符合要求。

4.快速原型模型的主要特点是()A.快速建立软件原型B.及早向用户展示软件原型C.迭代修改软件原型D.以上都是

答案:D

解析:快速原型模型快速建立软件原型,及早向用户展示,让用户对软件有直观认识,然后根据用户反馈迭代修改软件原型。

5.软件需求规格说明书的作用不包括()A.软件设计的依据B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性研究的依据

答案:D

解析:软件需求规格说明书是软件设计的依据,是用户与开发人员对软件要做什么的共同理解,也是软件验收的依据。软件可行性研究在需求规格说明书之前进行。

6.以下不属于结构化分析方法的是()A.数据流图B.数据字典C.判定表D.程序流程图

答案:D

解析:结构化分析方法包括数据流图、数据字典、判定表等,程序流程图不属于结构化分析方法。

7.软件总体设计阶段的主要任务是()A.确定软件的总体结构B.进行详细的算法设计C.确定每个模块的具体实现细节D.进行软件测试计划的制定

答案:A

解析:软件总体设计阶段主要任务是确定软件的总体结构,包括模块划分、模块之间的接口等。详细算法设计和确定模块具体实现细节是详细设计阶段的任务,软件测试计划制定是测试阶段的任务。

8.模块独立性的两个定性标准是()A.耦合性和内聚性B.数据独立性和程序独立性C.功能独立性和数据独立性D.模块大小和模块复杂度

答案:A

解析:耦合性和内聚性是衡量模块独立性的两个定性标准。耦合性反映模块之间的依赖程度,内聚性反映模块内部的紧密程度。

9.以下哪种耦合度最高()A.数据耦合B.控制耦合C.公共耦合D.内容耦合

答案:D

解析:内容耦合是最高程度的耦合,一个模块直接访问另一个模块的内部数据或代码,会严重影响模块独立性和软件的可维护性。

10.以下哪种内聚性最强()A.偶然内聚B.逻辑内聚C.功能内聚D.过程内聚

答案:C

解析:功能内聚性最强,模块内所有元素共同完成一个功能,联系紧密且集中。

11.详细设计阶段的主要任务是()A.确定每个模块的算法和数据结构B.进行数据库设计C.确定软件的总体结构D.编写软件测试用例

答案:A

解析:详细设计阶段主要确定每个模块的算法和数据结构,为编码提供具体的指导。

12.程序流程图中的菱形框表示()A.输入输出B.处理C.判断D.开始或结束

答案:C

解析:程序流程图中菱形框表示判断。

13.软件测试的目的是()A.发现软件中的错误B.证明软件是正确的C.评估软件的质量D.改进软件的性能

答案:A

解析:软件测试的目的是发现软件中的错误,而不是证明软件正确。通过测试发现错误后进行修复,从而提高软件质量。

14.黑盒测试方法不包括()A.等价类划分B.边界值分析C.基本路径测试D.决策表测试

答案:C

解析:基本路径测试属于白盒测试方法,等价类划分、边界值分析、决策表测试属于黑盒测试方法。

15.以下属于白盒测试方法的是()A.语句覆盖B.等价类划分C.边界值分析D.因果图

答案:A

解析:语句覆盖是白盒测试方法,通过设计测试用例使程序中的每条可执行语句至少执行一次。

二、填空题

1.软件是计算机系统中与硬件相互依存的另一部分,它是包括()、()及()的完整集合。

答案:程序、数据、相关文档

解析:软件包含程序,用于实现特定功能;数据是程序操作的对象;相关文档则对软件进行说明、使用和维护等提供支持。

2.软件工程是指导计算机软件开发和()的一门工程学科。

答案:维护

解析:软件工程不仅关注软件开发过程,还包括软件的维护,确保软件在其生命周期内持续稳定运行。

3.瀑布模型将软件生命周期划分为()、()、()、()、()、()六个阶段。

答案:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试

解析:瀑布模型严格按照线性顺序依次进行这些阶段,每个阶段都有明确的输入和输出,前一个阶段完成后进入下一个阶段。

4.需求分析阶段的基本任务是准确地定义新系统的目标,回答()的问题。

答案:系统必须做什么

解析:需求分析就是要明确软件系统需要具备哪些功能,以满足用户的需求,即回答系统必须做什么的问题。

5.数据流图的基本符号包括()、()、()和()。

答案:数据流、加工、数据存储、数据源点或终点

解析:数据流表示数据的流动方向;加工对数据进行处理;数据存储用于保存数据;数据源点或终点是数据的来源或去向。

6.数据字典是对数据流图中出现的每个()、()和()作出的详细定义。

答案:数据流、数据存储、加工

解析:数据字典为数据流图中的这些元素提供详细的信息,包括其含义、组成等,帮助理解和准确描述系统。

7.软件总体设计阶段的主要任务是确定软件的(),进行模块划分,确定每个模块的功能、接口及()。

答案:总体结构、模块之间的调用关系

解析:通过总体设计确定软件的整体架构,划分模块并明确模块间的调用关系,为后续详细设计和编码奠定基础。

8.模块的内聚性按强度从低到高可分为()、()、()、()、()、()、()。

答案:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚

解析:这是按照模块内部元素的关联紧密程度进行的分类,功能内聚最为理想,模块独立性最强。

9.耦合性按强度从低到高可分为()、()、()、()、()、()。

答案:无直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合

解析:耦合性越低,模块独立性越强,软件的可维护性和可扩展性越好。

10.详细设计阶段的工具主要有()、()、()等。

答案:程序流程图、NS图、PAD图

解析:这些工具用于详细描述模块的算法和数据结构,帮助程序员更好地进行编码。

11.软件测试过程一般可划分为()、()、()和()四个阶段。

答案:单元测试、集成测试、确认测试、系统测试

解析:单元测试针对单个模块进行测试;集成测试测试模块之间的接口和集成情况;确认测试验证软件是否满足需求规格说明书;系统测试在整个系统环境下进行测试。

12.黑盒测试方法包括()、()、()、()等。

答案:等价类划分、边界值分析、决策表测试、因果图测试

解析:这些方法基于软件的功能需求进行测试用例设计,不考虑软件内部结构。

13.白盒测试方法包括()、()、()等。

答案:语句覆盖、判定覆盖、条件覆盖

解析:白盒测试依据软件内部结构进行测试,通过设计测试用例覆盖程序中的语句、判定条件等。

14.软件维护的类型有()、()、()和()。

答案:改正性维护、适应性维护、完善性维护、预防性维护

解析:改正性维护修复软件中的错误;适应性维护使软件适应环境变化;完善性维护增加软件功能或改进性能;预防性维护为防止软件问题出现而进行的维护。

15.软件项目管理的主要内容包括()、()、()、()、()等。

答案:项目计划、项目组织、人员管理、质量管理、风险管理

解析:通过有效的项目管理,确保软件项目按时、按质量要求完成,控制成本和风险。

三、简答题

1.简述软件危机产生的原因。

答案:用户需求不明确:在软件开发过程中,用户对软件的功能和性能要求可能不清晰,导致开发人员与用户之间的沟通不畅,从而影响软件的开发。软件规模越来越大:随着软件应用范围的扩大,软件规模不断增大,使得软件开发过程变得更加复杂,难以管理和控制。软件复杂度高:现代软件往往涉及到多个领域的知识,功能复杂,算法和数据结构也较为复杂,增加了软件开发的难度。缺乏有效的软件开发方法和工具:传统的软件开发方法和工具在面对大规模、复杂的软件项目时显得力不从心,无法保证软件的质量和开发效率。软件开发人员与用户之间的交流存在障碍:双方在专业背景、知识结构等方面存在差异,导致交流困难,容易产生误解,影响软件的需求理解和实现。软件维护困难:软件交付后,由于各种原因需要进行维护,但维护工作往往缺乏有效的计划和方法,导致维护成本高、难度大。

2.简述软件工程的基本原则。

答案:选取适宜的开发模型:根据项目的特点和需求,选择合适的软件开发模型,如瀑布模型、快速原型模型等,以确保项目顺利进行。采用合适的设计方法:运用结构化设计、面向对象设计等方法,提高软件的可维护性和可扩展性。提供高质量的工程支持:包括使用先进的软件开发工具、建立良好的开发环境等,提高开发效率和软件质量。重视开发过程的管理:对软件开发的各个阶段进行有效的管理,包括计划、组织、协调和控制等,确保项目按时、按质量要求完成。明确软件质量目标:在软件开发过程中,明确软件的质量标准和目标,并采取相应的措施来保证软件质量。强调软件复用:通过复用已有的软件构件或模块,减少软件开发的工作量,提高软件的开发效率和质量。关注用户需求:始终以用户需求为导向,确保软件能够满足用户的实际需求,提高用户满意度。

3.简述需求分析的任务。

答案:确定软件系统的综合要求:包括功能需求、性能需求、可靠性需求、安全性需求、界面需求等,明确软件系统需要做什么。分析软件系统的数据要求:确定系统所处理的数据及其之间的关系,包括数据的类型、格式、数量等,为数据库设计提供依据。导出系统的逻辑模型:通过对用户需求的分析和抽象,建立软件系统的逻辑模型,如数据流图、数据字典等,描述系统的功能和数据流程。修正系统开发计划:根据需求分析的结果,对软件开发计划进行修正,调整项目的进度、资源分配等,确保项目能够顺利进行。编写软件需求规格说明书:将需求分析的结果以文档的形式记录下来,形成软件需求规格说明书,作为软件开发的依据和验收标准。

4.简述总体设计的任务和步骤。

答案:任务:确定软件的总体结构:包括模块划分、模块之间的层次结构和调用关系等,将软件系统划分为若干个功能模块,每个模块完成特定的功能。进行模块的功能设计:确定每个模块的功能,明确模块的输入、输出和处理逻辑,为详细设计提供基础。确定模块之间的接口:定义模块之间的通信方式和数据传递格式,确保模块之间能够正确地交互。评估软件结构的质量:对软件结构的合理性、模块独立性等进行评估,优化软件结构,提高软件的可维护性和可扩展性。步骤:设想可能的软件结构:根据软件的功能需求和性能要求,设想出多种可能的软件结构方案。选取合理的软件结构:从设想的方案中选取一种较为合理的软件结构,考虑因素包括模块独立性、可维护性、可扩展性等。进行模块划分:将软件系统按照功能划分为若干个模块,每个模块具有相对独立的功能。确定模块之间的调用关系:明确模块之间的调用顺序和方式,形成软件的层次结构。定义模块的接口:确定模块之间传递的数据和控制信息,设计接口的规格说明。对软件结构进行优化:检查软件结构是否满足设计要求,对不合理的地方进行调整和优化。

5.简述详细设计的任务和工具。

答案:任务:为每个模块确定实现算法和数据结构:根据总体设计的要求,为每个模块设计具体的实现算法和数据结构,确保模块功能的实现。确定模块内部的局部数据结构:定义模块内部使用的局部变量、数组、记录等数据结构,以及它们的作用域和生存期。设计模块的接口细节:包括模块的输入参数、输出参数、返回值等,确保模块之间能够正确地交互。编写详细设计说明书:将详细设计的结果以文档的形式记录下来,形成详细设计说明书,作为编码的依据。进行必要的算法和数据结构的优化:对设计的算法和数据结构进行分析和优化,提高模块的性能和效率。工具:程序流程图:用图形符号表示程序的执行流程,直观地展示程序的逻辑结构。NS图:一种结构化的程序流程图,避免了程序流程图中容易出现的随意转移控制的问题。PAD图:一种用二维树形结构表示程序逻辑的图形工具,具有清晰的层次结构和良好的可读性。判定表:用于描述复杂条件下的逻辑判断和执行动作,适用于具有多个条件和多个动作的情况。判定树:以树型结构表示条件判断和执行动作,形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论