软件工程实践题50题和答案解析_第1页
软件工程实践题50题和答案解析_第2页
软件工程实践题50题和答案解析_第3页
软件工程实践题50题和答案解析_第4页
软件工程实践题50题和答案解析_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

软件工程实践题50题和答案解析一、单项选择题1.软件工程的出现是由于()A.程序设计方法学的影响B.软件危机的出现C.计算机的发展D.软件社会化的需要

答案:B解析:软件工程概念的出现源自软件危机。软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括软件成本高、开发进度难以控制、软件质量低等。为了解决软件危机,人们提出了软件工程的概念,采用工程化的方法来开发和维护软件。

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

答案:A解析:软件工程的三要素包括方法、工具和过程。方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成等的软件;过程是为了获得高质量软件所需要完成的一系列任务的框架。

3.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护

答案:D解析:软件维护是软件生命周期中持续时间最长、花费最多的阶段。这是因为在软件交付使用后,需要不断地对软件进行修改、完善、扩充功能等操作,以适应不断变化的用户需求和运行环境。

4.软件可行性研究一般不考虑()A.是否有足够的人员和相关的技术来支持系统开发B.是否有足够的工具和相关的技术来支持系统开发C.待开发软件是否有市场、经济上是否合算D.待开发的软件是否会有质量问题

答案:D解析:软件可行性研究主要从技术可行性、经济可行性和操作可行性等方面进行分析。选项A和B属于技术可行性范畴,考虑是否有足够的人员、技术、工具来支持系统开发;选项C属于经济可行性,分析软件是否有市场以及经济上是否合算。而软件质量问题是在软件开发过程中通过各种质量保证措施来解决的,不是可行性研究阶段重点考虑的内容。

5.需求分析阶段的任务是确定()A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统的功能

答案:D解析:需求分析的主要任务是准确地定义新系统的目标,确定系统必须完成哪些工作,也就是明确系统的功能。软件开发方法、工具和费用在需求分析阶段并不确定,它们会在后续的阶段根据需求等因素来确定。

6.结构化分析方法是一种面向()的需求分析方法。A.数据结构B.数据流C.程序结构D.控制流

答案:B解析:结构化分析方法是一种面向数据流进行需求分析的方法。它从数据传递和加工的角度,以数据流图为主要工具,对系统的功能进行分解、描述,从而建立系统的逻辑模型。

7.数据流图(DFD)是()A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具

答案:C解析:数据流图是结构化方法中用于需求分析的工具。它以图形的方式描绘数据在系统中流动和处理的过程,帮助分析人员理解系统的功能和数据流程,从而准确地定义系统的需求。

8.数据字典是对数据定义信息的集合,它所定义的对象都包含于()A.数据流图B.程序框图C.软件结构D.方框图

答案:A解析:数据字典是对数据流图中包含的所有元素的定义的集合。它对数据流图中的数据项、数据结构、数据流、数据存储和处理过程等进行详细的定义和说明,以便更好地理解和分析系统的数据需求。

9.软件设计中划分模块的一个准则是()A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

答案:B解析:高内聚低耦合是软件设计中划分模块的重要准则。高内聚意味着模块内部的各个元素之间联系紧密,功能单一;低耦合表示模块之间的相互依赖程度低,这样有利于软件的维护、扩展和复用。

10.下列选项中,不属于模块间耦合的是()A.数据耦合B.同构耦合C.异构耦合D.公用耦合

答案:C解析:模块间耦合主要有数据耦合、控制耦合、公共耦合、内容耦合等。同构耦合和公用耦合是存在的耦合类型,而异构耦合不是常见的模块间耦合类型。

11.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计

答案:D解析:软件详细设计主要采用结构化程序设计方法。结构化程序设计强调程序的结构清晰、逻辑严谨,通过自顶向下、逐步细化的方式将程序分解为易于理解和实现的模块,以提高程序的可读性、可维护性和可靠性。

12.程序流程图(PFD)中的箭头代表的是()A.数据流B.控制流C.调用关系D.组成关系

答案:B解析:程序流程图中的箭头表示控制流,它描述了程序执行过程中各个步骤的执行顺序。数据流通常用带箭头的线条表示数据的流动方向,在程序流程图中不是用箭头直接表示。调用关系和组成关系也不是用程序流程图中的箭头来表示。

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

答案:A解析:软件测试的目的是发现程序中的错误,而不是证明程序是正确的。虽然通过测试可以对程序的质量进行评估,但发现错误才是测试的核心目标。改进软件性能是软件维护阶段的工作,不是测试阶段的直接目的。

14.软件测试方法中的黑盒测试法和白盒测试法是依据()来划分的。A.程序的内部逻辑B.程序的功能C.程序的性能D.程序的内部逻辑和功能

答案:D解析:黑盒测试法是基于程序的功能来进行测试的,不考虑程序内部的逻辑结构;白盒测试法是依据程序的内部逻辑来设计测试用例的。所以黑盒测试法和白盒测试法是依据程序的内部逻辑和功能来划分的。

15.下列属于黑盒测试方法的是()A.语句覆盖B.逻辑覆盖C.边界值分析D.路径覆盖

答案:C解析:语句覆盖、逻辑覆盖、路径覆盖都属于白盒测试方法,它们关注程序的内部逻辑结构。边界值分析是黑盒测试方法,它通过选择输入数据边界值附近的数据来发现程序在边界处理上的错误。

二、填空题1.软件工程是一门指导计算机软件开发和__________的工程学科。

答案:维护解析:软件工程涵盖了软件开发的全过程以及软件的维护阶段,旨在用工程化的方法来提高软件的质量和生产效率。

2.软件生命周期可分为软件定义、__________和软件维护三个阶段。

答案:软件开发解析:软件定义阶段主要进行问题定义、可行性研究等;软件开发阶段包括需求分析、设计、编码、测试等;软件维护阶段则对软件进行修改、完善等。

3.可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否__________。

答案:值得开发解析:通过对技术、经济、操作等方面的可行性分析,判断软件项目是否有开发的价值,避免盲目投入资源。

4.需求分析阶段产生的最重要的文档是__________。

答案:需求规格说明书解析:需求规格说明书准确地描述了软件系统的功能、性能、接口等需求,是后续软件开发各个阶段的重要依据。

5.结构化分析方法的常用工具__________、数据字典和判定树。

答案:数据流图解析:数据流图直观地展示了系统的数据流动和处理过程,数据字典对数据流图中的元素进行详细定义,判定树用于描述复杂的逻辑关系,它们共同构成结构化分析的工具。

6.软件设计一般分为总体设计和__________两个阶段。

答案:详细设计解析:总体设计确定软件的总体架构和模块划分;详细设计则对每个模块进行深入的算法设计和数据结构设计等。

7.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是耦合性和__________。

答案:内聚性解析:耦合性反映模块之间的依赖程度,内聚性体现模块内部元素的紧密程度,二者共同衡量模块的独立性。

8.详细设计的任务是确定每个模块的内部特性,即模块的__________和使用的数据。

答案:算法解析:详细设计要确定模块实现其功能所采用的具体算法以及所使用的数据结构等内部特性。

9.程序流程图中的菱形框表示__________。

答案:判断条件解析:菱形框在程序流程图中用于表示判断条件,根据条件的成立与否决定程序的流向。

10.软件测试是为了__________而执行程序的过程。

答案:发现错误解析:如前面所述,软件测试的核心目的是发现程序中的错误,通过各种测试手段来找出软件存在的缺陷。

11.黑盒测试着重测试软件的__________。

答案:功能解析:黑盒测试基于软件功能进行测试,不关心程序内部逻辑,主要验证软件功能是否符合需求规格说明书的要求。

12.白盒测试是对程序的__________进行测试。

答案:内部逻辑结构解析:白盒测试依据程序内部逻辑结构来设计测试用例,检查程序的内部逻辑是否正确。

13.软件调试的目的是确定错误的原因和位置,并加以改正,因此调试也称为__________。

答案:纠错解析:调试是在测试发现错误后,找出错误原因并进行修复的过程,也就是纠错。

14.软件维护活动包括改正性维护、适应性维护、__________维护和预防性维护。

答案:完善性解析:改正性维护修复软件中的错误;适应性维护使软件适应环境变化;完善性维护对软件进行功能扩展和性能优化等;预防性维护为了提高软件的可维护性和可靠性而进行的维护活动。

15.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、__________、可移植性和效率。

答案:可使用性解析:这些质量特性综合反映了软件的可维护程度,可使用性好的软件便于用户使用,也有利于维护人员进行维护工作。

三、简答题1.简述软件危机的表现和产生的原因。

答案:软件危机的表现主要有:软件开发成本和进度无法控制。软件质量难以保证,软件中存在大量缺陷。软件维护困难,维护成本高。

产生软件危机的原因主要包括:软件自身的特点,软件逻辑复杂,规模庞大。软件开发和维护方法不当,缺乏工程化的方法和规范。开发人员与用户沟通不畅,需求不明确。软件技术发展迅速,对开发人员的要求不断提高,但开发人员素质参差不齐。

2.什么是软件工程?它的目标和原则是什么?

答案:软件工程是一门指导计算机软件开发和维护的工程学科。它采用工程化的方法,将软件开发视为一个工程项目,运用一系列科学的方法、工具和过程来开发和维护软件。

软件工程的目标是:生产具有正确性、可用性以及成本合理的软件产品。提高软件的可维护性、可扩展性和可移植性。满足用户对软件产品的功能、性能等方面的需求。

软件工程的原则包括:抽象:抽取事物最基本的特性和行为,忽略非本质细节。信息隐蔽:将模块中包含的信息(数据和过程)隐蔽起来,使其他模块不能访问。模块化:将软件系统分解为若干个模块,每个模块完成特定的功能。局部化:把一些关系密切的软件元素物理地放得彼此靠近。确定性:软件开发过程中所有概念的表达应是确定的、无歧义且规范的。一致性:整个软件系统的各个模块应使用一致的概念、符号和术语。完备性:软件系统不丢失任何重要成分,完全实现系统所需的功能。可验证性:开发成果应是可验证的,即能够通过测试等手段验证其是否符合预期。

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

答案:需求分析的任务是准确地定义新系统的目标,确定系统必须完成哪些工作,也就是明确系统的功能。具体包括:确定对系统的综合要求,包括功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束条件、逆向需求、将来可能提出的需求等。分析系统的数据要求,包括数据的静态特征(如数据类型、数据长度等)和动态特征(如数据的输入输出要求、数据的处理频率等)。导出系统的逻辑模型,通过对需求的分析和整理,建立起系统的逻辑模型,如数据流图、数据字典、判定树等。修正系统开发计划,根据需求分析的结果,对软件开发计划进行必要的修正,如调整项目进度、资源分配等。

需求分析的步骤一般如下:问题识别:从系统的角度来理解软件需求,确定对目标系统的综合要求,并提出这些需求实现条件,以及需求应达到的标准。分析与综合:对获取的需求进行分析,去除不合理的部分,然后将其综合成完整的需求定义,并用规范的形式表示出来。编写需求规格说明书:将需求分析的结果以文档的形式记录下来,形成需求规格说明书,作为后续软件开发的重要依据。需求评审:对需求规格说明书进行评审,确保其准确、完整、一致,能够满足用户的需求。

4.什么是结构化分析方法?它有哪些特点?

答案:结构化分析方法是一种面向数据流进行需求分析的方法。它从数据传递和加工的角度,以数据流图为主要工具,对系统的功能进行分解、描述,从而建立系统的逻辑模型。

结构化分析方法的特点包括:自顶向下,逐步分解:从系统的整体功能出发,逐步将其分解为各个子功能,直到每个功能都易于理解和实现。面向数据流:强调对数据流的分析,通过数据流图来描述数据在系统中的流动和处理过程。数据和处理分离:将数据的流动和处理过程分开描述,使系统的逻辑结构更加清晰。严格的需求定义:通过数据字典、判定树等工具,对系统的需求进行准确、详细的定义,减少需求的模糊性和不确定性。文档化:在分析过程中产生一系列规范的文档,如数据流图、数据字典、需求规格说明书等,便于交流和后续的开发与维护。

5.简述软件设计的原则和基本原理。

答案:软件设计的原则包括:抽象:抽取事物最基本的特性和行为,忽略非本质细节,有助于提高软件的可理解性和可维护性。信息隐蔽:将模块中包含的信息(数据和过程)隐蔽起来,使其他模块不能访问,提高软件的安全性和可修改性。模块化:将软件系统分解为若干个模块,每个模块完成特定的功能,降低软件的复杂性,提高可维护性和可扩展性。局部化:把一些关系密切的软件元素物理地放得彼此靠近,减少模块间的耦合度,提高模块的内聚性。确定性:软件开发过程中所有概念的表达应是确定的、无歧义且规范的,避免误解和错误。一致性:整个软件系统的各个模块应使用一致的概念、符号和术语,便于理解和维护。完备性:

温馨提示

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

评论

0/150

提交评论